正确使用SMTP“发件人”标头?


20

当有人发布新内容时,我们的Web应用程序会向人们发送电子邮件。发件人和收件人都选择从我们的应用程序接收电子邮件。准备此类消息时,我们设置以下SMTP标头:

来自:author@example.com
收件人:收件人@ example.com
SENDER:webapp@mycompany.com

我们选择在FROM标题中使用作者的电子邮件地址,以便为收件人提供最佳体验。当他们在邮件客户端中看到邮件时,作者就清楚了。为避免出现欺骗现象,我们添加了SENDER标头(带有我们自己的公司电子邮件地址),以明确表示我们代表作者发送了该邮件。阅读完RFC 822和2822之后,这似乎是发件人标头的预期用途。

大多数接收邮件服务器似乎处理得很好。电子邮件将正常传递(假设收件人邮箱存在,未超过配额等)。但是,当从域中的地址向同一域中的地址发送消息时,某些接收域拒绝消息,其响应如下:

571 IP错误-psmtp(回复RCPT TO命令)

我认为这意味着接收服务器仅看到FROM头地址在其自己的域中,并且该消息源自它不认为已授权为该域发送消息的服务器。换句话说,接收服务器将忽略SENDER标头。

我们有一个解决方法:webapp保留了一个似乎忽略SENDER标头的域列表,并且当FROM和TO标头都在这样的域中时,它将FROM标头设置为我们自己的电子邮件地址。但是此列表需要维护。

有没有更好的方法来获得所需的体验?我们希望成为网络的“好公民”,并且所涉及的各方(发件人和收件人)都希望参与并接收这些消息。一种替代方法是始终在FROM标题中使用我们公司的电子邮件地址,并在主题之前添加作者的姓名/地址,但这似乎有些笨拙。


为什么不使用From: author代替From: author@example.com
Pacerier '17

Answers:


16

您正在查看错误的内容。这些是消息。您应该查看SMTP 信封。(如何指定信封取决于您的应用程序将邮件确切地提交到邮件系统的方式。在许多系统上,信封是由邮件提交实用程序的命令行参数指定的。)取决于协议事务中的确切时间如果它决定发出571响应,则SMTP中继服务器可能甚至根本看不到邮件头。

响应文本是说您正在与之对话的特定SMTP中继服务器的管理员限制了可以放入SMTP信封的内容。似乎在抱怨信封的收件人部分。但这可能会将信封发件人的验证推迟到第一个收件人指定之前,因此可能会抱怨发件人。

请注意,信封发送者是发送发送状态消息的地方,您希望将这些消息发送给世界各地的随机人。(除了许多人不喜欢这样的事实之外,将您的邮件的发送状态消息退还给您以外的任何人都没有意义。)将您自己指定为信封发件人。

MX顺便说一句,要求资源记录是错误的。SMTP中继服务器可以通过位于A并且AAAA在没有任何资源记录MX资源记录。参见RFC 5321§5.1。


在实施MX记录检查之前,我检查了RFC,并学到了同样的东西:在没有MX记录的情况下检查回退A记录。我将研究SMTP信封;谢谢你的建议。
埃里克·拉斯

我研究了SMTP信封,对此进行了测试。您是对的-我错误地认为所有原始检查都将使用“发件人”消息标头,但看起来好像改用了信封。
埃里克·拉斯

5

我可能是错的,但最可能导致上述错误的原因(尤其是在Postini中)是,您被拒绝的域具有严格的SPF政策。大多数具有SPF检查功能的邮件服务器将只检查发件人:标头,而不关心发件人标头。

要检查是否存在这种情况,请运行“ dig + short TXT domain.com”,其中domain.com是给您错误消息的原因。您应该返回类似以下内容:

“ v = spf1 mx -all”

重要的是所有。这意味着域所有者已声明他们只会从充当其邮件服务器的服务器发送电子邮件,而所有其他邮件将被拒绝。

幸运的是,在这种情况下,您可以在发送电子邮件之前主动进行检查!当用户输入其电子邮件地址时,使WebApp进行SPF检查。如果有严格的政策,请将域添加到列表中。可以执行SPF检查的所有语言的库都不乏。


谢谢,这是个好主意。我检查(挖掘)了少数已经表现出不良行为的域,并且一对确实有〜all的SPF记录。因此,这不是一个完整的解决方案,但我认为很难找到解决此问题的完整解决方案。我认为其他人都在执行相同的基本逻辑,但是没有在SPF记录中存储/发布信息。
埃里克·拉斯

您的想法建议执行另一项验证检查:该地址的域应具有有效的MX记录。如果有人输入了错误的电子邮件地址,并且错误落在该地址的域部分(例如person@domainn.com),则传递将失败,因为找不到该域的MX记录(假设该错误未导致不同但仍然有效的域)。
埃里克·拉斯

我将下面的“接受的答案”更改为JdeBP-消息标头和信封标头之间的区别确实钉住了它。但是,感谢您的反馈。
埃里克·拉斯

5
更正:SPF检查信封中的“ MAIL FROM”,而不是 “ From”或“ Sender”标头。
西蒙·伊斯特
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.