Как получить содержимое электронной почты в виде EML или MSG с сервера обмена с помощью JavaScript? - PullRequest
0 голосов
/ 27 августа 2018

Я хочу получить содержимое письма в формате .msg в моем приложении Node.В настоящее время я отправляю следующий SOAP-запрос для получения html-версии письма:

const getEmailContentSOAP = `<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xmlns:xsd="http://www.w3.org/2001/XMLSchema"
  xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
  xmlns:t="http://schemas.microsoft.com/exchange/services/2006/types">
    <soap:Header>
        <RequestServerVersion Version="Exchange2013"
          xmlns="http://schemas.microsoft.com/exchange/services/2006/types"
          soap:mustUnderstand="0" />
      </soap:Header>
  <soap:Body>
    <GetItem
      xmlns="http://schemas.microsoft.com/exchange/services/2006/messages"
      xmlns:t="http://schemas.microsoft.com/exchange/services/2006/types">
      <ItemShape>
        <t:BaseShape>Default</t:BaseShape>
        <t:IncludeMimeContent>true</t:IncludeMimeContent>
      </ItemShape>
      <ItemIds>
        <t:ItemId Id="${emailID}" />
      </ItemIds>
    </GetItem>
  </soap:Body>
</soap:Envelope>`;

Есть ли способ напрямую получить версию MSG или преобразовать ее в MSG?

Ответы [ 3 ]

0 голосов
/ 28 августа 2018

Как говорит Глен, генерируйте электронную почту в формате EML.Я уже сделал это, и он отлично работает с различными почтовыми клиентами (SharePoint также имеет режим предварительного просмотра для файлов .eml!).

Я бы порекомендовал вам использовать Microsoft Graph API , чтобы получить вседанные почты, так что вы можете сгенерировать .eml mail.

Пример вызова API для получения данных одной почты с вложениями:

`https://graph.microsoft.com/v1.0/me/messages/${messageId}?$expand=attachments`

Затем преобразовать его.

У вас есть дополнительные данные по адресу:

MSGraph Документы для сообщений

MSGraph Вложения для документов документы

MSGraph быстрое начало (включает в себя узел и угол)

0 голосов
/ 27 марта 2019

Это бета-версия и нет документации, но вы можете получить MIME-контент с помощью Microsoft Graph API:

GET https://graph.microsoft.com/beta/me/messages/{id}/$value

или

GET https://graph.microsoft.com/beta/users/{id | userPrincipalName}/messages/{id}/$value

Вы можете попробовать с Graph Explorer , установка версии на бета-версию.
Затем вы можете сохранить ответ в виде файла .eml.

Редактировать:

Теперь это официальнов предпросмотре: https://docs.microsoft.com/en-us/graph/outlook-get-mime-message

0 голосов
/ 28 августа 2018

Нет, формат MSG - это формат файла Office (составной формат файла https://en.wikipedia.org/wiki/Compound_File_Binary_Format, который генерировать нетривиально), поэтому обычно использование Outlook или Redemption является единственным практическим способом сделать это наряду с единственной реальной причиной, по которой людиобычно старайтесь использовать формат MSG, чтобы поддерживать точность свойств MAPI и типов вложений, для которых вам потребуется MAPI.

Для того, что вы делаете с EWS, контент, который вы возвращаете с IncludeMimeContent, является MIMEConent сообщения, который можно просто сохранить в виде файла EML и, таким образом, открыть в любом почтовом клиенте, поддерживающем EML, включая Outlook, который обычнодостаточно для большинства вещей (исключая миграцию).

...