Exchange 2007のトランスポートエージェントとSMTPヘッダーの編集
-
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