Outlook で受信したメールを読み取るアプリケーションを作成しています。
読み取りプロセスは次のようなものです。
using Outlook = Microsoft.Office.Interop.Outlook;
var app = new Outlook.Application();
var ns = app.GetNamespace("MAPI");
ns.Logon(null, null, false, false);
var inboxFolder = ns.GetDefaultFolder(Outlook.OlDefaultFolders.olFolderInbox);
var subfolder = inboxFolder.Folders["MyFolderName"];
foreach (Outlook.MailItem item in subfolder.Items)
{
// do something
// item.EntryID
}
ループ内item
のすべてに対して一意の ID を取得する必要があります。foreach
私が使用したEntryID
プロパティがありOutlook.MailItem
、うまく機能していましたが、そのプロパティに問題があることがわかりました。メールを別のフォルダー (outlook 内) に移動するたびに、このプロパティEntryID
が変更されました。
いくつかのテストを実行したEntryID
ところ、メールを別のフォルダーに移動したときに値が数文字しか変化しないことがわかりました。
どのフォルダでも一意の ID が必要です。常に一意である別のプロパティOutlook.MailItem
またはその部分文字列はありますか?EntryID
私は使用しています:
- .NET 4.0;
- Outlook 2010;
- Microsoft.Office.Interop.Outlook.dll バージョン 14.0.0.0。