我正在尝试从当前编辑的现有邮件中生成新的邮件。用户键入他的电子邮件的内容(以下代码中的CurrentMailiTem(,单击一个按钮,并使用CurrentMailItem作为模板生成了一堆MailItems。
工作正常,除了嵌入式图像:签名,使用插入命令插入的图像,它们在生成的邮件中不显示("无法显示链接的图像..."(。因此,我正在尝试获取图像,将它们重新启动到新的MailItems并重新链接。
我用:
检索mailItemOutlook.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
对象的变量。