代表某人发送电子邮件并获得他们的许可

Send email on behalf of someone with their permission

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

我想做同样的事情,但显然需要用户许可。这是否可以在 C# 代码或类似服务中执行,不会转到 spam/junk 文件夹?

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

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

因此,大多数这样做的联系表格都是错误的——他们伪造了发件人地址并希望能够逃脱惩罚,或者他们根本不知道有什么更好的办法。使用您没有权限的发件人地址只是伪造,现在它通常会被丢弃在垃圾邮件中或被彻底拒绝 – 但这并不能阻止您尝试做一些愚蠢的事情!

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

The contact form example provided with PHPMailer 使用这种方法,无论您使用何种语言,您都应该能够理解。

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