-1

在我正在开发的邮件应用程序中,我捕获了 SendFailedException 来处理收件人电子邮件地址的验证。不过,在阅读了更多内容之后,我了解到 catch 块非常昂贵。这让我想知道在发送消息之前是否有任何方法可以确定地址是否无效。这更像是一个优化问题。

4

1 回答 1

2

这取决于您如何定义“无效”。有一个包含电子邮件验证器的 Apache 库,但这只是检查“@”符号,并检查 @ 符号之前和之后的字段是否不超过限制。没有简单的方法来验证该地址是否存在于目标邮件服务器上。

SMTP 协议依赖于将消息传递到可能是长链中的下一个邮件服务器。从发件人的角度来看,一旦链中的下一个服务器说“我收到了”,邮件就会“发送”。

错误可以在几天后报告,并不总是意味着地址无效。例如,电子邮件信箱可能已满并拒绝更多消息。处理此类回复需要状态机,因为您正在监控一个长时间运行的事务。

于 2014-05-26T09:05:22.827 回答