![确定电子邮件地址的退回/rfc 状态而不向该地址发送电子邮件](https://linux22.com/image/1452252/%E7%A1%AE%E5%AE%9A%E7%94%B5%E5%AD%90%E9%82%AE%E4%BB%B6%E5%9C%B0%E5%9D%80%E7%9A%84%E9%80%80%E5%9B%9E%2Frfc%20%E7%8A%B6%E6%80%81%E8%80%8C%E4%B8%8D%E5%90%91%E8%AF%A5%E5%9C%B0%E5%9D%80%E5%8F%91%E9%80%81%E7%94%B5%E5%AD%90%E9%82%AE%E4%BB%B6.png)
当您发送的电子邮件因某种原因被服务器拒绝时,您可能会收到一封退回邮件,其中包含有关电子邮件被退回原因的有用信息,例如 RFC 状态代码。有没有办法在不实际发送电子邮件的情况下获取相同的信息,比如某种 ping?这样,我可以说:如果我假设地发送电子邮件到[电子邮件保护]我能确切知道它是否会反弹吗?如果它会反弹,反弹会是什么样子?
我有一个分发列表。如果邮件被退回,预期收件人将被标记。如果他们连续被标记 3 次,我将停止向他们发送邮件。这样做的目的是我的服务器不会浪费资源构建和排队发送到错误地址的电子邮件,而这些邮件会占用我的邮件队列。
我想将禁令设为“试用”,以便将来测试该地址,看看它是否仍会被退回。也许他们的收件箱刚刚满了,现在却没满了。或者他们的服务器将我的 IP 列入了黑名单,而我后来被列入了白名单。 有没有办法无需实际向他们发送电子邮件就能确定这一点?如果它再次被退回,那么它可能会继续堵塞我的邮件队列并浪费服务器资源,而我正试图避免这种情况。
我正在qmail
使用CentOS
。
答案1
您唯一能做的就是查看退回的原因,并区分不存在的用户或其他“永久”原因(错误的电子邮件地址可能会无限期地继续失败)和暂时原因(包括收件箱已满),您可以定期重试,也许使用逐步增加的延迟方案以免浪费资源 - 但不要彻底放弃。
除此之外,您无法确定重试是否会反弹,因为您不知道瞬态条件是否仍然存在。
您可以在这里了解更多详细信息:https://www.oasis-open.org/khelp/kmlm/user_help/html/how_email_works.html