我正在开发一个Web应用程序。用户将创建一封将发送给其他人的电子邮件。
我希望发送的电子邮件显示在我系统上用户的用户名和电子邮件地址中。如果他们回复电子邮件,那么它应该直接转到发件人的电子邮件地址。
然而,我担心电子邮件在整个过程中看起来像垃圾邮件到电子邮件过滤器。
有没有正确的方法呢?
我注意到在WordPress博客上的“联系”页面上发生了类似的事情。电子邮件标题如下:
To: email@domain.com
Subject: [Test Blog] =?UTF-8?B?aGVsbA==?=
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
From:=?UTF-8?B?aGVsbA==?=<sender@senderdomain.com>
Message-Id: <20090207234737.39C9522802F3@web7.sat.wordpress.com>
Date: Sat, 7 Feb 2009 23:47:37 +0000 (UTC)
Return-Path: donotreply@wordpress.com
有趣的是,“from”标签中的显示名称和主题行中显示的名称被编码。我不知道这是否有助于垃圾邮件过滤器,但认为它至少值得一提。
此外,在此示例中,谁会收到无法投递的通知?它会转到sender@senderdomain.com还是会转到donotreply@wordpress.com?
答案 0 :(得分:2)
基本上,您需要将From
标题设置为发送电子邮件的用户的电子邮件地址。 From
的值是收件人电子邮件客户端中显示的值。现在大多数垃圾邮件检测系统只关注邮件内容,而不是电子邮件标题,因此根据您设置From标头的内容,您目前不会遇到太多问题。
然而,有些系统越来越受欢迎,可能会阻止您发送电子邮件与其他人的电子邮件地址 - 最明显的是SPF,Sender Policy Framework基本上,实施SPF的邮件服务器将检查域的它收到的每封电子邮件的From
地址,并直接与该域核对,以查看它是否授权该电子邮件。例如,如果您的服务器为mydomain.com
,则该用户的电子邮件地址为abcdef@gmail.com
,收件人为blah@example.com
,
mydomain.com
通过SMTP联系example.com
以尝试发送电子邮件example.com
查找gmail.com
example.com
检查mydomain.com
是否在允许使用域gmail.com
另外,我发现forum post表示Return-Path
是无法投递通知的预定目的地。显然,该头是根据SMTP MAIL FROM命令的值设置的。
答案 1 :(得分:0)
设置电子邮件字段通常很简单,但这样做的确切方法取决于您使用的语言和框架,您没有提及。通常,这是一个创建新的电子邮件对象的问题,并且只是按照以下方式执行:
email.from = "From Name <fromemailaddress@example.com>";
您可以设置具体的地址到您的用户,如果您愿意,虽然我个人不是粉丝,但这并不常见。您还可以将from字段设置为:“发件人姓名(通过您的站点名称)&lt; yourresponseaddress@example.com>”。
答案 2 :(得分:0)
不要这样做。
这实际上取决于您的邮件中继设置方式,但实际上就是不这样做。来自标题应包含发送电子邮件的电子邮件地址,在您的案例中为webmaster@whatever.com。如果您希望人们回复其他地址,您始终可以使用“回复”标题。 Here are some notes.
答案 3 :(得分:0)
如果我正确理解标准(RFC 822),这正是 Sender 标头的用途(参见§4.4.2.SENDER/ RESENT-SENDER)。不过,我会采用不同的方法,在 From 标题中使用您的网站官方联系地址,并将用户的地址放在 Reply-To 标题中。也许添加一些样板文本,清楚地说明邮件的来源。
除了技术方面的一个进一步的建议:不要让匿名用户使用此功能,您将成为垃圾邮件的完美平台。此外,出于善意,您可能希望确保您的(注册)用户知道他们的电子邮件地址是向收件人公开的。
答案 4 :(得分:0)
请注意,这样做会使垃圾邮件过滤器对您的电子邮件更加怀疑。结合可疑的内容,您的电子邮件可能会被过滤掉。
答案 5 :(得分:0)
“发件人”标题中的任何人都会收到无法送达的通知。
对于过滤 - 它实际上更多地取决于邮件的主题和正文而不是来自发件人地址。所以说,有几个想法......