Jon*_*zzi 6 .net c# outlook office-interop
嗨,我正在创建一个应用程序来阅读Outlook中收到的电子邮件.阅读过程是这样的:
在使用行:
using Outlook = Microsoft.Office.Interop.Outlook;
Run Code Online (Sandbox Code Playgroud)
代码块:
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
}
Run Code Online (Sandbox Code Playgroud)
现在我需要从这个项目中获取一个唯一的id(在foreach中).有一个EntryID属性Outlook.MailItem,我使用它,它运作良好,但我发现了一个问题.当我将电子邮件(在Outlook中)移动到另一个文件夹时,此属性已EntryID更改.
我运行了几次测试,发现EntryID当我将邮件移动到另一个文件夹时,该值只会改变几个字符.
无论什么文件夹,我都需要一个唯一的ID.是否有另一个属性Outlook.MailItem或其中的任何子串EntryID始终是唯一的?
我正在使用:
没有这样的财产.您可以使用MailItem.PropertyAccessor或MailItem.UserProperties创建自己的属性,但如果将邮件复制到另一个文件夹,它将不再是唯一的,因为您现在将拥有2个具有相同ID的项目.
| 归档时间: |
|
| 查看次数: |
9092 次 |
| 最近记录: |