Как мне обработать Microsoft Outlook Winmail.dat? Есть еще сюрпризы?
Я решил, что мне действительно не нравятся Microsoft и их способы. Пожалуйста, не могли бы вы дать мне указания о том, как обрабатывать winmail.dat в электронных письмах, есть ли библиотека jython или библиотека java, которая позволит мне справиться с этим.
Я только что закончил программу обработки электронной почты, написанную в jython 2.2.1 для java 5. Во время финального нагрузочного теста я понял, что вложения, которые должны были быть в стандартном формате электронной почты MIME, теперь связаны в каком-то взорванном winmail.dat, который означает, что многие клиенты Outlook загрязняют Интернет этим winmail.dat, так что это означает, что мне нужно поддерживать winmail.dat. Таким образом, моя программа не смогла правильно обработать данные.
Пожалуйста, не могли бы вы дать краткое описание того, что такое winmail.dat и почему он здесь, чтобы нас раздражать.
Какие еще сюрпризы можно ожидать!? Что еще я должен остерегаться, пока стандартные письма MIME обслуживаются. Есть ли другие коробки в коробках?
Большое спасибо за ваше время.
7 ответов
Читай здесь:
http://en.wikipedia.org/wiki/TNEF
пакет для разбора здесь:
https://github.com/verdammelt/tnef
Тема закрыта, но для будущих целей: проект Apache POI (Java API для Microsoft Documents) запускает версию (3.8), способную декодировать файлы TNEF. Я проверил это и работал очень хорошо, даже бета-версия. Вы можете найти это здесь.
Для использования с Maven (июнь 2016 г. - может измениться позже, когда его больше нет в блокноте):
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-scratchpad</artifactId>
<version>3.14</version>
</dependency>
Пожалуйста, не могли бы вы дать краткое описание того, что такое winmail.dat и почему он здесь, чтобы нас раздражать.
Когда конечный пользователь отправляет почту в Интернет с клиента Exchange Windows или Outlook, в конец сообщения может автоматически добавляться вложение файла Winmail.dat, если клиент получателя не может получать сообщения в расширенном текстовом формате (RTF). Файл Winmail.dat содержит информацию RTF сервера Exchange для сообщения и может отображаться для получателя в виде двоичного файла. Это не полезно для не получателей Exchange Server.
Если вы читаете кб, на который я ссылался далее, он дает инструкции о том, как администраторы Exchange могут и должны отключать RTF для Интернета.
Также есть пакет tnefparse с чистым Python. Должно быть возможно использовать это из Jython.
Просто комментарий о tinnef: не все, что называется winmail.dat, является обычным TNEF. Приглашения на собрания, отправленные из Outlook, не отправляются, поэтому большинство декодеров TNEF в этом случае не будут работать.
В Mac OSX я обнаружил, что "Средство открытия писем" является одной из редких программ, которые могут открывать такие вложения. Достаточно забавно, они могут также содержать документы RTF.
Поэтому, когда я вижу это в электронной почте Content-Type: "application/ms-tnef"
Я использую это: http://www.freeutils.net/source/jtnef/
Мне повезло с wmdecode на Windows. Конечно, это EXE, а не Java-проект. Но это может быть полезно, если вы столкнетесь с файлами WINMAIL.DAT, которые другие решения не смогут декодировать.