第一步:
创建Springboot项目时候,勾选I/O下的Java Mail Sender选项;
pom就会自动添加的依赖:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-mail</artifactId>
</dependency>
第二步:
修改yml配置文件
spring:
mail:
#配置服务器qq:smtp.qq.com,网易163:smtp.163.com
host: smtp.qq.com
#授权码,邮箱->设置->账户->POP3/SMTP服务:开启服务后会获得权码
password: 授权码
username: 邮箱账户名
default-encoding: UTF-8
测试发送邮件:
@SpringBootTest
class SpringBootEmailApplicationTests {
//从ioc容器中获取JavaMailSender 对象来实现发送邮件
@Autowired
private JavaMailSender javaMailSender;
@Test
void contextLoads() {
System.out.println(javaMailSender);
}
/**
* 发送基本文本内容
*/
@Test
void testSend() {
SimpleMailMessage simpleMailMessage = new SimpleMailMessage();
// 发件人邮箱
simpleMailMessage.setFrom("发件人邮箱");
// 收件人邮箱
simpleMailMessage.setTo("收件人邮箱");
// 邮件主题
simpleMailMessage.setSubject("这是一个测试邮件");
// 邮件内容
simpleMailMessage.setText("测试内容");
javaMailSender.send(simpleMailMessage);
}
/**
* 测试发送复杂内容,例如图片和附件等
*/
@Test
void testSend2() throws MessagingException {
MimeMessage mimeMessage = javaMailSender.createMimeMessage();
// 创建一个邮件工具,可以发送附件
MimeMessageHelper mimeMessageHelper = new MimeMessageHelper(mimeMessage,true,"utf-8");
mimeMessageHelper.setFrom("发件人邮箱");
mimeMessageHelper.setTo("收件人邮箱");
mimeMessage.setSubject("这是一个携带了图片和附件的邮件");
//拼接内容参数
StringBuilder sb = new StringBuilder();
sb.append("<html> <body> <h1 style='color:red'>springboot 测试邮件发送复杂格式o</h1>");
sb.append("<p style='color:blue,font-size:16px'>哈哈哈</p>");
sb.append("<p style='text-align:center'>居中</p>");
sb.append("<img src='cid:picture'/> </body></html>"); //如果要插入图片src='cid:picture'
//设置内容,可以被html解析
mimeMessageHelper.setText(sb.toString(), true);
// 从本地磁盘中读取到图片 占位到内容中去,替换cid:picture
mimeMessageHelper.addInline("picture",new File("d:\\img\\abc.jpg"));
// 添加附件
mimeMessageHelper.addAttachment("测试文件.xls",new File("D:\\测试文件.xls"));
javaMailSender.send(mimeMessage);
}
}