先引入spring boot pom.xml依赖
<!-- 邮箱 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-mail</artifactId>
</dependency>
<!-- 静态模板 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
application.properties配置文件中
均已QQ邮箱为例
#邮箱服务器地址
spring.mail.host=smtp.qq.com
#用户名
spring.mail.username=xxx@qq.com
#授权密码
spring.mail.password=xxxx
spring.mail.default-encoding=UTF-8
spring.mail.protocol=smtp
spring.http.encoding.enabled=true
没有的话去QQ邮箱设置一下
这里腾讯会让你发一个短信过去,然后使用那个 授权码 spring.mail.password=放到此处 ,并不是你的QQ密码
目前配置方面的就搞定了
此时领导发一个邮箱模板过来
可以通过复制到Word文档里面。
选择文件类型html,创建一个
把刚输出的html源码复制过来
<html lang="en" xmlns:th="http://www.thymeleaf.org">
加上这个引入模板
找到关键字部分用thymeleaf 相关标签 替换
核心代码
package com.space.web.impl;
import javax.mail.MessagingException;
import javax.mail.internet.MimeMessage;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.mail.SimpleMailMessage;
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.mail.javamail.MimeMessageHelper;
import org.springframework.stereotype.Service;
import org.thymeleaf.TemplateEngine;
import org.thymeleaf.context.Context;
import com.space.common.properties.CasProperties;
import com.space.web.service.SendByEmailToolsService;
/**
* @author lingzhiying
* @title: SendByEmailToolsServiceImpl.java
* @projectName spacepm
* @description:
* @date 2019年7月26日
*/
@Service
public class SendByEmailToolsServiceImpl implements SendByEmailToolsService{
@Autowired
private JavaMailSender jms;
@Autowired
protected TemplateEngine thymeleaf;
@Override
public void send(String receiver, String title, String text) {
MimeMessage message=jms.createMimeMessage();
try {
//true表示需要创建一个multipart message
MimeMessageHelper helper=new MimeMessageHelper(message,true);
//邮箱账号此处一定要一致否则发送不成功
helper.setFrom(发送者邮箱,配置文件里的spring.mail.username);
//接收账号
helper.setTo(receiver);
//邮箱标题
helper.setSubject(title);
//创建 指定关键字 并设定值
Context context = new Context();
context.setVariable("code",text);
//指定对应html模板,并放入context对象
String emailContent= thymeleaf.process("mail", context);
//把对象放进去参数设定true
helper.setText(emailContent,true);
jms.send(message);
}catch (Exception e){
}
}
}
邮箱发送成功。