pom.xml导入相关依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-freemarker</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-mail</artifactId>
</dependency>
配置application.yml
spring:
mail:
host: smtpscn1.huawei.com
port: 25
username: pmail_AresOcean1
password: 9KffW2_v!
from: aresocean1@huawei.com
to: liumeng23@huawei.com
# 设置是否需要认证,如果为true,那么用户名和密码就必须的,
# 如果设置false,可以不设置用户名和密码,当然也得看你的对接的平台是否支持无密码进行访问的。
properties:
mail:
smtp:
ssl:
trust: smtpscn1.huawei.com
auth: true
# STARTTLS[1] 是对纯文本通信协议的扩展。它提供一种方式将纯文本连接升级为加密连接(TLS或SSL),而不是另外使用一个端口作加密通信
starttls:
enable: false
required: true
freemarker: #主要用于邮件模板
allow-request-override: false
cache: true
check-template-location: true
charset: UTF-8
content-type: text/html
expose-request-attributes: false
expose-session-attributes: false
expose-spring-macro-helpers: false
编写代码
@Component
public class SendMails {
@Value("${spring.mail.from}")
private String from;
@Value("${spring.mail.to}")
private String toadderss;
@Autowired
private JavaMailSender mailSender;
@Autowired
private FreeMarkerConfigurer freeMarkerConfigurer;
//简单
public void sendSimpleMail() throws Exception
{
SimpleMailMessage message = new SimpleMailMessage();
message.setFrom(from);
message.setTo(toadderss);
message.setSubject("主题:简单邮件");
message.setText("测试邮件内容");
mailSender.send(message);
}
//带附件
public void sendAttachmentsMail() throws Exception {
MimeMessage mimeMessage = mailSender.createMimeMessage();
MimeMessageHelper helper = new MimeMessageHelper(mimeMessage, true);
helper.setFrom(from);
helper.setTo(toadderss);
helper.setSubject("主题:有附件");
helper.setText("有附件的邮件");
FileSystemResource file = new FileSystemResource(new File("D:/tmp/6.jpg"));
helper.addAttachment("附件-1.jpg", file);
helper.addAttachment("附件-2.jpg", file);
mailSender.send(mimeMessage);
}
//嵌入资源,注意cid要对应
public void sendInlineMail() throws Exception {
MimeMessage mimeMessage = mailSender.createMimeMessage();
MimeMessageHelper helper = new MimeMessageHelper(mimeMessage, true);
helper.setFrom(from);
helper.setTo(toadderss);
helper.setSubject("主题:嵌入静态资源");
helper.setText("<html><body><img src=\"cid:test\" ></body></html>", true);
FileSystemResource file = new FileSystemResource(new File("D:/tmp/6.jpg"));
helper.addInline("test", file);
mailSender.send(mimeMessage);
}
//使用freemarker模板
public void sendTemplateMail() throws Exception {
MimeMessage mimeMessage = mailSender.createMimeMessage();
MimeMessageHelper helper = new MimeMessageHelper(mimeMessage, true);
helper.setFrom(from);
helper.setTo(toadderss);
helper.setSubject("主题:模板邮件");
Map<String, Object> model = new HashMap<String, Object>();
model.put("username", "test");
Template template = freeMarkerConfigurer.getConfiguration().getTemplate("email.ftl");
String text = FreeMarkerTemplateUtils.processTemplateIntoString(template, model);
helper.setText(text, true);
mailSender.send(mimeMessage);