Альтернатива outlook interop api для получения электронной почты - PullRequest
0 голосов
/ 19 мая 2011

У меня есть учетная запись электронной почты на удаленном сервере.Я создал приложение, которое использует outlook interop api для поиска электронного письма с определенной темой, а затем извлекает из него вложение и сохраняет его в каталоге.

Все нормально, когда я запускаю это приложение вручную.Но когда я создаю запланированное задание для этого приложения, я получаю

Stack:
   at System.Runtime.Remoting.RemotingServices.AllocateUninitializedObject(System.RuntimeType)
   at System.Runtime.Remoting.Activation.ActivationServices.CreateInstance(System.RuntimeType)
   at System.Runtime.Remoting.Activation.ActivationServices.IsCurrentContextOK(System.RuntimeType, System.Object[], Boolean)
   at System.RuntimeTypeHandle.CreateInstance(System.RuntimeType, Boolean, Boolean, Boolean ByRef, System.RuntimeMethodHandleInternal ByRef, Boolean ByRef)
   at System.RuntimeType.CreateInstanceSlow(Boolean, Boolean, Boolean)
   at System.RuntimeType.CreateInstanceDefaultCtor(Boolean, Boolean, Boolean, Boolean)
   at System.Activator.CreateInstance(System.Type, Boolean)
   at PocketDataFromEmail.EmailManager..ctor()
   at MyApp.Program.Main(System.String[])

Говорят, что Outlook не подходит для таких сценариев: Является ли Interop.Outlook многопоточным?

Есть идеи о том, как проверить входящие сообщения учетной записи на бирже и извлечь вложения, не используя outlook interop api?Благодаря.

Ответы [ 2 ]

1 голос
/ 19 мая 2011

Будет ли вариант с веб-службами Exchange?

http://msdn.microsoft.com/en-us/library/dd877045.aspx

Существует также MAPI, хотя это более старая технология, и, напомню, использовать ее было не так интересно:

http://www.microsoft.com/downloads/en/details.aspx?FamilyID=e17e7f31-079a-43a9-bff2-0a110307611e&displaylang=en

0 голосов
/ 19 мая 2011

В вашем сценарии целесообразно использовать веб-службы Exchange, как упомянуто PeskyGnat выше, поскольку для этого не требуется установка MS Outlook на компьютере.

Вы также можете взглянуть на компонент Aspose.Network for .NET, коммерческий API, который может получать сообщения от почтовых серверов Exchange, Imap и Pop3 с полными вложениями. Пожалуйста, обратитесь к http://www.aspose.com/documentation/.net-components/aspose.network-for-.net/saving-messages-from-exchange-server-mailbox-in-eml-and-msg-format.html за примером кода для чтения сообщений с сервера Exchange.

Раскрытие информации: я работаю техническим евангелистом в Aspose.

...