复制嵌入式图像For For For for现有MailItem对象



我正在尝试从当前编辑的现有邮件中生成新的邮件。用户键入他的电子邮件的内容(以下代码中的CurrentMailiTem(,单击一个按钮,并使用CurrentMailItem作为模板生成了一堆MailItems。

工作正常,除了嵌入式图像:签名,使用插入命令插入的图像,它们在生成的邮件中不显示("无法显示链接的图像..."(。因此,我正在尝试获取图像,将它们重新启动到新的MailItems并重新链接。

我用:

检索mailItem
Outlook.MailItem currentMailItem = Application.ActiveInspector().CurrentItem;

i然后在附件中循环(我无论如何都要将实际附件复制到生成的邮件(

foreach (Attachment attachment in currentMailItem.Attachments)
{
    var tempFile = "...";
    attachment.SaveAsFile(tempFile);
}

那是发生一些怪异的事情,使用最简单的情况:一个包含一个短字符串的邮件和一个包含图像的签名。

  • 第一次启动功能时,附件是完全空的,没有签名图像的跟踪。

  • 如果我再次启动功能,这次有一个附件,只有我尝试保存附件时我会得到一个例外:

    system.runtime.interopservices.comexception:'无法保存附件。无法添加附件;没有提供数据源。'

  • 和怪异的一次,一次,只有一次,即使我运行了一千次,我实际上设法保存了附件,这是签名图像的预期。

目前我对任何指针都开放...谢谢!

首先,我建议通过调用Save方法来保存UI中的用户更改:

Outlook.MailItem currentMailItem = Application.ActiveInspector().CurrentItem;
currentMailItem.Save();
Outlook.MailItem copy = currentMailItem.Copy();
// do whatever you need with a copy

然后,您可以尝试使用MailItem.copy方法,该方法创建对象的另一个实例。注意,Copy方法返回一个代表可以发送的MailItem对象的变量。

最新更新