天天看点

【异常】——javax.mail发送邮件过程常见错误前提问题一问题二问题三总结

前提

    最近开发发送邮件功能,出现一些问题,特此记录一下。小编开发过程一直都是单元测试,可以发送成功,但是从swagger就是一直提示错误。

问题一

其实翻译一下错误,语法不对。

再加上小编出现错误的前提,功能肯定可以能用,所以怀疑对象为传输过程出现了问题。使用debug调试了一下,发现传输过程过程邮箱地址错误。因为邮件地址用含有特殊字符,所以“@”以及后面的内容没有成功传输。

解决方案

之前邮件地址当成字符串传递,现在吧邮箱地址放到Json对象中传递。

问题二

翻译一下,认证失败。

1、检查邮件账户名称和密码是否正确。(使用QQ邮箱,需要在密码的地方输入授权码)

2、判断邮件是否开启POP3以及SMTP

3、检查配置中smtpHost是否为使用邮箱服务器的主机地址。

4、检查配置中smtpPort端口号,如果没有加密则为25,加密则为465

问题三

本机发送不乱码,服务器测试环境发送邮件均为乱码

经验告诉我,乱码肯定是编码问题!

//message.setSubject(subject);
  message.setSubject(MimeUtility.encodeText(subject, "UTF-8", "B"));
           

第一句在本机测试没有问题,服务器上乱码

第二句本机服务器上均正常!

总结

    遇到问题,一定要真正理解问题的根源,减少拿着问题大海捞针的检索,从根本上提高解决问题的效率。

继续阅读