outlook interop api的替代方案,用于接收电子邮件

时间:2011-05-18 21:28:07

标签: email interop outlook

我在远程服务器上有一个电子邮件帐户。 我创建了一个应用程序,利用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[])

据说前景不适合这种情况: Is Interop.Outlook multithreaded?

如何在不使用outlook interop api的情况下检查交换帐户的收件箱并提取附件的任何想法? 感谢。

2 个答案:

答案 0 :(得分:1)

可以选择Exchange Web服务吗?

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

答案 1 :(得分:0)

在您的方案中,如上面的PeskyGnat所述,它适合使用Exchange Web服务,因为它不需要在计算机上安装MS Outlook。

您还可以查看Aspose.Network for .NET组件(一种商业API),而不是从具有完整附件的Exchange,Imap和Pop3邮件服务器获取邮件。有关从Exchange Server读取邮件的示例代码,请参阅http://www.aspose.com/documentation/.net-components/aspose.network-for-.net/saving-messages-from-exchange-server-mailbox-in-eml-and-msg-format.html

披露:我在Aspose担任技术推广人员。