現在、特定の送信者からのすべての送信メールの一部のヘッダーを置き換える Exchange 2007 トランスポート エージェントを作成しています。「From」SMTP ヘッダーの置き換えには成功しましたが、「Return-Path」ヘッダーの書き換えがうまくいかないようです。
これをすべて実現するために、カスタム 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
}
}