1

我正在编写一个需要通过电子邮件进行用户交互的 Web 应用程序。我很好奇是否有学习处理电子邮件的最佳实践或推荐来源。我正在用 Python 编写我的应用程序,但我不确定要使用哪个邮件服务器或如何格式化消息或主题行以考虑自动处理。我也在寻找有关处理反弹的指导。

4

2 回答 2

4

这里有一些关于如何自动发送电子邮件的非常严重的问题,这里有一些:

使用电子邮件库。Python 包括一个称为“电子邮件”的方法。这是你的朋友,它会阻止你做任何可悲的错误。阅读Python 手册中的示例。

一些可以阻止您被垃圾邮件过滤器阻止的要点:

始终从有效的电子邮件地址发送。您必须能够向该地址发送电子邮件并收到它(它可以在收到后进入 /dev/null,但必须可以在那里 /deliver/)。这将阻止执行发件人地址验证的垃圾邮件过滤器阻止您的邮件。

您在 server.sendmail(fromaddr, [toaddr]) 行上发送的电子邮件地址将是退回邮件的地方。电子邮件中的 From: 行是一个完全不同的地址,当用户点击“Reply:”时,邮件将发送至该地址。利用这一点,反弹可以去一个地方,而回复去另一个地方。

将电子邮件发送到本地邮件服务器,我推荐使用 postfix。此本地服务器将接收您的邮件并负责将其发送到您的上游服务器。一旦它被传递到本地服务器,从编程的角度来看它是“发送的”。

如果您的站点位于声誉良好的数据中心的静态 IP 上,请不要害怕直接将邮件中继到 Internet。如果您在一个充满脚本小子和垃圾邮件发送者的数据中心,您将需要通过具有良好声誉的公共 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 的信息

希望有帮助。

于 2008-09-17T03:31:07.383 回答
2

有关自动邮件处理的一些一般信息...

首先,邮件服务器“品牌”本身对于广播或接收电子邮件并不重要。它们都支持标准的 smtp/pop3 通信协议。大多数甚至有 IMAP 支持,并有一定程度的垃圾邮件过滤。也就是说,尝试使用当前一代的电子邮件服务器。

其次,请注意,为了减少垃圾邮件,许多接收邮件服务器会简单地丢弃邮件,而不是回复邮件帐户不存在。这意味着您可能不会收到这些。

请记住,通过垃圾邮件过滤器是一门艺术。许多 isp 对重复消息、基于关键字或其他内容看起来像垃圾邮件的消息等进行监视。这有时与发送的消息数量无关;我已经看到只有 50 个副本的邮件被 AOL 阻止,即使它们是合法的电子邮件。因此,测试是您的朋友,请查看维基百科上关于反垃圾邮件技术的这篇文章。然后确保你没有做那些废话。

**

至于处理消息,请记住它是一个排队系统。通过 POP3 连接到服务器以检索邮件、打开邮件、执行某些操作、删除邮件或将其存档,然后继续。

关于退回,让邮件服务器完成大部分工作。您应该能够将其配置为在无法传递消息时通知服务器上的某个电子邮件帐户。您可以定期检查该帐户并根据需要处理未送达报告。

于 2008-09-17T03:44:00.677 回答