【问题标题】:Sending Email with return-path not functioning发送带有返回路径的电子邮件不起作用
【发布时间】:2012-02-13 07:59:59
【问题描述】:

我正在使用System.Net.Mail 电子邮件。在代码中,我将电子邮件的返回路径设置如下:

string sReturnPath = ConfigurationManager.AppSettings["ReturnPath"].ToString();
if (sReturnPath.Length > 0) {
    msg.Headers.Add("Return-Path", sReturnPath);
}

如果交付失败,它应该转到返回路径,但它没有,即使我可以看到电子邮件的返回路径的标题来自我指定的配置文件。电子邮件被退回给发件人。

有什么想法吗?

【问题讨论】:

    标签: c# email return-path


    【解决方案1】:

    您使用的方法稍有错误。简单邮件传输协议 (RFC 2821) 说:

    消息发起 SMTP 系统不应发送消息
    已经包含一个 Return-path 标头。 SMTP 服务器执行一个
    中继功能不得检查消息数据,尤其不能
    在确定是否存在返回路径标头所需的范围内。

    如果您希望您的邮件返回到From: 字段中指定的地址以外的地址,则应在 SMTP 邮件信封中设置地址,而不是在邮件 标题。您可以通过设置Sender 属性来实现这一点:

    MailMessage msg = new MailMessage();
    msg.Sender = new MailAddress("not-deliviered@sample.org", "Sam1");
    

    【讨论】:

    • 我刚刚注意到如果您使用 sender 发送它,那么电子邮件会说“代表”任何解决方案
    • “代表”具体在哪里?
    • 在发件人地址上显示 sender@email.com;代表; reciever@email.com...即邮件发送成功
    • 嗯,我的猜测是目标 SMTP 服务器将此字符串添加到邮件标头中,我认为您对此无能为力。
    • 有什么方法可以在 smtp 服务器中禁用它吗?因为 msg.sender 为我做了反弹工作,唯一的问题是代表的事情......
    猜你喜欢
    • 1970-01-01
    • 2011-02-18
    • 2017-09-20
    • 2010-10-02
    • 2015-06-06
    • 2015-02-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多