确定给定电子邮件地址的 smtp 服务器 python smtplib

determine smtp server for a given email address python smtplib

给定一个电子邮件地址,是否可以确定 smtp 地址正在使用什么 python。我正在使用 python smtplib 构建电子邮件应用程序。

谢谢

Python smtplib module does not perform mail routing, so it leaves that to a smart host.

您可以使用 dnspython 查找目标域的 MX 记录(如果没有 MX 记录,则查找 A 和 AAAA 记录)。然后您可以将生成的地址传递给 smtplib.

然而,这只是实现正确邮件路由所需工作的一小部分:如果目标邮件服务器无法访问或超时,您应该尝试下一个服务器。同样,如果它以 4xx 错误代码响应。如果所有服务器都不可用,需要在本地暂存邮件,所以需要自己实现邮件队列。此外,您的外部 IP 地址可能会被列入邮件投递黑名单。

因此,通常更容易安装本地邮件服务器(例如 Exim or Postfix 并使用它来注入邮件,可能通过具有良好电子邮件信誉的智能主机路由邮件以避免列入黑名单。