一、倒入相关依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-mail</artifactId>
</dependency>
二、properties中添加配置
spring.mail.default-encoding=UTF-8
#服务器地址
spring.mail.host=smtp.qq.com
#发送方邮箱
spring.mail.username=1768916170@qq.com
#授权码,不是邮箱密码
spring.mail.password=xxxxxxxxx
三、发送邮件util类编写
@Resource
private JavaMailSender javaMailSender;
@Value("${spring.mail.username}")
private String mailAddress;
public void sendMail(List<String> list, String appName, String sendMail) {
for (String mail : list) {
MimeMessage mimeMessage = javaMailSender.createMimeMessage();
try {
// 使用MimeMessageHelper设置邮件信息
MimeMessageHelper helper = new MimeMessageHelper(mimeMessage, true);
//发件人
helper.setFrom(mailAddress);
//收件人
helper.setTo(mail);
//抄送人
// helper.setCc(mailAddress);
//邮件标题
helper.setSubject("审批邮件");
Configuration configuration = new Configuration(Configuration.VERSION_2_3_0);
ClassLoader classLoader = XBootstrap.class.getClassLoader();
configuration.setClassLoaderForTemplateLoading(classLoader, "templates");
Template template = configuration.getTemplate("email.html");
//利用反射构建通用Map
Map<String, String> map = new HashMap<>();
map.put("name", mail);
map.put("email", sendMail);
map.put("projectName", "xxx的应用");
map.put("url", "www.baidu.com");
map.put("appName", appName);
//模版渲染,渲染的结果被保存到out中,将out中的html字符串输出即可
StringWriter out = new StringWriter();
template.process(map, out);
helper.setText(out.toString(), true);
javaMailSender.send(mimeMessage);
} catch (Exception e) {
throw new BusinessException(ReturnCodeEnum.SEND_MAIL_ERROR, "发送邮件失败!" + e.getMessage());
}
}
}
四、html邮件模版
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<style>
p {text-indent:3em;}
</style>
<body>
<div><b>标题:应用升级发布审核</b></div>
<p></p>
<div><b>内容:Dear ${name}</b></div>
<p><b>您好:有一个应用升级发布需要您的审核,请点击链接进行审核。</b></p>
<p><b>发起者:</b><a href="${email}">${email}</a></p>
<p><b>项目名称:${projectName}</b></p>
<p><b>应用名称:${appName}</b></p>
<p><a href="${url}" target="_blank">${url}</a></p>
<p><b>请尽快审核,谢谢!</b></p>
<p>(系统发送,请勿直接回复)</p>
</div>
</body>
</html>
五、发送成功邮件示例