5

現在、特定の送信者からのすべての送信メールの一部のヘッダーを置き換える 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
            }

        }
4

2 に答える 2

4

RFCによると、Return-Pathヘッダーは受信者のSMTPサーバーによって設定されることになっています。電子メールにReturn-Pathヘッダーが存在する場合、それは削除され、受信者のサーバーによってリセットされます。

たぶんあなたが見ているのは、RFCの正しい実装です。

于 2009-11-06T13:19:15.547 に答える
1

よくわかりませんが、「return-path」ではなく「reply-to」ヘッダーを変更したいようです。「return-path」は、サーバーによって設定されることを意味します。

于 2009-11-04T13:50:30.803 に答える