我正在尝试通过我的ASP .NET Web应用程序发送电子邮件。当我使用LocalHost运行应用程序时,一切正常。但是当我在客户端运行它时,我收到下面提到的错误:
Retrieving the COM class factory for component with CLSID {0006F03A-0000-0000-C000-000000000046} failed due to the following error: 80080005 Server execution failed (Exception from HRESULT: 0x80080005 (CO_E_SERVER_EXEC_FAILURE)).
我已经尝试过论坛中的建议,例如通过&dbspcnfg'光栅访问。但没有任何帮助。我还尝试使用自己的NT凭据部署网页。这也没有用。代码段如下所示:
Dim app As New Application
Dim ns As [NameSpace] = app.GetNamespace("mapi")
ns.Logon("no@email.com", "password", False, True)
Dim message As MailItem = app.CreateItem(OlItemType.olMailItem)
message.To = "no@email.com"
message.Subject = "Subject"
message.Body = "Still Trying..."
message.Send()
ns.Logoff()
来自论坛的任何建议?
答案 0 :(得分:0)
首先,这与MAPI无关,既不是扩展MAPI也不是简单MAPI。
其次,不应在服务(例如IIS)中使用Outlook。
您可以使用
答案 1 :(得分:0)
我正在尝试通过我的ASP .NET Web应用程序发送电子邮件。当我使用LocalHost运行应用程序时,一切正常。
Microsoft目前不建议也不支持从任何无人参与的非交互式客户端应用程序或组件(包括ASP,ASP.NET,DCOM和NT服务)自动化Microsoft Office应用程序,因为Office在此环境中运行Office时,可能会出现不稳定的行为和/或死锁。
如果要构建在服务器端上下文中运行的解决方案,则应尝试使用已为安全无人值守执行的组件。或者,您应该尝试找到允许至少部分代码在客户端运行的替代方法。如果从服务器端解决方案使用Office应用程序,则应用程序将缺少许多成功运行的必要功能。此外,您将承担整体解决方案稳定性的风险。
您可以在Considerations for server-side Automation of Office文章中详细了解相关内容。
您可以使用BCL课程发送电子邮件。或者,如果是Exchange邮箱,则可以使用REST API(EWS)。有关详细信息,请参阅EWS Managed API, EWS, and web services in Exchange。