我有一个文件(一个名为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检索组件的COM类工厂 {00061033-0000-0000-C000-000000000046}由于以下错误而失败:80040154 Klasse nicht registriert(HRESULT异常:0x80040154(REGDB_E_CLASSNOTREG))。
最后一部分是德语,我不知道为什么,实际上我已经将语言设置为英语。 “Klasse nicht registriert”翻译“Class not registered”。
我试着做这里推荐的事情: Retrieving the COM class factory for component with CLSID {XXXX} failed due to the following error: 80040154 虽然那不起作用。
有人可以帮我吗?我真的被卡住了。
答案 0 :(得分:0)
尝试使用此链接替换此代码的邮件项目。 80040154 Class not registered ERROR in Outlook 2010 Add In
Microsoft.Office.Interop.Outlook.MailItem mail= app.CreateItem((OlItemType.olMailItem));
使用此方法遇到的问题之一是Outlook已采取安全措施,您必须允许应用程序代表您发送。它会提示并且没有办法默认答案而不使用专门编写的一些软件来抑制该消息并为您回答。这不是发送电子邮件的理想选择。我建议使用Exchange Web服务或允许计算机为SMTP并使用System.Net.Mail命名空间。你怎么可以使用我提供的代码来做这个,我已经测试过它的工作原理。