在获得许可的情况下代表某人发送电子邮件

问题描述

我见过一些代表用户发送电子邮件的网站,但是当电子邮件通过时,它似乎只是来自用户。例如网站上的联系表单。

我想做同样的事情,但显然是在用户许可的情况下。这是否可以在 C# 代码或不会进入垃圾邮件/垃圾文件夹的类似服务中执行?

理想情况下,发件人/回复电子邮件地址应该向用户显示并且不会被阻止,即只要我获得他们的许可,就可以通过正确的服务器。

解决方法

您可以这样做的唯一方法是,如果他们发送的域将您域的 SPF 添加到他们的 SPF 记录,并且他们可能发布您持有私钥的 DKIM 记录。实际上,对于允许任意发件人的联系表单,这是不可能发生的。此外,如果发件人使用的是来自 Gmail 等服务的电子邮件地址,您将永远不会发生这种情况。

因此,大多数这样做的联系表格只是做错了 - 他们伪造发件人地址并希望他们能够逃脱它,或者他们根本不知道更好。使用未经许可的发件人地址只是伪造,如今它通常会被丢弃在垃圾邮件中或被彻底拒绝 - 但这并不能阻止您尝试做一些如此愚蠢的事情!

您提到了唯一的解决方法,即 reply-to 地址。在这种情况下,您通常会从您自己发送给您自己,但使用提交者的地址作为回复,这样当您回复邮件时,它会发送给他们。这不需要任何特殊许可,也不是伪造的,所以它通常可以正常工作。

The contact form example provided with PHPMailer 使用这种方法,您应该能够了解您使用的任何语言。

这种方法存在一些实际问题。主要的一个是邮件程序经常忽略来自他们以前见过的地址的消息中的 from name(而不是地址)。这意味着即使您将提交者的姓名与您自己的地址一起放入回复中(因此它包含诸如 Jane User <contactform@example.com> 之类的内容,它也会忽略它并使用第一次使用的任何名称用那个地址。这很烦人,但不会破坏任何东西。

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...