outlookのアイテムからヘッダ内容を読み込む

メモ

outlookをC#から操作するとき、メールのヘッダ内容だけ読み込みたいことがありますが、outlook付属のインターフェースにはヘッダを表すプロパティがありません。
長い時間をかけて調査したら、次のサイトが引っかかりました。
[Solved] Outlook add-in in C#: get message header? – CodeProject

古いバージョンのC#のコードに翻訳すると、次のようになります。
http://schemas.microsoft.com/mapi/proptag/0x007D001E
という呪文が必要だそうです。

const string PR_TRANSPORT_MESSAGE_HEADERS = "http://schemas.microsoft.com/mapi/proptag/0x007D001E";
//MailItemからヘッダ内容を得る
public static string GetHeader(Microsoft.Office.Interop.Outlook.MailItem mi)
{
Microsoft.Office.Interop.Outlook.PropertyAccessor olPA = mi.PropertyAccessor;
string header = (string)olPA.GetProperty(PR_TRANSPORT_MESSAGE_HEADERS);
System.Runtime.InteropServices.Marshal.ReleaseComObject(olPA);
return header;
}

コメントを残す

メールアドレスが公開されることはありません。