提问人:Trent 提问时间:9/17/2008 最后编辑:Azat IbrakovTrent 更新时间:12/23/2018 访问量:436
如何开始处理与网站活动相关的电子邮件?
How do I get started processing email related to website activity?
问:
我正在编写一个需要通过电子邮件进行用户交互的 Web 应用程序。我很好奇是否有最佳实践或推荐的来源来学习处理电子邮件。我正在用 Python 编写我的应用程序,但我不确定要使用哪个邮件服务器,或者如何格式化邮件或主题行以考虑自动处理。我也在寻找有关处理反弹的指导。
答:
对于如何自动发送电子邮件,这里有一些非常严重的问题,这里有一些:
使用电子邮件库。Python 包含一个名为“电子邮件”的文档。这是你的朋友,它会阻止你做任何悲惨的错误。阅读 Python 手册中的示例。
一些可以阻止您被垃圾邮件过滤器阻止的要点:
始终从有效的电子邮件地址发送。您必须能够将电子邮件发送到此地址并接收它(它可以在收到后进入 /dev/null,但必须可以在那里 /deliver/)。这将阻止执行发件人地址验证的垃圾邮件过滤器阻止您的邮件。
您在 server.sendmail(fromaddr, [toaddr]) 行上发送的电子邮件地址将是退回邮件的去向。电子邮件中的“发件人:”行是一个完全不同的地址,当用户点击“回复:”时,邮件将转到该地址。利用这一点来发挥你的优势,退回可以去一个地方,而回复去另一个地方。
将电子邮件发送到本地邮件服务器,我建议使用 postfix。此本地服务器将接收您的邮件,并负责将其发送到您的上游服务器。将其传送到本地服务器后,从编程角度将其视为“已发送”。
如果您的站点位于信誉良好的数据中心的静态 IP 上,请不要害怕简单地将邮件直接中继到 Internet。如果你在一个充满脚本小子和垃圾邮件发送者的数据中心,你将需要通过一个声誉良好的公共MTA来转发这封邮件,希望你能够毫不费力地解决这个问题。
不要只用 HTML 发送电子邮件。始终以 Plain 和 HTML 格式发送,或者只是以 Plain 格式发送。友善一点,我使用纯文本电子邮件客户端,你不想惹恼我。
确认您没有在电子邮件域上运行 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的信息。
希望能有所帮助。
有关自动邮件处理的一些一般信息...
首先,邮件服务器“品牌”本身对于广播或接收电子邮件并不那么重要。它们都支持标准的 smtp/pop3 通信协议。大多数甚至支持 IMAP,并具有一定程度的垃圾邮件过滤功能。也就是说,请尝试使用最新一代的电子邮件服务器。
其次,请注意,为了减少垃圾邮件,许多接收邮件的服务器只会扔掉邮件,而不是回复邮件帐户不存在。这意味着您可能不会收到这些。
请记住,通过垃圾邮件过滤器是一门艺术。许多 isp 会监视重复邮件、基于关键字或其他内容看起来像垃圾邮件的邮件等。这有时与发送的消息数量无关;我见过只有 50 个副本的邮件被 AOL 阻止,即使它们是合法的电子邮件。因此,测试是您的朋友,请查看维基百科上有关反垃圾邮件技术的这篇文章。然后确保你不做那些废话。
**
至于处理消息,请记住它是一个排队系统。通过 POP3 连接到服务器以检索邮件、打开邮件、执行某些操作、删除邮件或存档邮件,然后继续。
关于退回,让邮件服务器完成大部分工作。您应该能够将其配置为在无法传递邮件时通知服务器上的某个电子邮件帐户。您可以定期检查该帐户,并在必要时处理未送达报告。
评论