编辑SMTP头与Exchange 2007传输代理
-
16-09-2019 - |
题
我目前正在写一个Exchange 2007传输代理从特定发件人替换所有发出的邮件一些头。我设法替换“从” SMTP头成功,但重写“返回路径”头似乎不工作。
为使这一切发生,我写了一个自定义的SmtpReceiveAgent和订阅像这样在OnEndOfData事件:
private static void MyAgent_OnEndOfData(ReceiveMessageEventSource source, EndOfDataEventArgs e)
{
try
{
var address = e.MailItem.Message.From.SmtpAddress;
if (address.ToLower().EndsWith("[internal email domain]"))
{
// replace the From: header - WORKING FINE!
e.MailItem.Message.From = new EmailRecipient("[displayname]",
"[email address]");
// replace the Return-Path: header - NOT WORKING!
var headerList = e.MailItem.Message.RootPart.Headers;
var header = (AddressHeader)headerList.FindFirst("Return-Path");
var newheader = new AddressHeader("Return-Path") { Value = "[email address" };
headerList.ReplaceChild(newheader, header);
}
}
catch (Exception ex)
{
// do something useful here
}
}
解决方案
每上述RFC返回路径报头应该由收件人的SMTP服务器进行设置。如果返回路径头中的电子邮件存在,它是要被移除,并且由接收方的服务器重置。
也许你所看到的,是正确执行的RFC。
其他提示
我不知道,但它听起来像是你可能想改变“回复”标题,而不是“返回路径”。 “返回路径”指的是由服务器来设置。
不隶属于 StackOverflow