当有人发布新内容时,我们的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
?