注意事项:为了保证安全,在设置邮箱用户名密码的时候,通常都不是直接使用密码,而是使用授权码。
spring.mail.username=xxx@163.com
spring.mail.password=授权码
spring.mail.host=smtp.163.com
#当连接失败时,有时需要打开ssl选项
#spring.mail.properties.mail.smtp.ssl.enable=true
163邮箱获取授权码的位置为
java.lang.IllegalStateException: Not in multipart mode - create an appropriate MimeMessageHelper via a constructor that takes a 'multipart' flag if you need to set alternative texts or add inline elements or attachments.
出现此问题的原因是创建helper时第二个参数没有设置,及即multipart模式
@Test
public void contextLoads() throws MessagingException {
MimeMessage message = mailSender.createMimeMessage();
//出现上述错误是因为创建helper的时候没有设置第二个参数,即multipart模式
MimeMessageHelper helper = new MimeMessageHelper(message, true );
helper.setSubject("测试邮件");
//此选项的第二个参数为是否是HTML邮件
helper.setText("<a href=#>来自MAILDEMO的测试邮件!</a>", true);
helper.addAttachment("1.jpg", new File("C:\\Users\\Pictures\\微信图片_20171023155221.jpg"));
helper.setTo("XXX@abc.com");
helper.setFrom("XXX@163.com");
mailSender.send(message);
}