查到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命令,因此能够发送成功