最佳实践:代表用户发送电子邮件

Posted

技术标签:

【中文标题】最佳实践:代表用户发送电子邮件【英文标题】:Best practices: Sending email on behalf of users 【发布时间】:2011-02-16 11:09:06 【问题描述】:

我工作的公司为医疗保健行业提供检测服务。作为我们服务的一部分,我们需要向客户的员工发送电子邮件。通常,这些是临时员工、兼职员工或合同工,因此有私人电子邮件地址(例如 Hotmail、GMail、Yahoo! 等)。

到目前为止,我们一直从内部地址发送邮件,但这意味着当员工不注意或不知道向我们的客户发送查询时,我们会收到回复。我想更改此设置,以便请求发送电子邮件的人是回复的人。

我们过去曾使用过回复:但它似乎会导致其他邮件被垃圾邮件过滤器捕获。

我一直在阅读有关 sender: 和 on-behalf-of: 标头的内容,并且想知道在我们需要发送电子邮件以使回复发送到域的情况下,当前发送电子邮件的最佳实践是什么我们无法控制。

【问题讨论】:

一个常见的问题,不幸的是垃圾邮件发送者毁了这个派对。您是否考虑过实际上不尝试自己发送电子邮件,而是让您的客户为您设置电子邮件地址(或使用现有的),然后连接到他们的 SMTP 以发送电子邮件?这样,replyTos 将直接发送到您客户的邮箱。 放弃上述评论,是否可以让用户在您的应用程序中以表格形式输入他们的凭据/电子邮件地址,然后将这些凭据转发到他们的 SMTP 服务器?您能以这种方式代表他们发送电子邮件吗?或者这是一个坏主意,为什么? 对于那些只想阅读文档的人:官方 IETF RFC 标头定义:tools.ietf.org/html/rfc5322 电子邮件标头上的 Wiki 页面:en.wikipedia.org/wiki/Email#Message_header 【参考方案1】:

on-behalf-of 标头是最好的方法,但您也会被垃圾邮件过滤器困住。减轻或减少您最终进入垃圾邮件过滤器的可能性的最佳方法是实施有关验证您的域和邮件服务器的所有行业标准。如本文所述:

http://www.codinghorror.com/blog/2010/04/so-youd-like-to-send-some-email-through-code.html

但这很难做到,因为您需要始终掌握垃圾邮件标准,并遵守 CAN-SPAM 法律和其他规定。更好的选择是使用这样一个基于云的按需 SMTP 服务器:

https://www.postmarkapp.com

请使用在发送电子邮件领域的领域专家并且已经完成所有工作以获得最高送达率的公司。并将始终为您提供最高标准,并监控黑名单中的问题。

【讨论】:

我们已经完成了 codinghorror 博客(我读过)中推荐的大部分内容。我们使用 SPF/Sender-ID 记录,我们有一个适当的反向 PTR 到我们的网络系统的 SMTP 中继。目前,从我们自己的域发送垃圾邮件没有问题。问题是将回复路由到正确的各方。 在您签署每封电子邮件后,您可以使用on-behalf-of,或者您甚至可以将实际电子邮件放入from 地址,这是防弹解决方案。 我从未听说过On-Behalf-Of:,而且 Google 似乎只显示 Outlook 和 Gmail 结果,与官方标准完全不同。传统上,您会将您的客户放在From: 中,将您自己放在Sender: 中。我怀疑这是在 Outlook 和 Gmail 中出现的“代表”。 @triplee 将您的客户放入From: 违反了 DMARC。您的电子邮件可能会被拒绝,或者至少被标记为垃圾邮件。 on-behalf-of - 在 RFC 或任何已知的邮件标准中没有这样的标题,谷歌搜索也无济于事。这个问题是唯一弹出的来源。 @NickBerardi 请注明出处【参考方案2】:

您可能正在寻找Reply-To。与On-Behalf-Of 不同,它是官方且广泛支持的标头,并且不受与From 相同的垃圾邮件检查。

如果您真的想以其他用户的名义发送邮件,按照 SMTP 标准,“大部分”正确的方法是将您的“真实”地址放入 Sender: 和您客户的地址(您的代表重新发送)在From:。但是,From: 是 DMARC 的特定目标,这是一种由大多数主要电子邮件提供商实施的非常严格的垃圾邮件预防协议。他们不会因为您有一个有效的Sender: 标头而忽略From: DMARC 失败。

DMARC 允许域所有者指定如何将 SPF 和 DKIM 应用于 From: 标头。一个流行的政策是拒绝未通过 SPF 或 DKIM 的电子邮件,这意味着您的电子邮件甚至不会被标记为垃圾邮件:它将被彻底拒绝。

Sender: + From: 在技术上仍然有效。最初创建它的目的是供同一组织中的人员使用,例如秘书或助理。随着垃圾邮件预防机制的出现,这已成为一种硬性约束。

【讨论】:

【参考方案3】:

您想通过尝试代表他人发送电子邮件来欺骗和破解电子邮件身份验证系统。也许这种黑客可以暂时起作用,但将来它会被邮箱提供商禁止,因为网络钓鱼攻击需要邮箱提供商需要应用越来越严格的政策。

为了避免这种黑客攻击,我建议使用一种解决方案。 为每个客户创建一个唯一的电子邮件地址,并使其成为客户和员工之间对话的“中介”。

工作原理

所有电子邮件对话都必须通过您创建的电子邮件进行。您可以设置自定义显示名称(例如John <123@yourdomain.com),以免将电子邮件接收者与您奇怪的唯一 ID 混淆。因此,当A 需要写信给B 时,它实际上会写信给您的电子邮件,然后您将电子邮件转发给B,反之亦然,将B 转发给A

此实现有一些复杂性,但将来会支付。

【讨论】:

这绝对是要走的路。但是必须有一个现成的包来以这种方式转发电子邮件。你知道什么吗?

以上是关于最佳实践:代表用户发送电子邮件的主要内容,如果未能解决你的问题,请参考以下文章

通过 WordPress 发送批量电子邮件的最佳实践

向大量收件人发送电子邮件的最佳实践 (Rails + SendGrid)

基于WPS的Word最佳实践系列(邮件合并实现邮件批量发送)

如何在Windows 10中发送通知(电子最佳实践)?

信创办公--基于WPS的Word最佳实践系列(邮件合并实现邮件批量发送)

Firestore 用户管理最佳实践?