我正在编写一个需要通过电子邮件进行用户交互的网络应用程序。我很好奇是否有学习处理电子邮件的最佳实践或推荐资源。我正在用 Python 编写我的应用程序,但我不确定要使用哪个邮件服务器或如何格式化消息或主题行以进行自动处理。我也在寻找有关处理退回的指导。
请您参考如下方法:
这里有一些关于如何自动发送电子邮件的非常严重的问题,这里有一些:
使用电子邮件库。 Python 包含一个名为“电子邮件”的工具。这是你的 friend ,它会阻止你做任何可悲的错误。阅读 the Python Manual 中的示例.
一些可以阻止您被垃圾邮件过滤器阻止的要点:
始终从有效的电子邮件地址发送。您必须能够向该地址发送电子邮件并接收它(它可以在收到后进入/dev/null,但必须可以/deliver/到那里)。这将阻止执行发件人地址验证的垃圾邮件过滤器阻止您的邮件。
您在 server.sendmail(fromaddr, [toaddr]) 行上发送的电子邮件地址将是退回的地方。电子邮件中的发件人:行是一个完全不同的地址,当用户点击“回复:”时,邮件将发往该地址。利用这一点,退回邮件可以转到一个地方,而回复可以转到另一个地方。
发送邮件到本地邮件服务器,我推荐postfix。该本地服务器将接收您的邮件并负责将其发送到您的上游服务器。将其传送到本地服务器后,从编程的角度将其视为“已发送”。
如果您的站点位于信誉良好的数据中心的静态 IP 上,请不要害怕直接将邮件中继到互联网。如果您在一个充满脚本小子和垃圾邮件发送者的数据中心,您将需要通过信誉良好的公共(public) MTA 转发此邮件,希望您能够轻松解决这个问题。
不要只发送 HTML 格式的电子邮件。始终以纯文本和 HTML 格式发送,或仅以纯文本格式发送。别客气,我用的是纯文本电子邮件客户端,你不想惹恼我。
确认您没有在您的电子邮件域上运行 SPF,或者将其配置为允许您的服务器发送邮件。通过在您的域上执行 TXT 查找来执行此操作。
$ dig google.com txt
...snip...
;; ANSWER SECTION:
google.com. 300 IN TXT "v=spf1 include:_netblocks.google.com ~all"
正如您从该结果中看到的那样,那里有一条 SPF 记录。如果您没有 SPF,则不会有 TXT 记录。阅读更多关于 SPF on wikipedia 的信息.
希望对您有所帮助。
