1.引入pom依赖
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-mail</artifactId></dependency>
2.查看自动配置类:MailSenderAutoConfiguration
进入这个类,发现这个类中没有注册的bean,但这个类上有注解@Import,导入了两个类
MailSenderJndiConfiguration.class和MailSenderPropertiesConfiguration
Enter查看—->MailSenderJndiConfiguration.class后发现,该类里面有一个bean:JavaMailSenderImpl
该类里面还有一个配置文件,查看一下:
@ConfigurationProperties(prefix = "spring.mail")public class MailProperties {private static final Charset DEFAULT_CHARSET;private String host;private Integer port;private String username;private String password;private String protocol = "smtp";private Charset defaultEncoding;private Map<String, String> properties;private String jndiName;}
因此我们可以配置文件:
spring.mail.username=1294566108@qq.comspring.mail.password=你的qq授权码spring.mail.host=smtp.qq.com# qq需要配置sslspring.mail.properties.mail.smtp.ssl.enable=true
注意:
qq授权码的获取需要在qq邮箱中的:设置->账户->开启pop3和smtp服务
3.测试一下
@AutowiredJavaMailSenderImpl mailSender;@Testpublic void contextLoads() {//邮件设置1:一个简单的邮件SimpleMailMessage message = new SimpleMailMessage();message.setSubject("通知-明天到工一开会");message.setText("星期五7:30开会");message.setTo("1294566108@qq.com");message.setFrom("1294566108@qq.com");mailSender.send(message);}@Testpublic void contextLoads2() throws MessagingException {//邮件设置2:一个复杂的邮件MimeMessage mimeMessage = mailSender.createMimeMessage();MimeMessageHelper helper = new MimeMessageHelper(mimeMessage, true);helper.setSubject("通知-明天到工一开会");helper.setText("<b style='color:red'>星期五7:30开会</b>",true);//发送附件helper.addAttachment("1.jpg",new File(""));helper.addAttachment("2.jpg",new File(""));helper.setTo("1294566108@qq.com");helper.setFrom("1294566108@qq.com");mailSender.send(mimeMessage);}
