无法打开邮件项目,因为Outlook界面

本文关键字:因为 Outlook 界面 项目 | 更新日期: 2023-09-27 17:56:20

我有一个应用程序,我在其中使用Outlook互操作创建邮件项目。在某些系统上,代码可以正常工作。

但是在其中一个系统上会出现此错误:

消息 = 无法强制转换类型的 COM 对象 "Microsoft.Office.Interop.Outlook.ApplicationClass"到接口类型 'Microsoft.Office.Interop.Outlook._Application'.此操作失败,因为 与 IID 接口的 COM 组件上的查询接口调用 '{00063001-0000-0000-C000-000000000046}' 失败

由于以下错误:接口未注册

我认为这与寄存器有关,请参阅: 有关访问COM组件时出错的答案

但是我需要在代码中解决这个问题,因为我无法访问所有有这种问题的系统。

using Outlook = Microsoft.Office.Interop.Outlook;
//Create email body with the customers
string mailBody = customers;
//Create the email with the settings
Outlook.Application outlookApp = new Outlook.Application();
Outlook.MailItem mailItem = (Outlook.MailItem)outlookApp.CreateItem(Outlook.OlItemType.olMailItem);
mailItem.Subject = mailSubject;
mailItem.Attachments.Add(totalPath);
mailItem.Body = mailBody;
mailItem.Importance = Outlook.OlImportance.olImportanceNormal;
try
{
    //Try to open outlook, set message if its not possible to open outlook
    mailItem.Display(true);
}
catch (Exception ex)
{
    MessageBox.Show(ex.Message);
    return false;
}

如何在代码中解决此问题?

附言每个系统都使用Office 2013版本!

无法打开邮件项目,因为Outlook界面

尝试改用以下代码:

 oApp = Activator.CreateInstance(Type.GetTypeFromProgID("Outlook.Application")) as Microsoft.Office.Interop.Outlook.Application;

看起来Windows注册表记录有问题。查看类似的论坛主题 - 错误:无法将类型为"Microsoft.Office.Interop.Outlook.ApplicationClass"的 COM 对象强制转换为接口类型"Microsoft.Office.Interop.Outlook._Application"。

您是否在PC上安装了Click2Run版本的Office?有关详细信息,请参阅如何:验证 Outlook 是否为计算机上的即点即用应用程序。