2014-10-29 3 views
6

Я считаю, что единственный способ прочитать файл MSDS Outlook (для дополнительных метаданных, таких как тема, вложения и т. Д.) - использовать API Outlook - метод Application.Session.OpenSharedItem().Прочтите файл Outlook .msg

Если это так, то я ищу способ запустить этот код на нашем сервере приложений, на котором не установлено MS OFfice или MS Outlook. Я получаю ошибку

System.ArgumentException: progId not found. Outlook.Application 

Это, конечно, из-за отсутствия приложения Outlook.

Есть ли способ установить только DLL или что-то еще, чтобы заставить OpenSharedItem работать? Я не хочу, если нужно, установить полный клиент.

Или, есть способ проанализировать файл .msg, не требуя значительных зависимостей, таких как Outlook?

+0

Всегда есть путь! http://download.microsoft.com/download/5/D/D/5DD33FDF-91F5-496D-9884-0A0B0EE698BB/%5BMS-OXMSG%5D.pdf Я не уверен в законности копирования DLL для доступа к API. Анализ самих файлов, по крайней мере, позволит избежать этих осложнений. – itsme86

ответ

6

Это был дан в Codeplex статье я спасен от давно

Статья является here, есть файл с именем OutlookStorage.cs, который не требует модели Outlook.

Как и в комментариях ниже есть теперь NuGet пакет, который охватывает это:

here

Принадлежит к Саймон Грин в комментариях для этого.

+1

Я думаю, что я нашел аналогичную реализацию здесь - это пакет NuGet: [https://www.nuget.org/packages/MSGReader/] (https://www.nuget.org/packages/MSGReader/). Я пошел на это, потому что его было проще загружать, чем подписываться на сайт CodeProject. Кажется, что все работает отлично - спасибо за ваше время, хотя –

0

Вы можете также

  1. явно разобрать файл MSG (его формат documented).

  2. Используйте расширенный MAPI (только C++ или Delphi) вместе с standalone version of MAPI. Посмотрите на функцию OpenIMsgOnIStg на MSDN.

  3. Использование Redemption (требуется система MAPI - Перспективы или standalone version of MAPI должен быть установлен - и его RDOSessionGetMessageFromMsgFile метод:

set Session = CreateObject("Redemption.RDOSession") 
set Msg = Session.GetMessageFromMsgFile("c:\temp\temp.msg") 
MsgBox Msg.Body 
0

MSG .NET является Microsoft Outlook .MSG файл API. для .NET Framework. API позволяет вам легко создавать/читать/анализировать/конвертировать файлы .msg и т. д. API не требует установки Microsoft Outlook на машину или любой другой третий pa rty или библиотеки для работы.

+0

Да, я тоже нашел этот ... тем не менее, я предпочитаю пакет MSGReader NuGet и решения OutlookStorage CodeProject, потому что они бесплатны –

Смежные вопросы