我们尝试使用发送邮件javax.mail
。 虽然发送邮件,我们得到以下异常:
**sendMail - Message Sending Failed: Invalid Addresses;
nested exception is:
javax.mail.SendFailedException: 550 #5.1.0 Address rejected.2013-02-28 13:17:08,236**
可能是什么问题?
我们尝试使用发送邮件javax.mail
。 虽然发送邮件,我们得到以下异常:
**sendMail - Message Sending Failed: Invalid Addresses;
nested exception is:
javax.mail.SendFailedException: 550 #5.1.0 Address rejected.2013-02-28 13:17:08,236**
可能是什么问题?
这意味着,接收服务器无法识别邮箱中的电子邮件地址(在“@”前面的部分)。 这可能是因为它被拼错,它是一个简单的非现有的名称,或者其甚至可以是,所述接收服务器被设置为拒绝的消息(例如邮件)通过与代码550回复。
下面是总结了SMTP答复代码许多网页,并提供链接到各种相关RFC: http://www.greenend.org.uk/rjk/tech/smtpreplies.html 。
编辑:我需要一些更多的空间来回答你的问题不是评论允许。
@RaghuKing,如果你看的Javadoc javax.mail.SendFailedException
,你会发现,你可以调用3种方法这样的异常物体上(里面catch
块):
getInvalidAddresses()
来获取是无效的并且因此不被发送到的地址的数组, getValidSentAddresses()
到达此消息成功地放到地址的阵列,并且 getValidUnsentAddresses()
来获取是有效的,但该消息未发送至地址数组。 (显然,如果一个发送消息给多个收件人,有些人可能会成功,有些失败,但会抛出异常,如果有至少一个出现故障,不管有多少成功的。很显然,如果你还准备发送到只有一个地址,你将在只有这些阵列中的一个是一个地址,它可能不会在ValidSent列表。
这些阵列会给你更多的信息,如何处理异常,这取决于阵列的地址是在类型这显然取决于你的应用程序,但这些可能是合理的建议:
但最终这是你谁有权申请常识,或许实验你不明白,直到你了解他们的功能有点。
经历过这种相同的异常。我意识到,我不能发送电子邮件给未知用户。 咨询后,我发现我们的SMTP服务器是不是阅读开放邮件中继服务器开放邮件中继 。