依赖:
<dependencies>
<!-- java mail -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-mail</artifactId>
</dependency>
<!-- 视图模板技术 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-freemarker</artifactId>
</dependency>
<!--仅排除tomcat使用boot及其他依赖-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</dependency>
</dependencies>
模板就不发了,普通html即可。
配置类:
spring:
mail:
username: 邮箱地址
password: #授权码
host: #主机
properties:
mail:
smtp:
auth: true #开启客户端
freemarker:
suffix: .html #模板按照类型为html走
代码:
@Component
public class EMailSender {
@Value("${spring.mail.username}")
private String from;
@Autowired
private JavaMailSender javaMailSender;
@Autowired
private FreeMarkerConfigurer freeMarkerConfigurer;
public void send(String to,String xx) {
try {
//协助创建一个信息类
MimeMessage message = javaMailSender.createMimeMessage();
MimeMessageHelper helper = new MimeMessageHelper(message);
helper.setFrom(from);
helper.setTo(to);
helper.setSubject("xxx");
//freemarker
Template template = freeMarkerConfigurer.getConfiguration().getTemplate("index.html");
Map<String, String> map = new HashMap<>();
map.put("xxx", xx);
String s = FreeMarkerTemplateUtils.processTemplateIntoString(template, map);
helper.setText(s,true);
javaMailSender.send(message);
} catch (MessagingException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (TemplateException e) {
e.printStackTrace();
}
}
}