问题描述
发送Java邮件时,我在centOS服务器上遇到问题。 获取以下异常。
javax.mail.MessagingException:无法连接到SMTP主机:localhost,端口:25,响应:-1
我从命令提示符处使用了以下命令,并且按预期方式收到了邮件。
echo "testing" | mail -s"test subject" shantanu.oa@gmail.com
maillog中的相关条目如下所示:
Mar 28 20:13:16 postfix/smtpd[10120]: fatal: no SASL authentication mechanisms
Mar 28 20:13:17 postfix/master[28163]: warning: process /usr/libexec/postfix/smtpd pid 10120 exit status 1
Mar 28 20:13:17 postfix/master[28163]: warning: /usr/libexec/postfix/smtpd: bad command startup -- throttling
Mar 28 20:26:22 postfix/smtpd[11001]: warning: SASL: Connect to private/auth failed: Connection refused
我该如何解决这个问题?
1楼
从例外看来,它似乎无法连接到主机。
您尝试过telnet的东西吗?
要检查的另一件事是IP地址解析名称是否正确。如果不正确,您可以直接使用IP代替主机来查看发生的情况。
2楼
您的smtp服务器需要身份验证吗? 似乎如此,因为带邮件的cmd调用有效。 在默认的postfix配置中,允许本地用户发送未经身份验证的邮件。 并且您的Java应用程序可能不是此机器上的注册系统用户。
尝试在代码中提供用户名和密码以登录到smtp服务器。
3楼
从日志条目
Mar 28 20:13:16 postfix/smtpd[10120]: fatal: no SASL authentication mechanisms
我怀疑问题出在Postfix上,我不是专家。 谷歌搜索“致命的:没有SASL身份验证机制”提供了许多有趣的链接:也许或看看。