1.引入pom依赖

  1. <dependency>
  2. <groupId>org.springframework.boot</groupId>
  3. <artifactId>spring-boot-starter-mail</artifactId>
  4. </dependency>

2.查看自动配置类:MailSenderAutoConfiguration

进入这个类,发现这个类中没有注册的bean,但这个类上有注解@Import,导入了两个类

MailSenderJndiConfiguration.class和MailSenderPropertiesConfiguration

Enter查看—->MailSenderJndiConfiguration.class后发现,该类里面有一个bean:JavaMailSenderImpl

该类里面还有一个配置文件,查看一下:

  1. @ConfigurationProperties(
  2. prefix = "spring.mail"
  3. )
  4. public class MailProperties {
  5. private static final Charset DEFAULT_CHARSET;
  6. private String host;
  7. private Integer port;
  8. private String username;
  9. private String password;
  10. private String protocol = "smtp";
  11. private Charset defaultEncoding;
  12. private Map<String, String> properties;
  13. private String jndiName;
  14. }

因此我们可以配置文件:

  1. spring.mail.username=1294566108@qq.com
  2. spring.mail.password=你的qq授权码
  3. spring.mail.host=smtp.qq.com
  4. # qq需要配置ssl
  5. spring.mail.properties.mail.smtp.ssl.enable=true

注意:

qq授权码的获取需要在qq邮箱中的:设置->账户->开启pop3和smtp服务

3.测试一下

  1. @Autowired
  2. JavaMailSenderImpl mailSender;
  3. @Test
  4. public void contextLoads() {
  5. //邮件设置1:一个简单的邮件
  6. SimpleMailMessage message = new SimpleMailMessage();
  7. message.setSubject("通知-明天到工一开会");
  8. message.setText("星期五7:30开会");
  9. message.setTo("1294566108@qq.com");
  10. message.setFrom("1294566108@qq.com");
  11. mailSender.send(message);
  12. }
  13. @Test
  14. public void contextLoads2() throws MessagingException {
  15. //邮件设置2:一个复杂的邮件
  16. MimeMessage mimeMessage = mailSender.createMimeMessage();
  17. MimeMessageHelper helper = new MimeMessageHelper(mimeMessage, true);
  18. helper.setSubject("通知-明天到工一开会");
  19. helper.setText("<b style='color:red'>星期五7:30开会</b>",true);
  20. //发送附件
  21. helper.addAttachment("1.jpg",new File(""));
  22. helper.addAttachment("2.jpg",new File(""));
  23. helper.setTo("1294566108@qq.com");
  24. helper.setFrom("1294566108@qq.com");
  25. mailSender.send(mimeMessage);
  26. }