1.
引入邮件启动器:
spring-boot-starter-mail
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-mail</artifactId>
</dependency>
#配置邮箱信息
spring.mail.username=411856938@qq.com
spring.mail.password=coenvvpxpbvscbbc
# 发送邮件服务器
spring.mail.host=smtp.qq.com
#ssl连接
spring.mail.properties.smtp.ssl.enable=true
发送普通邮件
test类
@Autowired(required = false)
JavaMailSenderImpl javaMailSender;
@Test
public void testSimpleMail(){
// 封装简单的邮件内容
SimpleMailMessage message = new SimpleMailMessage();
// 标题
message.setSubject("放假通知");
// 正文
message.setText("春节放假7天");
// 发件人
message.setFrom("411856938@qq.com");
// 收件人
message.setTo("1157495953@qq.com");
javaMailSender.send(message);
}
发送复杂邮件附件与html渲染效果
@Test
public void testMail() throws MessagingException {
// 封装简单的邮件内容
MimeMessage mimeMailMessage = javaMailSender.createMimeMessage();
// 通过消息帮助对象来设置发送的发送的内容,第二个参数为true表示可以发送附件
MimeMessageHelper mimeMessageHelper = new MimeMessageHelper(mimeMailMessage,true);
// 标题
mimeMessageHelper.setSubject("放假通知");
// 正文
mimeMessageHelper.setText("<h2 style='color:red'>春节放假7天</h2>",true);
// 发送附件
mimeMessageHelper.addAttachment("clock.jpg",new File("D:\\springbootProject\\src\\main\\resources\\static\\img\\clock.jpg"));
mimeMessageHelper.addAttachment("formBg.png",new File("D:\\springbootProject\\src\\main\\resources\\static\\img\\formBg.png"));
// 发件人
mimeMessageHelper.setFrom("411856938@qq.com");
// 收件人
mimeMessageHelper.setTo("1157495953@qq.com");
javaMailSender.send(mimeMailMessage);
}
Springboot使用HTML模板发送电子邮件
在写一个Servicel类我把整个类都贴出来,
第一个方法是以文本方式发送服务,
第二个是使用的Html的方式发送,设置发送人邮箱的时候如果不想使用配置文件的数据
可直接在上面写字符串格式的发送人邮箱
package com.example.springbootproject.service;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.mail.SimpleMailMessage;
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.mail.javamail.MimeMailMessage;
import org.springframework.mail.javamail.MimeMessageHelper;
import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Service;
import javax.mail.MessagingException;
import javax.mail.internet.MimeMessage;
@Service
public class MailService {
@Autowired(required = false)
//框架自带的
private JavaMailSender mailSender;
@Value("${spring.mail.username}")
//发送人的邮箱 比如155156641XX@163.com,使用EL表达式获取在配置文件的发送人邮箱
private String from;
@Async //意思是异步调用这个方法
public void sendMail(String title, String url, String email) {
SimpleMailMessage message = new SimpleMailMessage();
// 发送人的邮箱
message.setFrom(from);
//标题
message.setSubject(title);
//发给谁 对方邮箱
message.setTo(email);
//内容
message.setText(url);
//发送
mailSender.send(message);
}
public void sendHtmlMail(String to, String subject, String centent) throws MessagingException {
MimeMessage mimeMessage = mailSender.createMimeMessage();
MimeMessageHelper helper = new MimeMessageHelper(mimeMessage, true);
helper.setFrom(from);
helper.setTo(to);
helper.setSubject(subject);
helper.setText(centent, true);
mailSender.send(mimeMessage);
}
}
下面在把控制器里面的信息贴出来
package com.example.springbootproject.controller;
import com.example.springbootproject.service.MailService;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.thymeleaf.TemplateEngine;
import org.thymeleaf.context.Context;
import javax.annotation.Resource;
import javax.mail.MessagingException;
@Controller
public class MailController {
@Resource
MailService mailService;
@Resource
TemplateEngine templateEngine;
@RequestMapping("/tomail")
@ResponseBody
public String toMail() throws MessagingException {
String title = "E-mail!";
String email = "1157495953@qq.com";
Context context = new Context();
// 设置传入模板页面的参数 参数名为id 参数随便写一个就好
context.setVariable("id","123");
String proces = templateEngine.process("emailTemplate",context);
mailService.sendHtmlMail(email,title,proces);
return "success";
}
}
模板部分和普通的没什么区别
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org" lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<div style="border: black;width: 400px;height: 400px;background: #2a6496">
尊敬的用户271066981@qq.com,您好!
您的会员账号是:271066981@qq.com,该账号下的域名仅剩15天到期,请尽快续费!
<div th:text="${id}"></div>
</div>
</body>
</html>