我有一个应用程序,一旦用户填写了表格,它就会向用户发送电子邮件。它使用 ano-reply@customerdomain.com作为发件人地址。客户希望它使用表单中的电子邮件作为发件人地址,该地址可以是任何内容。有人告诉我,由于欺骗/黑名单和垃圾邮件,这是一个坏主意。
我对为什么这是一个坏主意的确切原因感到非常含糊,特别是因为我必须尝试为客户提供建议。有人可以向我解释为什么这是一个坏主意。
有趣的是,客户端使用 gmail 帐户作为发件人地址作为演示,这不仅工作正常,而且使应用程序能够开始发送电子邮件(以前使用 的电子邮件不会这样做no-reply@customerdomain.com)。嗯 - 这是怎么回事。有人告诉我一件事,而恰恰相反。
对不起 - 我知道这是基本的,但我可以在谷歌搜索中找到任何东西。我认为很大程度上是因为我什至在构建问题时都遇到了麻烦。
编辑
谢谢大家 - 很好的答案。有趣的是,发送电子邮件的服务器和它将要发送到的邮箱都在同一防火墙后面,因此客户端表示他们不关心垃圾邮件。那好吧。
当有人发布新内容时,我们的 Web 应用程序会向人们发送电子邮件。发件人和收件人都已选择从我们的应用程序接收电子邮件。在准备这样的消息时,我们设置了以下 SMTP 标头:
发件人:author@example.com 收件人:收件人@example.com 发件人:webapp@mycompany.com
我们选择在 FROM 标头中使用作者的电子邮件地址,以尝试为收件人提供最佳体验;当他们在邮件客户端中看到消息时,作者很清楚。为了避免欺骗的出现,我们添加了 SENDER 标头(使用我们自己的公司电子邮件地址)以明确我们代表作者发送了邮件。阅读 RFC 822 和 2822 后,这似乎是发送方标头的预期用途。
大多数接收邮件的服务器似乎都能很好地处理这个问题;电子邮件消息正常传递(假设收件人邮箱存在,未超过配额等)。但是,当从域中的地址向同一域中的地址发送消息时,某些接收域会拒绝消息并给出如下响应:
571 不正确的 IP - psmtp(回复 RCPT TO 命令)
我认为这意味着接收服务器只看到 FROM 标头地址在它自己的域中,并且消息来自它认为没有授权为该域发送消息的服务器。换句话说,接收服务器忽略了 SENDER 标头。
我们有一个解决方法:webapp 保留了一个列表,这些域似乎忽略了 SENDER 标头,当 FROM 和 TO 标头都在这样的域中时,它会将 FROM 标头设置为我们自己的电子邮件地址。但是这个列表需要维护。
有没有更好的方法来实现所需的体验?我们希望成为网络的“好公民”,所有相关方——发送者和接收者——都希望参与并接收这些消息。一种替代方法是始终在 FROM 标题中使用我们公司的电子邮件地址,并将作者的姓名/地址放在主题前面,但这似乎有点笨拙。