演示如下:
填写好用户名密码,邮箱后:
点击提交后后台打印:
数据库中:
邮件已经收到:
程序结构如下:
要注意的地方:
application.properties中这两个要一样,
密码是这里获取的:
发送邮寄是异步的,代码如下:
package com.email.demo.async;
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.mail.javamail.MimeMessageHelper;
import org.springframework.mail.javamail.MimeMessagePreparator;
import javax.mail.internet.MimeMessage;
public class MailTask implements Runnable {
private String code;
private String email;
private String mailFrom;
private String domainName;
private JavaMailSender javaMailSender;
public MailTask(String code, String email, String mailFrom, String domainName, JavaMailSender javaMailSender){
this.code = code;
this.email = email;
this.mailFrom = mailFrom;
this.domainName = domainName;
this.javaMailSender = javaMailSender;
}
@Override
public void run() {
//发送邮件
javaMailSender.send(new MimeMessagePreparator() {
@Override
public void prepare(MimeMessage mimeMessage) throws Exception {
System.out.println("开始发送邮件");
MimeMessageHelper mimeMessageHelper = new MimeMessageHelper(mimeMessage, true, "UTF-8");
mimeMessageHelper.setFrom(mailFrom);
mimeMessageHelper.setTo(email);
mimeMessageHelper.setSubject("一封激活邮件");
StringBuilder sb = new StringBuilder();
sb.append("<html><head></head><body>");
sb.append("<a href=" + domainName + "activate?code=");
sb.append(code);
sb.append(">点击激活</a></body>");
mimeMessageHelper.setText(sb.toString(), true);
System.out.println("发送结束");
}
});
}
}
程序打包下载地址: