邮件发送,在我们的日常开发中,也非常的多,Springboot 也帮我们做了支持
- 邮件发送需要引入spring-boot-start-mail
- SpringBoot 自动配置 MailSenderAutoConfiguration
- 定义MailProperties 内容,配置在 application.yml 中
- 自动装配 JavaMailSender
- 测试邮件发送
新建Spring Boot项目测试:
1、pom中引入依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-mail</artifactId>
</dependency>
2、点进源码看下配置类
3、properties中配置如下;获取授权码: 在QQ邮箱中的设置->账户->开启pop3和smtp服务
# 邮件任务
spring.mail.username=你的QQ邮箱
# 你自己的授权码
spring.mail.password=zxxxxoowdjabg
# 163和新浪后面分别改为 163.com xinlang.com
spring.mail.host=smtp.qq.com
# 开启加密验证(QQ特有)
spring.mail.properties.mail.smtp.ssl.enable=true
4、测试(controller)
@Autowired
JavaMailSenderImpl mailSender;
@Test
void mailTest1() {
//邮件设置1:一个简单的邮件
SimpleMailMessage message = new SimpleMailMessage();
message.setSubject("这是邮件的主题!");
message.setText("这是邮件的内容");
//发给谁
message.setTo("lingstudyzlf@qq.com");
//谁发的
message.setFrom("lingstudyzlf@qq.com");
mailSender.send(message);//发送
}
@Test
void mailTest2() throws MessagingException {
//邮件设置2:一个复杂的邮件
MimeMessage mimeMessage = mailSender.createMimeMessage();
//组装 true:开启多文本上传
MimeMessageHelper helper = new MimeMessageHelper(mimeMessage, true);
//正文
helper.setSubject("这是邮件的主题!");
helper.setText("<p style='color:red'>这是文字内容...</p>",true);//true:开启html支持
//添加附件
helper.addAttachment("ntx.jpg",new File("C:\\Users\\lingStudy\\Desktop\\ntx.jpg"));
//发给谁
helper.setTo("lingstudyzlf@qq.com");
//谁发的
helper.setFrom("lingstudyzlf@qq.com");
mailSender.send(mimeMessage);//发送
}
/**
*
* @param html :是否开启多文本上传
* @param subject :邮件标题
* @param text :邮件内容
* @throws MessagingException
* @Author 编程之外
*/
//封装成一个方法(以后作为一个工具类直接使用)
public void sengMail(Boolean html,String subject,String text) throws MessagingException {
MimeMessage mimeMessage = mailSender.createMimeMessage();
//组装 true:开启多文本上传
MimeMessageHelper helper = new MimeMessageHelper(mimeMessage, html);
//正文
helper.setSubject(subject);
helper.setText(text,true);//true:开启html支持
//添加附件
helper.addAttachment("ntx.jpg",new File("C:\\Users\\lingStudy\\Desktop\\ntx.jpg"));
//发给谁
helper.setTo("lingstudyzlf@qq.com");
//谁发的
helper.setFrom("lingstudyzlf@qq.com");
mailSender.send(mimeMessage);//发送
}
5、运行测试