用outlook将文件附加到邮件中

本文关键字:outlook 文件 | 更新日期: 2023-09-27 18:18:38

我有一个文件(一个名为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 (Exception from HRESULT: 0x80040154 (regdbe_classnotreg)).

最后一部分是德语,我不知道为什么,实际上我把语言设置为英语。"Klasse night registriert"译为"未注册的类"。

我试着按照这里的建议去做:由于以下错误,为CLSID {XXXX}的组件检索COM类工厂失败:80040154但这行不通。

这里有人能帮我吗?

用outlook将文件附加到邮件中

尝试将您的邮件条目替换为此链接中的代码。Outlook 2010 Add in

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

使用这种方法你会遇到的一个问题是,Outlook有适当的安全措施,你必须允许应用程序代表你发送。它会提示,没有办法默认答案,除非使用一些专门编写的软件来抑制该消息并为您回答它。这对于发送电子邮件来说并不理想。我建议要么使用Exchange Web服务,要么允许一台机器使用SMTP并使用System.Net.Mail命名空间。无论如何,你可以使用我提供的代码来做到这一点,我已经测试过了,它是有效的。