我正在创建一个正在阅读 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;
- 展望 2010;
- Microsoft.Office.Interop.Outlook.dll 版本 14.0.0.0。