使用 Windows 虚拟邮件服务器发送带有标题返回路径的电子邮件

Posted

技术标签:

【中文标题】使用 Windows 虚拟邮件服务器发送带有标题返回路径的电子邮件【英文标题】:Sending an email with the header return-path using windows virtual mail server 【发布时间】:2010-10-02 16:01:15 【问题描述】:

我正在尝试使用 .NET MailMessage 类发送电子邮件消息,该类还可以添加返回路径标头,以便任何退回邮件都返回到不同的电子邮件地址。代码如下:

MailMessage mm = new MailMessage(
    new MailAddress(string.Format("0<1>", email.FromName, email.FromEmail)), 
    new MailAddress(emailTo));

mm.Subject = ReplaceValues(email.Subject, nameValues);
mm.ReplyTo = new MailAddress(string.Format("0<1>", email.FromName, email.FromEmail));
mm.Headers.Add("Return-Path", ReturnEmail);

// Set the email html and plain text
// Removed because it is unneccsary for this example

// Now setup the smtp server
SmtpClient smtp = new SmtpClient();
smtp.Host = SmtpServer;
smtp.DeliveryMethod = SmtpDeliveryMethod.PickupDirectoryFromIis;

if (SmtpUsername.Length > 0)

    System.Net.NetworkCredential theCredential = 
        new System.Net.NetworkCredential(SmtpUsername, SmtpPassword);
    smtp.Credentials = theCredential;


smtp.Send(mm);

每当我检查发送的电子邮件时,我都会检查标题,它似乎总是缺少返回路径。我是否缺少正确配置它的东西?正如我上面所说,我在我的开发机器 (XP) 上使用标准的虚拟邮件服务器,但它最终会在 Windows 2003 上运行。

有没有人知道为什么它没有通过?

【问题讨论】:

【参考方案1】:

Return-Path 是根据 SMTP MAIL FROM Envelope 设置的。您可以使用 Sender 属性来做这样的事情。 迟早会再讨论一个相关问题:How can you set the SMTP envelope MAIL FROM using System.Net.Mail?

顺便说一句,如果您使用 SmtpDeliveryMethod.PickupDirectoryFromIis,则 Sender 属性不会用作 MAIL FROM;你必须使用网络作为传递方式来保持这个值。 我没有找到任何解决此问题的方法。PickupDirectoryFromIis, Sender property and SMTP MAIL FROM envelope

【讨论】:

很抱歉回复缓慢,因为另一个项目出现了,我完全忘记了这一点。感谢您的帮助,它确实解决了我的问题。

以上是关于使用 Windows 虚拟邮件服务器发送带有标题返回路径的电子邮件的主要内容,如果未能解决你的问题,请参考以下文章

Postfix邮件发送和接收实验

EmailMultiAlternatives 在 django 中发送带有图像的邮件时添加 3D

使用带有服务帐户的 Gmail API 发送邮件

带有 xampp 和 hMailServer 的 PHP mail() [重复]

在 Ubuntu 服务器上使用带有附件的 php 脚本发送邮件 [重复]

如何在 C# 中使用带有服务帐户的 gmail api 或 google Oauth 来发送邮件?