通过 Outlook 发送电子邮件时出错,这需要服务器应用程序吗?

通过 Outlook 发送电子邮件时出错,这需要服务器应用程序吗?

要求:我的应用程序需要通过 Outlook 发送电子邮件。我可以使用 Outlook = Microsoft.Office.Interop.Outlook; 来实现此目的

该应用程序在开发环境中运行良好,但出现异常: System.Runtime.InteropServices.COMException (0x80040154): 检索 COM 类工厂中 CLSID 为 {0006F03A-0000-0000-C000-000000000046} 的组件失败,原因是出现以下错误: 80040154 类未注册 (异常来自 HRESULT:0x80040154 (REGDB_E_CLASSNOTREG))

详细的:

System.Runtime.InteropServices.COMException (0x80040154): Retrieving the COM class factory for component with CLSID {0006F03A-0000-0000-C000-000000000046} failed due to the following error: 80040154 Class not registered (Exception from HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG))
at System.RuntimeTypeHandle.CreateInstance(RuntimeType type, Boolean publicOnly, Boolean noCheck, Boolean& canBeCached, RuntimeMethodHandleInternal& ctor, Boolean& bNeedSecurityCheck)
   at System.RuntimeType.CreateInstanceSlow(Boolean publicOnly, Boolean skipCheckThis, Boolean fillCache)
 at System.RuntimeType.CreateInstanceDefaultCtor(Boolean publicOnly, Boolean skipVisibilityChecks, Boolean skipCheckThis, Boolean fillCache)
at System.Activator.CreateInstance(Type type, Boolean nonPublic)
at InvoiceSearchTool.Controllers.emailController.CreateMessageWithAttachment(String invoiceNumber, String recipient, String messageBody) in C:\Projects\KeleInvoice\InvoiceSearchTool\Controllers\emailController.cs:line 38

我没有在应用程序服务器上安装 Outlook。我需要在服务器上安装 Outlook 吗?或者异常是由于其他原因?如何摆脱它?

答案1

Outlook 的 CLSID 为 {0006F03A-0000-0000-C000-000000000046}。正如错误代码所示,它找不到该类。您需要安装 Outlook(应用程序服务器上也应安装与开发中相同的版本)。

(注:如果我说得正确,请打勾,谢谢!)

相关内容