【SSH】--鸿雁传书,信件发送
来源:互联网 发布:win7注册表优化大全 编辑:程序博客网 时间:2024/04/28 19:55
MarketOnLine项目和京东商城的项目很类似,只是访问的数据量小一些。这种电商类的项目,发送邮件注册用户信息是基础中的基础。要想实现该功能,我们需要如下材料。
材料
电子邮箱
邮件服务器
邮件协议:
POP3:Post Office Protocol - Version 3
SMTP:Simple Mail Transfer Protocol
邮件发送原理
1.首先我们有两个邮箱账号,一个新浪,一个163的,准备从新浪的发送到163的邮箱中。
2.首先登录新浪邮件客户端软件,例如foxmail。
3. 然后登录SMTP服务器,写一封邮件,包括邮件内容,标题等信息。
4.通过SMTP服务器,将邮件发送到接收服务器中,并存到本地硬盘中。
5.163的账号登录客户端软件后,访问POP3服务器,本地存到硬盘上的邮件,就会自动更新到POP3服务器中
6.网易登录的客户端就能很好的读取来自新浪邮箱的邮件了。
环境搭建
1.搭建邮件服务器
安装邮箱服务器:MailServer(易邮邮件服务器)
修改域名:
工具–>服务器设置–>shop.com
注册账号
账号–>新建账号
2.安装客户端软件(收发邮件):foxmail
配置:
配置发送邮件服务器
localhost(本地)
smtp(外网)
配置接受邮件服务器:
localhost(本地)
pop3(外网)
3.编码
需要引入的包:
javaee.jar
javax.annotation
javax.jms
复制的包: activation.jar
mail.jar
发邮件工具类–MailUitls:
/** * @ClassName:MailUitls * @Description:TODO * @author wangmei * @date 2015年10月2日下午7:48:22 * @{tags} */package cn.itcast.shop.utils;import java.util.Properties;import javax.mail.Authenticator;import javax.mail.Message;import javax.mail.Message.RecipientType;import javax.mail.MessagingException;import javax.mail.PasswordAuthentication;import javax.mail.Session;import javax.mail.Transport;import javax.mail.internet.AddressException;import javax.mail.internet.InternetAddress;import javax.mail.internet.MimeMessage;/** * 邮件发送工具类 * @author wm * */public class MailUitls { /** * 发送邮件的方法 * @param to:收件人 * @param code:激活码 */ public static void sendMail(String to ,String code){ /** * 1.获得一个Session对象 * 2.创建一个代表邮件的对象Message * 3.发送邮件Transport */ //1.获得连接对象 ,Alt+shift+s Properties props=new Properties(); props.setProperty("mail.host", "localhost"); Session session=Session.getInstance(props, new Authenticator(){ @Override protected PasswordAuthentication getPasswordAuthentication(){ return new PasswordAuthentication("service@shop.com","111"); } }); //2.创建邮件对象: Message message=new MimeMessage(session); //设置发件人: try{ message.setFrom(new InternetAddress("service@shop.com")); //设置收件人: message.addRecipient(RecipientType.TO, new InternetAddress(to)); //抄送cc 密送Bcc //设置标题 message.setSubject("来自购物天堂TGB商城官方邮件"); //设置邮件正文 message.setContent("<h1>购物天堂TGB商城官方激活邮件!点下面链接完成激活操作!</h1><h3><a href='http://192.168.24.175:8080/shop/user_active.action?code="+code +"'>http://192.168.24.175:8080/shop/user_active.action?code="+code +"</a></h3>","text/html;charset=UTF-8"); //3.发送邮件 Transport.send(message); }catch(AddressException e){ e.printStackTrace(); }catch(MessagingException e){ e.printStackTrace(); } } //测试邮件发送是否成功的的控制台代码 /*public static void main(String[] args){ sendMail("aaa@shop.com","11111111111111"); }*/}
生成UUID的代码:
/** * @ClassName:UUIDUtils * @Description:TODO * @author wangmei * @date 2015年10月2日下午4:52:09 * @{tags} */package cn.itcast.shop.utils;import java.util.UUID;/** * 生成随机字符串的工具类 * @author wm * */public class UUIDUtils { /** * 获得随机字符串 * @return */ public static String getUUID(){ return UUID.randomUUID().toString().replace("-", ""); }}
业务层调用发送邮件工具类的代码:
/** * 业务层完成用户注册代码 * @param user */ public void save(User user) { //将数据存入到数据库 user.setState(0);//0:代表用户未激活 1:代表用户已经激活 String code=UUIDUtils.getUUID()+UUIDUtils.getUUID(); user.setCode(code); userDao.save(user); //发送激活邮件 MailUitls.sendMail(user.getEmail(), code); }
邮件发送结果:
邮件的发送并不繁琐,明白其中的原理就好了。邮件的发送,UUID的生成代码,都是复用性很高的代码,有必要整理一下。
- 【SSH】--鸿雁传书,信件发送
- 利用Winform Gmail 发送信件
- 信件
- Socket抽象成信件的发送
- 简单的基于 winsock API的 smtp 信件发送程序。
- ASP程序发送信件的2种方法(JMAIL、CDONTS)
- 解决.net中使用gmail.com邮箱进行Smtp发送信件时失败的问题
- ssh 发送邮件
- SSH-------java邮件发送
- SSH网上商城---邮件发送
- postfix sh 配合前面编写的savePostfixLog.sh定时检测信件发送完成立刻调用php分析错误日志
- 【SSH】——发送邮件
- [SSH网上商城]发送激活邮件
- 家书(转) 私人信件
- 用Sendmail转寄信件
- AMO信件来往
- 英文信件格式
- 营销总监辞职信件
- codeforces 591B - Rebranding(模拟)
- Android源码下载
- 在android上实现图像匹配
- android Out of memory on a xxx-byte allocation问题
- Fix iOS 9 App Transport Security Issues In Apache Cordova
- 【SSH】--鸿雁传书,信件发送
- recv
- poj 2625 概率dp
- 九度OJ 1183:守形数 (数字特性)
- mongo查询
- Unity3D课程系列上线--《unity 常用组件分析》
- 常见的HTTPS攻击方法
- 跟着猫哥学Golang[2] - 变量
- Android修改TitleBar标题栏详解