环境:
jdk:1.8
使用Java发送mail的时候,经常会碰到下面的问题。
在windows机器上,发送不了,报错:
Caused by: javax.mail.MessagingException: Could not connect to SMTP host: 172.1x.xx.xx, port: 25;
这种情况下,有几种情况:
1.邮件服务器不对。
2.邮件服务器对,但是windows机器上有防病毒软件,拦截了你的请求。
还有一种错误,在Linux上很常见。
现象:windows机器上测试正确,部署到Linux上就报错。
javax.mail.MessagingException: 501 Syntax: HELO hostname
或是
javax.mail.MessagingException: 500 Error: bad syntax
这是因为host文件中,没有指定当前机器的ip。
例如,当前机器名是test,那么在host文件【/etc/hosts】中,一定要加上这样一行
127.0.0.1 test
再用下列命令查看,出来结果即正确
hostname -i
会显示
127.0.0.1