Javamail配置阿里云邮箱发送邮件解决526 Authentication failure[0]的错误。

偶然看到可以用域名后缀申请阿里云企业邮箱,于是我兴致勃勃的申请了并开通了,然后准备把网站的通知邮件改成用我的域名邮箱用java的javaMail来发送邮件发送提醒。但是一直失败,出现 526 Authentication failure[0]的错误。

目录
1.host填写
2.密码填写
3.其他邮件配置可以看这几篇文章:
我们平常的代码是这样的:

  1. public void sendMsgMail(String site, String comment)
  2. { //JavaMailSenderImpl是继承了JavaMailSender的配置类,是springboot的,当然重点不是在这里,是下面的2个大坑。
  3. JavaMailSenderImpl javaMailSender=new JavaMailSenderImpl();
  4. try{
  5. javaMailSender.setHost(host); //smtp.126.com
  6. javaMailSender.setPort(Integer.valueOf(port));
  7. javaMailSender.setPassword(pass);//对于qq邮箱而言 密码指的就是发送方的授权码
  8. javaMailSender.setProtocol("smtp");
  9. javaMailSender.setUsername(user);
  10. //设置465端口 SSL,或者阿里云服务器发送不出去
  11. Properties properties = new Properties();
  12. properties.setProperty("mail.smtp.auth", "true");//开启认证
  13. properties.setProperty("mail.debug", "true");//启用调试
  14. properties.setProperty("mail.smtp.timeout", "1000");//设置链接超时
  15. properties.setProperty("mail.smtp.port", port);//设置端口
  16. properties.setProperty("mail.smtp.socketFactory.port", port);//设置ssl端口
  17. properties.setProperty("mail.smtp.socketFactory.fallback", "false");
  18. properties.setProperty("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");
  19. javaMailSender.setJavaMailProperties(properties);
  20. SimpleMailMessage message = new SimpleMailMessage();
  21. message.setFrom(from);
  22. message.setTo("xxxxxxx@qq.com");
  23. message.setSubject("有人在网站给你留言了");
  24. message.setText(comment);
  25. javaMailSender.send(message);
  26. } catch (Exception e) {
  27. log.error("初始化邮件信息失败,错误信息:{}", e.getMessage());
  28. e.printStackTrace();
  29. throw new RuntimeException(e);
  30. }

阿里云企业邮箱注意事项:

1.host填写
对 我们平常用QQ或者网易邮箱时,host一般是smtp.126.com或者smtp.qq.com,但是这里必须是你的域名后缀的,比如我的就是smtp.nonelonely.com。网络上说用smtp.aliyun.com或者smtp.xxxx.com都是不行的。

2.密码填写
我们用过QQ或者网易邮箱时,都有授权码这个东西,但是阿里企业邮箱是没有这个东西的,你不用找了,反正找不到。但是你可以用的邮箱密码。

最后总结: 给QQ邮箱发邮件,会在垃圾箱中,最好发HTML的邮件。哈哈 ,如果有什么问题,可以发送我的域名后缀邮箱:admin@nonelonely.com