从现有 MailItem 对象复制嵌入图像

Copying embedded images fron an existing MailItem object

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

工作正常,除了嵌入图像:签名、使用插入命令插入的图像,它们不会显示在生成的邮件中 ("The linked image cannot be displayed...")。所以我正在尝试获取图像,将它们重新附加到新的 MailItems 并重新链接它们。

我检索邮件项目:

Outlook.MailItem currentMailItem = Application.ActiveInspector().CurrentItem;

然后我在附件中循环(我这样做是为了将实际附件复制到生成的邮件中)

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

这就是一些奇怪的事情发生的时候,使用最简单的情况:一封包含一个短字符串的邮件,以及一个包含图像的签名。

此时我对任何指针都持开放态度... 谢谢!

首先,我建议通过调用 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 方法 returns 表示可以发送的 MailItem 对象的变量。