C# 撰写电子邮件时Web服务器中出现Outlook错误

C# 撰写电子邮件时Web服务器中出现Outlook错误,c#,outlook,C#,Outlook,我正在尝试从服务器端撰写电子邮件。我已安装Microsoft.office.core和Microsoft.office.Interop.outlook参考 我使用下面的代码。 这段代码对于我本地机器中的新电子邮件(outlook)非常有效。但是,当我试图将我的网站发布到Dev/Test服务器时,这段代码不起作用,并且无论我是否在这两台服务器上安装了outlook,都会出现此错误 System.UnauthorizedAccessException: Retrieving the COM cla

我正在尝试从服务器端撰写电子邮件。我已安装Microsoft.office.core和Microsoft.office.Interop.outlook参考 我使用下面的代码。 这段代码对于我本地机器中的新电子邮件(outlook)非常有效。但是,当我试图将我的网站发布到Dev/Test服务器时,这段代码不起作用,并且无论我是否在这两台服务器上安装了outlook,都会出现此错误

System.UnauthorizedAccessException: 
Retrieving the COM class factory for component with CLSID {0006F03A-0000-0000-C000-000000000046} failed due to the following error: 80070005 Access is denied. (Exception from HRESULT: 0x80070005 (E_ACCESSDENIED)).
如何解决这个问题。任何帮助都是好的。提前谢谢

 Outlook.Application outlookApp = new Outlook.Application();
 Outlook.MailItem mailItem = (Outlook.MailItem)outlookApp.CreateItem(Outlook.OlItemType.olMailItem);
 mailItem.Subject = "Notice to Proceed MnDOT Contract Number: " + CntrctID;
 mailItem.To = lstCntrctContractorContact[0].CNTRCTR_PROJ_Email;
 mailItem.CC = CntrctContactInfo.MnDot_EMAIL;
 mailItem.HTMLBody = EmailBodyMsg.ToString();
 mailItem.Display(false);

Outlook与任何其他Office应用程序一样,不能在服务(如IIS)中使用。即使你让它工作,电子邮件将显示在服务器上,没有用户能够看到它和互动

您可以:

  • 在网页上使用mailto url

  • 对于IE,您可以在客户端脚本中使用Outlook对象模型,但必须信任您的站点才能这样做

  • 在服务器端,如果用户使用EWS连接到Exchange server,则可以使用EWS连接到Exchange server。但是您需要知道用户名和密码

  • 创建一个EML文件(基于文本)并让用户打开它-Outlook(本地)将乐于显示邮件正文(包括HTML)和任何图像/附件。要确保Outlook在撰写模式下打开EML文件,请包含值为1的“X-Unsent”MIME头


  • 我尝试了mailto URL,邮件正文太长,无法正常工作,请尝试上面的选项4。