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, у вас есть несколько вариантов:
- Попробуйте разобрать, как описано здесь.
- Используйте читатель в формате TNEF от Yerase [возможно, лучший вариант]
- Использовать OpaqueMail [может не работать с подходом вашего транспортного агента]
- Попробуйте использовать класс TnefReader
- Перестройте свое решение и используйте Exchange EWS (= веб-службы Exchange)