0

我有一个文件(一个名为 secretimage 的 btmap),当用户点击一个按钮时,我想将它附加到邮件中。我想为此使用 Outlook。

所以这就是我所做的:

using Outlook = Microsoft.Office.Interop.Outlook;
private void cmdSend_Click(object sender, EventArgs e)
    {
            Outlook.Application app = new Outlook.Application();
            Outlook.MailItem mail = new Outlook.MailItem();
            Outlook.Attachment attach = mail.Attachments.Add(secretImage, Outlook.OlAttachmentType.olByValue, 0, "Secret message");
    }

虽然这给了我以下错误:

由于以下错误,检索具有 CLSID {00061033-0000-0000-C000-000000000046} 的组件的 COM 类工厂失败:80040154 Klasse nicht registriert(来自 HRESULT 的异常:0x80040154 (REGDB_E_CLASSNOTREG))。

最后一部分是德语,我不知道为什么,实际上我已经将语言设置为英语。“Klasse nicht registriert”翻译为“类未注册”。

我尝试执行此处建议的操作: 检索具有 CLSID {XXXX} 的组件的 COM 类工厂失败,原因是以下错误:80040154 虽然这不起作用。

有人能帮我一下吗?我真的被困住了。

4

1 回答 1

0

尝试将您的邮件项目换成此代码,取自此链接。 80040154 在 Outlook 2010 插件中未注册类错误

Microsoft.Office.Interop.Outlook.MailItem mail= app.CreateItem((OlItemType.olMailItem));

使用此方法将遇到的问题之一是 Outlook 具有安全措施,您必须允许应用程序代表您发送。它会提示,如果不使用一些专门编写的软件来抑制该消息并为您回答,则无法默认该答案。这不适合发送电子邮件。我建议要么使用 Exchange Web 服务,要么让机器成为 SMTP 并使用 System.Net.Mail 命名空间。您如何使用我提供的代码来执行此操作,并且我已经测试并且它可以工作。

于 2013-06-14T15:52:20.880 回答