2013-04-30 3 views
4

Привет Я создаю приложение, которое читает электронные письма, полученные в Outlook. Процесс чтения что-то вроде этого:Получите уникальный идентификатор из MailItem (Microsoft.Office.Interop.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 
} 

Теперь мне нужно получить уникальный идентификатор из этого пункта (в Еогеаспе). В Outlook.MailItem есть свойство EntryID, которое я использовал, и он работает хорошо, но я нашел проблему с этим. Когда я переместил письмо (в Outlook) в другую папку, это свойство EntryID изменилось.

Я провел несколько тестов и обнаружил, что значение EntryID меняет только несколько символов при перемещении почты в другую папку.

Мне нужен идентификатор, который будет уникальным независимо от того, в какой папке. Есть ли другое свойство от Outlook.MailItem или любая подстрока EntryID, которая всегда уникальна?

Я использую:

  • .net 4.0.
  • Outlook 2010.
  • Microsoft.Office.Interop.Outlook.dll версия 14.0.0.0.
+1

Код EntryID может измениться, но я предполагаю, что он уникален независимо от папки. В чем проблема, пытаетесь ли вы сохранить ссылку на id где-нибудь? – jac

ответ

5

Нет такого имущества. Вы можете создать свое собственное свойство с помощью MailItem.PropertyAccessor или MailItem.UserProperties, но оно перестанет быть уникальным, если сообщение будет скопировано в другую папку, так как теперь у вас будет 2 элемента с одним и тем же идентификатором.

+0

Итак, Дмитрий, вы говорите, что для почты нет уникального идентификатора. Я не сомневаюсь в вас, но, как раз для меня, как вы знаете, когда почта была или не была загружена из почтового ящика обмена? –

+2

EntryId - это * уникальный идентификатор. Тот факт, что он изменяется при перемещении сообщения, просто означает, что Exchange рассматривает его как совершенно другой объект. Обратите внимание, что поставщик магазина PST не изменяет идентификатор записи. –

Смежные вопросы