tigh 发表于 2012-11-2 08:33:48

解决发邮件出现“501 Domain address required: HELO”问题

今天出现了一个奇怪的问题,产品机A上有一个邮件服务器,产品机A和产品机B的java程序都是用A上的邮件服务器发邮件,但是测试发现,产品机B上的java程序发送邮件正常,而产品机A上的java程序发送不出去,更奇怪的是A上的php程序也能够发送邮件!查到tomcat日志如下:


[*]javax.mail.MessagingException: 501 Domain address required: HELO
[*]at com.sun.mail.smtp.SMTPTransport.issueCommand(SMTPTransport.java:1481)
[*]at com.sun.mail.smtp.SMTPTransport.helo(SMTPTransport.java:917)
[*]at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:417)
[*]at javax.mail.Service.connect(Service.java:288)
[*]at javax.mail.Service.connect(Service.java:169)
[*]at
比较了A和B的java程序,完全一模一样。
查了半天百度,google都没有结果
最后找到了一个说法是因为hostname引起的,于是我用hostname命令查到了A的hostname是PRODA,而ping 它却是没有结果,看了一下/etc/hosts文件中,发现“127.0.0.1 PROD-A”,写多了一杠

改好之后再测试就能够发送了
我估计虽然传的是server的域名,但是mail.jar会先获取本机的hostname进行解析,解析不到就不发送HELO命令了,但是Server需要检测这个命令。而php的发邮件程序实现时不判断hostname就直接发送HELO命令,因此能够发送成功

孤独雪鹰 发表于 2013-3-14 01:48:52

没看完~~~~~~ 先顶,好同志

gxh1968 发表于 2013-5-16 10:50:00

支持一下:lol

sanhutrees 发表于 2013-5-18 22:25:21

找到好贴不容易,我顶你了,谢了

longpan 发表于 2013-5-21 20:07:39

人生重要的不是所站的位置,而是所朝的方向!

asfsd 发表于 2013-5-25 10:52:31

锻炼肌肉,防止挨揍!

linghaiyan 发表于 2013-5-31 02:30:35

如果有一双眼睛陪我一同哭泣,就值得我为生命受苦。
页: [1]
查看完整版本: 解决发邮件出现“501 Domain address required: HELO”问题