【发布时间】:2019-08-16 04:07:52
【问题描述】:
给定一个电子邮件地址,是否可以使用 python 确定 smtp 地址是什么。我正在使用 python smtplib 构建一个电子邮件应用程序。
谢谢
【问题讨论】:
标签: python dns smtp smtplib mx-record
给定一个电子邮件地址,是否可以使用 python 确定 smtp 地址是什么。我正在使用 python smtplib 构建一个电子邮件应用程序。
谢谢
【问题讨论】:
标签: python dns smtp smtplib mx-record
Python smtplib module 不执行邮件路由,因此将其留给smart host。
您可以使用dnspython 来查找目标域的 MX 记录(如果没有 MX 记录,还可以使用 A 和 AAAA 记录)。然后您可以将生成的地址传递给smtplib。
但是,这只是实现正确邮件路由所需工作的一小部分:如果目标邮件服务器无法访问或超时,您应该尝试下一个服务器。同样,如果它以 4xx 错误代码响应。如果所有服务器都不可用,则需要将消息临时存储在本地,因此需要实现自己的邮件队列。此外,您的外部 IP 地址可能会被列入邮件递送黑名单。
因此,通常更容易安装本地邮件服务器,例如 Exim 或 Postfix 并使用它来注入邮件,可能通过具有良好电子邮件信誉的智能主机将其路由以避免列入黑名单。
【讨论】: