办公室外自动回复邮件被发送到“发件人”地址,而不是“回复地址”。

5
我正在使用一个共同的电子邮件地址向三个不同地点的客户发送电子邮件。任何错误/离开办公室的回复都应该发送到当地办事处处理。因此,我使用以下方式:
from: common@abc.com reply-to: london@abc.com
from: common@abc.com reply-to: newyork@abc.com
from: common@abc.com reply-to: tokyo@abc.com
这似乎在电子邮件失败时(错误的地址等)效果很好,但是来自Exchange的离开办公室的回复总是发送到发件人地址common@abc.com。我需要它们发送到本地办事处的答复地址。
有什么办法可以解决这个问题吗?我正在使用c#发送电子邮件,使用标准MailMessage。
MailMessage mail = new 
mail.Subject = mailDetail["subject"].ToString();
mail.Body = mailDetail["body"].ToString();

// From 
mail.From = new MailAddress(ConfigManager.GetSetting("MailSender"));

// Reply to (boucebacks / out of office etc)
mail.ReplyTo = new MailAddress(mailDetail["reply_to"].ToString());
mail.DeliveryNotificationOptions = DeliveryNotificationOptions.OnFailure;

感谢您的帮助,
Ryan
2个回答

18

这是一个RFC/标准。 https://www.rfc-editor.org/rfc/rfc3834

  1. 自动响应发送地址(和不发送的地址)

一般情况下,如果是投递后生成的自动响应,则应将其发送到 Return-Path 字段。如果响应在投递之前生成,则应将响应发送到 SMTP MAIL FROM 命令中的反向路径,或者(在非SMTP系统中)发送到作为非传送报告目的地的信封返回地址。

如果响应是在投递后生成的,并且主题消息中没有 Return-Path 字段,则表示 SMTP 服务器在传递邮件时出现了实现或配置错误,或将邮件网关化到了 SMTP 之外。个人或组响应器不应将响应传递到除 Return-Path 字段之外的任何地址,即使缺失了 Return-Path 字段。更好的方法是修复邮件传递系统中的问题,而不是依赖试探法猜测响应的适当目的地。这种试探法已知会在过去引起问题。

服务响应器可以将响应发送到 From 字段中的地址或请求有效载荷中的其他地址,前提是该服务的规范明确定义了此行为。服务响应器不应使用 Reply-To 字段进行此操作。

个人或组响应器不应将自动响应的目的地设置为 Reply-To 字段。一般来说,该字段是由人类发送者根据他/她对该消息特定内容的接收者会如何回复进行设置的。例如,人类发送者可能使用 Reply-To 来请求将答复发送到整个邮件列表。即使对于人类的答复,也有不适宜使用 Reply-To 的情况。

Moore Standards Track [Page 12]

RFC 3834 Automatic E-Mail Responses August 2004

特别是当发件人要求回复发送到一个群组和/或邮件列表时,应将回复发送到Reply-To地址。由于个人或组自动回复器代表人类接收者运作,因此更安全的做法是假设消息中存在的任何Reply-To字段是由发送方设置的,假设任何回复都来自具有对发送方和其他接收者角色的某些理解的人类。自动回复器缺乏理解这些角色所需的信息。将自动响应发送到Reply-To地址可能导致大量人员接收到无用或不想要的消息;它也可能导致邮件循环。

使用From字段作为自动响应的目标与使用Reply-To存在一些相同的问题。特别地,From字段可能列出多个地址,而自动响应应该只发送到单个地址。通常情况下,根据不同的情况,From和Reply-To地址会以各种方式使用,因此个人或组自动回复器不能可靠地假定From或Reply-To字段中的地址是响应的适当目的地。因此,From字段不应用作自动回复的目的地。

类似地,Sender字段不应用作自动响应的目标。该字段仅用于标识发送消息的人或实体,并且不需要包含可用于回复的地址。

Return-Path地址实际上是消息标头中唯一可以预期作为协议问题适用于未被发送者预期的自动响应的地址。


5
任何回复邮件的人/事都可以选择使用最合适的属性。当然,如果是真正的回复,则应该使用“reply-to”属性,但错误消息可能不被视为回复,因此在某些情况下可以使用“from”属性。正如您看到的,取决于谁/什么在回答以及原因,您将获得不同的结果。
您可以使用“Sender”属性来指定实际发件人作为“from”属性的补充。如果处理正确,那么错误消息应该发送到那里,如果没有使用“reply-to”属性。

我知道这取决于响应的事物,但我很好奇 - 邮件服务器的哪种设置更常见?将自动回复消息发送到答复地址还是发件地址? - Luke
@Guffa - 你知道有哪些特定系统会使用“sender”而不是“From”或“reply-to”吗?你知道这是否可以在Exchange或Lotus上进行配置吗?谢谢。 - GeorgeBarker
@GeorgeBarker:OP观察到Exchange使用了“sender”。我不知道服务器是否可配置,但如果可以的话,这只是另一个原因,说明你不能依赖于任何特定的行为。 - Guffa

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接