我正在使用 System.Net.Mail 电子邮件。在代码中,我将电子邮件的返回路径设置如下:
string sReturnPath = ConfigurationManager.AppSettings["ReturnPath"].ToString();
if (sReturnPath.Length > 0) {
msg.Headers.Add("Return-Path", sReturnPath);
}
如果传递失败,它应该转到 return-path 但它没有,即使我可以看到电子邮件的 return-path 标题来 self 指定的配置文件。电子邮件被退回给发件人。
有什么想法吗?
请您参考如下方法:
您使用的方法有点错误。简单邮件传输协议(protocol) (RFC 2821) 说:
A message-originating SMTP system SHOULD NOT send a message that
already contains a Return-path header. SMTP servers performing a
relay function MUST NOT inspect the message data, and especially not
to the extent needed to determine if Return-path headers are present.
如果您希望邮件返回到 From: 字段中指定的地址以外的地址,则应在 SMTP 邮件 信封 中设置该地址而不是在消息 header 中。您可以通过设置 Sender 属性来实现:
MailMessage msg = new MailMessage();
msg.Sender = new MailAddress("not-deliviered@sample.org", "Sam1");
