【发布时间】:2013-06-15 01:32:27
【问题描述】:
我有一个文件(一个名为 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”翻译为“类未注册”。
我尝试做这里推荐的事情: Retrieving the COM class factory for component with CLSID {XXXX} failed due to the following error: 80040154 虽然那没有用。
有人可以帮我吗?我真的被困住了。
【问题讨论】:
-
您不使用 Exchange Web 服务 API 是否有原因?
-
嗯,这更像是一种练习,如果可能的话,我想这样做。
-
使用此方法将遇到的问题之一是 Outlook 具有安全措施,您必须允许应用程序代表您发送。它会提示,如果不使用一些专门编写的软件来抑制该消息并为您回答,则无法默认该答案。这不适合发送电子邮件。我建议要么使用 Exchange Web 服务,要么允许机器使用 SMTP 并使用 System.Net.Mail 命名空间。您如何使用我在下面提供的代码来执行此操作,并且我进行了测试并且它可以工作。