Microsoft Exchange Server 2010 でいくつかの調査とコード テストを行い、返送された電子メールでヘッダーが削除されていることを確認しました。私が参照した記事の 1 つは、リターン パス ヘッダーによるバウンス メッセージの検出です。
私が抱えている問題は、バウンスされた電子メールからカスタム ヘッダーを取得しようとすることですが、私の調査によると、それは不可能のようです。上記の記事で言及されたもう 1 つの解決策は、リターン パス アドレスを使用することでした。
しかし、Microsoft Outlook Web App を使用して Web 電子メールにアクセスし、自分のアドレスに返送された電子メールを確認すると、元のメッセージ ヘッダーを表示できました。では、EWS マネージ API を使用して元のメッセージ ヘッダーを取得することは可能ですか?
元のメッセージ ヘッダーは次のとおりです。
管理者向けの診断情報:
生成サーバー: MXG001.domain.com
email.that.do.not.exist.1234567890@gmail.com
gmail-smtp-in.l.google.com # #SMTP#
元のメッセージ ヘッダー:
リターンパス: sender@domain.com
受信: MXG001.domain.com (不明 [127.0.0.1]) から IMSVA (Postfix)
ESMTP id 1484C26805C の ;
2012 年 8 月 29 日水曜日 20:07:56 +1000 (EST)
受信: MXG001.domain.com による EZY106 (不明 [10.32.8.141]) から
(Postfix) ESMTP ID 6F7B026805B の
email.that.do.not.exist.1234567890@gmail.com; 水曜日、2012 年 8 月 29 日 20:07:55
+1000 (EST)
返信先: myemail@domain.com
X-CustomHeader1: 0E591306-9997-4E35-954E-F36A069AF8B4
X-CustomHeader2: 1F80DCBF-2F93-49A4-90C0-00E79763B916
MIME バージョン: 1.0
送信者: ドメイン sender@domain.com
差出人: myemail@domain.com
宛先: email.that.do.not.exist.1234567890@gmail.com
日付: 2012 年 8 月 29 日 (水) 18:10:13 +0800
件名: 電子メール追跡のテスト 3
コンテンツ タイプ: テキスト/html; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable
メッセージ ID: 20120829100755.6F7B026805B@MXG001.domain.com
X-TM-AS-MML: いいえ
X-TM-AS-Product-Ver: IMSVA-8.2.0.1520-6.8.0.1017-19146.000
X-TM-AS-Result: いいえ--0.146-5.0-31-10
X-imss-scan-details: いいえ--0.146-5.0-31-10
X-TM-AS-User-Approved-Sender: いいえ
X-TMASE-バージョン: IMSVA-8.2.0.1520-6.8.1017-19146.000
X-TMASE-結果: 10--0.146400-5.000000
X-TMASE-MatchedRID: wjdoQEOKyrZ7ahiNncA4hJpaQZrxtVBsqS91SjnldFIi7hIFpWx7pqbF
SETXF+9u5V8fgkZZSCU19vcvk7TH/S8xKUATmhC45BgEdUqqANSV8bCk1I9WfnXA+T8YcZkDP/i
gW2j9KQ2dtSjAL+46o1q6LJohGEOTW5fzCBTKbrones9LMglhgLejw9iqfGUKR0givuLhSAhBg2
NqmDTb6Q+gzceqIagHXcAUO5rYRMutSn//sy4xSbAVy0FQT/1xloKBPsyyeoXpAAWYDGUZn3OxN
uYzUraFNmDrdAkjVfe9KhpQKnl6nw==
以下のコードを使用して、正常に動作する EWS にアクセスするクライアントを作成します。私の唯一の問題は、元のメッセージ ヘッダーを取得できるかどうかです。もしそうなら、どうすればいいですか?ありがとう!
ExchangeService service = new ExchangeService(ExchangeVersion.Exchange2010_SP1);
service.Credentials = new WebCredentials(@"myUsername", "myPassword");
service.Url = new Uri("https://webmail.domain.com/ews/exchange.asmx");
Folder inbox = Folder.Bind(service, WellKnownFolderName.Inbox);
SearchFilter sf = new SearchFilter.IsEqualTo(ItemSchema.ItemClass, "REPORT.IPM.Note.NDR");
SearchFilter searchFilter = new SearchFilter.SearchFilterCollection(LogicalOperator.And, new SearchFilter[] { sf });
ItemView view = new ItemView(20);
FindItemsResults<Item> findResults = service.FindItems(WellKnownFolderName.Inbox, searchFilter, view);
foreach (EmailMessage item in findResults)
{
// Can process whatever is necessary here
}