邮件发送实现
- 安装本地邮件服务器
- 使用本地邮箱客户端Foxmail
- 项目service层实现邮件发送
1)安装本地邮件服务器
找到本地服务器的安装包,可以在此处下载:
https://download.csdn.net/download/qq_34598667/11082857
设置服务器域名
工具–服务器设置
设置域名为store.com
新增账号
点击左上角“新账号”,创建普通账号zhangsan和lisi:
创建系统管理员账号:
创建完成之后:
注意:service作为客服邮箱,当zhangsan注册成功时,客服会发送邮件给zhangsan用于激活。
2)使用本地邮箱客户端Foxmail
我们登录邮箱一般有两种方式:使用浏览器登录或者使用客户端登录
浏览器登录:有session超时,不能一直接收邮件
客户端登录:有“心跳机制”,每隔一段时间发送一个心跳包确认自己还活着,保持一直登录状态
① 安装Foxmail(略)
② 创建账号,设置服务器
设置接收和发送邮件服务器地址,使用上节课注册的zhangsan@store.com的账号:
③邮件发送测试
3)项目Service层实现邮件发送
① jar包
② 编写好的MailUtils工具类
public class MailUtils {
/**
*
* @param email 接收者的邮箱地址
* @param emailMsg 发送的内容
* @throws AddressException
* @throws MessagingException
*/
public static void sendMail(String email, String emailMsg)
throws AddressException, MessagingException {
// 1.创建一个程序与邮件服务器会话对象 Session
Properties props = new Properties();
//设置发送邮件的协议
props.setProperty("mail.transport.protocol", "SMTP");
//设置发宋邮件的服务器
props.setProperty("mail.host", "localhost");
// 指定验证为true 需要验证
props.setProperty("mail.smtp.auth", "true");
// 创建验证
Authenticator auth = new Authenticator() {
public PasswordAuthentication getPasswordAuthentication() {
//设置发送人的帐号和密码
return new PasswordAuthentication("service", "123");
}
};
Session session = Session.getInstance(props, auth);
// 2.创建一个Message,它相当于是邮件内容
Message message = new MimeMessage(session);
//设置发送邮件的邮箱地址
message.setFrom(new InternetAddress("service@store.com"));
//设置发送方式与接收者
message.setRecipient(RecipientType.TO, new InternetAddress(email));
//设置邮件主题
message.setSubject("用户激活");
// message.setText("这是一封激活邮件,请<a href='#'>点击</a>");
//设置邮件内容
message.setContent(emailMsg, "text/html;charset=utf-8");
// 3.创建 Transport用于将邮件发送
Transport.send(message);
}
}
③ Service层发送邮件
@Override
public void regist(User user) throws Exception{
userDao.add(user);
//发送邮件--收件人地址,邮件内容
String emailMsg="欢迎新成员,<a href='http://localhost:8080/store/user/active?code="+user.getCode()+"'>点击激活</a>";
MailUtils.sendMail(user.getEmail(), emailMsg);
}
④ 使用已存在的邮箱测试注册
查看邮箱:
邮件发送成功!!!点击激活,浏览器跳转
下一章我们实现激活功能。