我在远程服务器上有一个电子邮件帐户。 我创建了一个应用程序,利用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的情况下检查交换帐户的收件箱并提取附件的任何想法? 感谢。
答案 0 :(得分:1)
可以选择Exchange Web服务吗?
http://msdn.microsoft.com/en-us/library/dd877045.aspx
还有MAPI,虽然它是较旧的技术,我记得它使用起来并不好玩:
答案 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担任技术推广人员。