我正在创建一个应用程序来读取 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
}
我需要为每个人获得一个唯一的IDitem
in the foreach
loop.
有一个EntryID
财产在Outlook.MailItem
我使用过并且运行良好,但我发现该属性存在问题:每当我将电子邮件移至另一个文件夹(在 Outlook 内)时,此属性EntryID
改变了。
我进行了几次测试,发现EntryID
当我将邮件移动到另一个文件夹时,值仅更改几个字符。
我需要一个无论哪个文件夹都是唯一的 ID。是否还有其他房产Outlook.MailItem
或任何子串EntryID
那总是独一无二的?
我在用着:
- .NET 4.0;
- 2010年展望;
- Microsoft.Office.Interop.Outlook.dll 版本 14.0.0.0。
没有这样的财产。您可以使用 MailItem.PropertyAccessor 或 MailItem.UserProperties 创建自己的属性,但如果将邮件复制到另一个文件夹,它将不再是唯一的,因为您现在将拥有 2 个具有相同 id 的项目。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)