Модель объектов 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