当前位置: 代码迷 >> java >> 通过Java发送邮件
  详细解决方案

通过Java发送邮件

热度:76   发布时间:2023-07-31 13:37:08.0

发送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

我该如何解决这个问题?

从例外看来,它似乎无法连接到主机。

您尝试过telnet的东西吗?

要检查的另一件事是IP地址解析名称是否正确。如果不正确,您可以直接使用IP代替主机来查看发生的情况。

您的smtp服务器需要身份验证吗? 似乎如此,因为带邮件的cmd调用有效。 在默认的postfix配置中,允许本地用户发送未经身份验证的邮件。 并且您的Java应用程序可能不是此机器上的注册系统用户。

尝试在代码中提供用户名和密码以登录到smtp服务器。

从日志条目

Mar 28 20:13:16 postfix/smtpd[10120]: fatal: no SASL authentication mechanisms

我怀疑问题出在Postfix上,我不是专家。 谷歌搜索“致命的:没有SASL身份验证机制”提供了许多有趣的链接:也许或看看。

  相关解决方案