У меня есть консольное приложение C #, использующее сборку Microsoft.Office.Interop.Outlook 2016 года, и в то время как оно успешно перебирает PST-файл, который прикрепляется к профилю машины по умолчанию;он пытается извлечь свойство / коллекцию Recipients во время итерации каждого MailItem, но подозрительно у каждого почтового элемента есть пустое свойство «Recipients».
Примечательно: файлы .pst экспортировались через «Безопасность и соответствие в Exchange Online», а затем сжимались с помощью инструмента «PST Compress». Моим основным подозреваемым является PST Compress, так как я не могу найти никого, у кого есть проблемы с очень простым кодом, показанным здесь (мой код выглядит как Получите адрес электронной почты получателя ).
private void GetSMTPAddressForRecipients(Outlook.MailItem mail)
{
const string PR_SMTP_ADDRESS =
"http://schemas.microsoft.com/mapi/proptag/0x39FE001E";
Outlook.Recipients recips = mail.Recipients;
foreach (Outlook.Recipient recip in recips)
{
Outlook.PropertyAccessor pa = recip.PropertyAccessor;
string smtpAddress =
pa.GetProperty(PR_SMTP_ADDRESS).ToString();
Debug.WriteLine(recip.Name + " SMTP=" + smtpAddress);
}
}
Я исключил проверку подлинности Exchange и сборку Interop, поскольку извлечение других данных в MailItem работает должным образом.
Любая помощь или подтверждение других людей, испытывающих пустые Получатели в MailItems, были бы очень полезны.