Здравствуйте, я недавно вступил в разработку вокруг EWS. Одна из проблем пришла ко мне в том, что клиент просит меня импортировать электронные письма в базу данных, и он хочет обнаружить дубликат на основе InternetMessageID таким образом, что ему не нужно импортировать дубликаты писем, и мой код подошел к этому моменту.Как получить MessageId со всех элементов обмена
private static string GetInternetMessageID(Microsoft.Exchange.WebServices.Data.Item email)
{
EmailMessage emailMsg = email as EmailMessage;
string returnId = string.Empty;
if ((emailMsg != null)) {
try {
emailMsg.Load();
//loads additional info, without calling this ToRecipients (and more) is empty
} catch (ArgumentException ex) {
//retry
email.Load();
}
returnId = emailMsg.InternetMessageId;
} else {
//what to do?
}
return returnId;
}
я могу использовать обычные электронные письма, но и для специальных объектов обмена, таких как контакт, календарь, сообщения и т.д. это не работает, потому что он не мог бросить его в объект EmailMessage.
И я знаю, что вы можете извлечь internetMessageId из этих объектов. Поскольку у клиента использовалось другое программное обеспечение, которое извлекало этот идентификатор для них, возможно, свойство не называется internetMessageID, я думаю, что я, вероятно, должен извлечь его из internetMessageHeader. Однако когда я пытаюсь получить его из объекта item, это просто порождает ошибку. Как получить идентификатор интернет-сообщения из этих «специальных» предметов обмена?
PS я отдаю себе отчет в item.id.UniqueID, однако, что это не то, что я хочу, как этот идентификатор изменения, если переместить элементы из папки в другую в обмен
Единственной причиной, я думал, что это один является то, что клиент ранее имел приложение, извлекая идентификатор, который имел такой же формат как интернет-сообщение ID, поэтому я думал, что он один. Но это мог быть другой идентификатор, подобный тому, который вы упомянули. –
Это потому, что когда я экспортирую электронное письмо, когда оно становится файлом msg, у него есть messageid? –
Протестируйте его самостоятельно, используйте инструмент, такой как EWSEditor или MFCMapi, который точно скажет вам, что есть или не доступно –