SpringBoot 邮件任务(spring-boot-starter-mail)
1,Spring Boot 邮件发送需要在pom文件中引入spring-boot-starter-mail
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-mail</artifactId>
</dependency>
2,在application.properties中配置邮件属性,邮件属性内容可在MailProperties类中查找
#发送邮件服务器,可以在邮箱的“POP3/SMTP服务”查看
spring.mail.host=smtp.qq.com
#邮箱密码经过加密的,需要在邮箱中发送短信获取。
spring.mail.password=mfcozdmaumowndwrr
#邮箱
spring.mail.username=123@qq.com
#出现530错误需开启
#spring.mail.properties.mail.smtp.ssl.enable=true
3,利用自动装配JavaMailSender发送邮件
@RunWith(SpringRunner.class)
@SpringBootTest
public class ThymeleaftestApplicationTests {
@Autowired
JavaMailSenderImpl javaMailSender;
@Test
public void contextLoads() {
//简单消息邮件发送
SimpleMailMessage mailMessages =new SimpleMailMessage();
mailMessages.setFrom("123@qq.com");//发送人邮箱
mailMessages.setTo("456g@163.com");//接收人邮箱
mailMessages.setSubject("我是邮箱的主题:测试发送邮箱");
mailMessages.setText("我是邮箱的内容:测试发送邮箱");
javaMailSender.send(mailMessages);
}
@Test
public void contextLoads02() throws Exception{
//复杂消息邮件发送
MimeMessage mimeMessage = javaMailSender.createMimeMessage();
MimeMessageHelper mmh = new MimeMessageHelper(mimeMessage, true);
mmh.setFrom("123@qq.com");
mmh.setTo("456g@163.com");
mmh.setSubject("我是邮箱的主题:测试发送邮箱");
//默认false不显示,是否显示html内容。
mmh.setText("<b style='color:blue'>我是邮箱的内容:测试发送邮箱</b>",false);
//添加附件。
mmh.addAttachment("pig.jpg",new File("E:\\images\\pig.jpg"));
mmh.addAttachment("mon.jpg",new File("E:\\images\\mon.jpg"));
javaMailSender.send(mimeMessage);
}
}
注意:
535 Error: 可能密码(授权码)出错,是否开启了“POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务”/全部开启。
501 Error: 看下你设置setFrom发送人和配置中的发送人是否一致。
530 Error: 可能需要在配置文件中开启安全连接:添加 “spring.mail.properties.mail.smtp.ssl.enable=true” 。
550 Error: 可能接收人的邮箱错误或者不可用。
(开启服务步骤:登录邮件QQ为例---->顶部点击【设置】---->菜单栏点击【账户】--->找到内容【账户安全】------>
找到“POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务” 有4个服务需要全部开启--------->左下角有【保存更改】----完成。)