通过Java发送邮件

时间:2011-03-29 07:43:28

标签: java email centos postfix-mta

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

如何解决问题?

3 个答案:

答案 0 :(得分:0)

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

您是否尝试过telnet的东西?

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

答案 1 :(得分:0)

你的smtp服务器需要身份验证吗? 似乎是这样,因为带邮件的cmd调用有效。在默认的后缀配置中,允许本地用户在不进行身份验证的情况下发送邮件。并且您的Java应用程序可能不是此计算机上的注册系统用户。

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

答案 2 :(得分:0)

从日志条目

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

我怀疑问题出现在Postfix上,其中我不是专家。谷歌搜索“致命:没有SASL认证机制”提供了许多有趣的链接:可能看看herehere