Skip to main content
 首页 » 编程设计

c#之发送带有返回路径的电子邮件不起作用

2024年01月13日32luoye11

我正在使用 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");