Outlook не может отображать тело электронной почты TNEF, экспортированной из транспортного агента Exchange

Я экспортирую электронные письма транспортным агентом Exchange 2016 и сохраняю их на диск. Outlook успешно открывает все электронные письма, разрешает заголовки, но ts не может показать тело сообщений, отправленных с клиента Outlook. Тип это:

Content-Type: application/ms-tnef; name="winmail.dat"

Другие типы (MIME и т. Д.) В порядке. Экспортированные сообщения содержат тело. Я могу преобразовать его в MSG и все работает после этой операции. Почему это происходит?

Метод экспорта электронной почты:

  using (var stream = new MemoryStream())
  {
    email.MimeDocument.WriteTo(stream);
    storageManager.SaveStreamToFile(stream, path);
    size = stream.Length;
  } 

Я уже пытался использовать различные события транспортного конвейера ( https://technet.microsoft.com/en-us/library/bb125012(v=exchg.150).aspx). Этот вопрос задавался на разных форумах, но реального ответа нет. Я приведу пример электронной почты, если вы хотите, чтобы я.

1 ответ

TNEF (транспортно-нейтральный формат инкапсуляции) - это собственный формат вложений электронной почты, используемый Microsoft [более техническая информация здесь]. Если вы не обработаете это правильно, вы попадете в файл winmail.dat в качестве вложения [объясняется здесь].

Чтобы получить содержимое из winmail.dat, у вас есть несколько вариантов:

  1. Попробуйте разобрать, как описано здесь.
  2. Используйте читатель в формате TNEF от Yerase [возможно, лучший вариант]
  3. Использовать OpaqueMail [может не работать с подходом вашего транспортного агента]
  4. Попробуйте использовать класс TnefReader
  5. Перестройте свое решение и используйте Exchange EWS (= веб-службы Exchange)
Другие вопросы по тегам