C#: сохранить выбранное сообщение outlook как файл eml - PullRequest
0 голосов
/ 27 января 2020

Я создал надстройку для Outlook, используя c#. Предлагается подключиться к внешней системе управления документами (DMS) и загрузить в нее документы / электронные письма. И теперь я хочу сохранить / отправить выбранное сообщение из окна Outlook в DMS, нажав кнопку из плагина (см. Рисунок выше). Есть ли правильный способ сделать это глупо? Если нет, пожалуйста, предоставьте методы, чтобы сделать это альтернативным способом.

ниже приведен пример того, как выглядят мои кнопка и сообщение

enter image description here

1 Ответ

0 голосов
/ 27 января 2020

Модель объектов Outlook не поддерживает сохранение сообщений в формате EML (MIME).

Вы можете либо

1) Создать файл MIME явно в своем коде по одному свойству за раз. Вы также можете использовать существующие MIME-конвертеры (в прошлом я использовал Lumisoft), но они не будут конвертировать сообщения Outlook за один вызов; вам нужно явно собрать все заголовки и части MIME.

2) Использовать объект IConverterSession (только C ++ или Delphi) - это тот же конвертер MIME, который используется в Outlook. Вы можете играть с ним в OutlookSpy (нажмите кнопку IConverterSession).

3) Используйте Погашение и его RDOMail . SaveAs или SafeMailItem . SaveAs - его можно сохранить в формате MIME. (olRfc822) вместе с дюжиной других форматов. Он использует объект IConverterSession , когда он доступен (Outlook 2003 и более поздние версии) или собственный конвертер для более старой версии Outlook или при использовании против версии MAPI для Exchange. Следующий скрипт сохранит текущее выбранное сообщение в виде файла EML.

  set Session = CreateObject("Redemption.RDOSession")
  Session.MAPIOBJECT = Application.Session.MAPIOBJECT
  set rItem = Session.GetMessageFromID(Application.ActiveExplorer.Selection(1).EntryID)
  rItem.SaveAs "c:\temp\test.eml", 1024
...