Outlook .MSG файл содержит много получателей, затем свойство To становится пустым и возвращает ноль - PullRequest
1 голос
/ 07 июня 2019

При попытке прочитать файл .msg в .Net с использованием dll Microsoft.Office.Interop.Outlook версии 15.0.0.0, которая сталкивается с проблемой чтения больших получателей.

Сценарии:

  1. Если файл .msg содержит меньше получателей, например, меньше 300, то значение в свойстве To показывает фактических получателей.
  2. Если .msgфайл имеет более 300 получателей, тогда To свойство MailItem объект получает null не показывает пустых значений.

Есть ли у библиотеки какие-либо ограничения для чтения получателями или чего-то, что я пропускаюобрабатывать больше получателей?

    Microsoft.Office.Interop.Outlook.Application app = new Microsoft.Office.Interop.Outlook.Application();
    Microsoft.Office.Interop.Outlook.Application();

    var item = app.Session.OpenSharedItem(msgfilepath) as Microsoft.Office.Interop.Outlook.MailItem;
    string message = item.Body
    string recipients = item.To   
   //This To property gets null in case file has large recipients list.

1 Ответ

1 голос
/ 17 июня 2019

Изменение:

string recipients = item.To 

На это:

string recipients = string.Join(";", item.Recipients);

Результатом будет идентичная строка, разделенная точкой с запятой, но вторая всегда будет работать.

В официальной документации не говорится об ограничении свойства .To, но в нем сказано, что вы должны использовать Получатели: https://docs.microsoft.com/en-us/dotnet/api/microsoft.office.interop.outlook._mailitem.to

...