2016-08-19 4 views
0

Я пытаюсь получить электронное письмо по электронной почте, используя ews java 2.0, отправленный в формате форматированного текста.Как получить фактическое сообщение электронной почты, отправленное как текст riche, используя PidTagRtfCompressed Canonical Property

Хотя я получаю текстовый формат правильно, но я не получаю формат html того же самого.

Все, что мне нужно, это точное представление электронной почты, в котором было отправлено электронное письмо. Чтобы я мог воспроизвести то же самое в другой системе, которая требует html.

Возможно ли это получить?

Я попытался использовать свойство PidTagRtfCompressed Canonical. Я определил расширенное свойство, используя расширенное определение свойства с соответствующим тегом (0x1009) и mapitype (двоичным) для адреса электронной почты rtf. Хотя я получил значение в нем, но я не могу его декодировать до соответствующего читаемого значения.

Можно ли получить читаемое значение из этого расширенного имущества? Можно ли получить формат html?

Я был бы признателен за любую помощь.

Благодаря

ответ

0

Я пытаюсь получить emailbody сообщения электронной почты, с помощью EWS Java 2.0, посланный в богатом текстовом формате.

Если вы просто запросить тело с помощью операции EWS GetItem возвратит HTML, если сообщение имеет тело Native RTF Биржа Магазин будет делать на преобразовании лета сообщения RTF в HTML (мета информация в возвращенном HTML сообщит вам, было ли выполнено преобразование). Вы можете проверить это без написания кода с помощью EWSEditor https://ewseditor.codeplex.com/. Есть ли причина, по которой вы не используете сильно типизированные свойства, поскольку это был бы обычный метод получения тела, остальная часть вашего вопроса не имеет большого смысла, если у вас нет проблемы с преобразованием в хранилище?

Хотя я действительно получал ценность в нем, но я не в состоянии декодировать его в соответствующее читаемом значения.

Если вы хотите что то вам нужно реализовать свою собственную декомпрессионной библиотеку, чтобы сделать это, например, что-то вроде https://github.com/Sicos1977/MSGReader/blob/master/MsgReader/Outlook/RtfDecompressor.cs должно работать. Спецификация протокола для этого - https://msdn.microsoft.com/en-us/library/cc463890(v=exchg.80).aspx. У Exchange есть библиотека для этого, но она ограничена в использовании для сервера только потому, что в основном используется в транспортных агентах https://msdn.microsoft.com/en-us/library/microsoft.exchange.data.textconverters(v=exchg.150).aspx

+0

Привет Глен, спасибо за ответ. Я на самом деле пытаюсь получить как текст, так и форму html тела электронной почты за один вызов. Поэтому я попробовал подход, в котором мы устанавливаем свойство как текст и используем одно расширенное свойство, чтобы получить html-форму тела электронной почты. Но используя этот подход, когда получено электронное письмо с расширенным текстовым форматом, значение расширенного свойства (которое получает форму html) не принимается. Поэтому, чтобы удовлетворить эту проблему, я попытался использовать тег rtf mapi. –

+0

Но теперь я вижу, что соответствующее расширенное свойство тела электронной почты ic только приходит, когда электронное письмо в соответствующей форме. То есть, если электронная почта отправляется в форме html, то получает только расширенное свойство с тегом mapi PR_BODY_HTML аналогично для PR_BODY и PR_RTF_COMPRESS ED.Не уверен, что мне нужно сделать, чтобы получить текст и форму html, когда письмо будет получено в любом из трех форматов. Не могли бы вы мне помочь? –

+0

Также общий метод emailMessage.getBody() также не предоставляет форму html, если письмо получено в виде обычного текста. –