2014-09-20 153 views
0

我有一个简单的独立Java类发送电子邮件。我使用javax.mail发送我的电子邮件。从亚马逊服务器发送电子邮件时发生javax.mail异常

当我在Window机器上运行类时,它工作正常。当我跑亚马逊服务器上的同一类则得到下述情况除外:

Exception in thread "main" javax.mail.MessagingException: Could not connect to SMTP host: smtpout.secureserver.net, port: 25, response: 554 
554 *.phx3.secureserver.net ESMTP No Relay Access Allowed From xxx.xxx.xxx.xxx 

我试图找到在线帮助。例如,通过执行以下命令

nc -z -v smtpout.secureserver.net 25 
Connection to smtpout.secureserver.net 25 port [tcp/smtp] succeeded! 

请帮帮我。

在此先感谢。

回答

0

看来你试图使用服务器smtpout.secureserver.net发送邮件到一个不是由该服务器托管的地址,要求服务器中继该邮件。

由于类似的服务被垃圾邮件发送者用来隐藏,除非服务器知道你,否则几乎所有的服务器都会阻止这种服务,或者是因为你在他的网络中(你不是),或者是你自己进行身份验证。

我不知道它为什么与你的Windows机器一起工作。也许你在该服务器的本地网络中,也许服务器是由你的ISP运行的。

下面是关于如何使用SMTP验证的例子:http://www.rgagnon.com/javadetails/java-0538.html

当然,你需要一个用户名和密码的服务器,你必须先向谁对运行该服务器。

+0

感谢您的回复。我确实使用过您的示例进行smtp身份验证。当我在亚马逊服务器上执行程序时,我遇到了同样的异常。当Windows计算机上运行相同的程序时,情况正常。 – 2014-09-20 09:22:22

+0

@hardy_sandy好吧,出于某种原因,邮件服务器将不允许您转发邮件。谁拥有服务器?你的ISP?他们是否有一项政策,不接受来自外部网络的转播请求? – 2014-09-20 09:29:10

+0

这是来自godaddy的amail服务器。但是如何从Windows机器上继续邮件工作。 – 2014-09-20 10:28:34

相关问题