【问题标题】:C#: Save embedded Image from Outlook MailItemC#:保存 Outlook MailItem 中的嵌入图像
【发布时间】:2016-10-30 13:24:02
【问题描述】:

我正在尝试保存 Outlook MailItem (HTML-Body) 中的嵌入图像,但我没有找到嵌入图像存储在哪个属性中以及如何保存它。

我尝试从属性 .Attachments 中获取图像(我尝试了索引 0),但随后抛出异常,表明 Array-index 超出范围。这意味着,电子邮件中没有附件。

但是,如果图像未存储在“附件”中,图像存储在哪里,如何将其保存到文件系统?

非常感谢您的回答!

最好的问候 马蒂亚斯

【问题讨论】:

  • 图片是否实际存储在 mailitem 对象中?它可能是正文的 html 中的链接,它指向实际存储它的某个服务器。您也可以使用OutlookSpy 浏览outlook 中的outlook 对象并检查它们的属性。
  • 是的,图片存储在mailitem对象中。我可以在 HTML 正文中的 HTML 文本的链接中看到它。不幸的是,我不允许在我的 PC 上安装 OutlookSpy。
  • 附件集合是基于 1,而不是 0。
  • 好的。谢谢你。也许这就是失败...

标签: c# image outlook save mailitem


【解决方案1】:

我自己找到了解决办法。

问题是,我正在通过另一个线程访问 MailItem。我不知道为什么,但是从这个线程你看不到附件。将邮件阅读部分放入后

this.Dispatcher.Invoke(new Action(() => { ... }));

它工作正常。然后就可以用这段代码访问内联图片了...

if (mail.Attachments.Count > 0)
{
    for (int i = 1; i <= mail.Attachments.Count; i++)
    {
        mail.Attachments[i].SaveAsFile(@"C:\Test\" + mail.Attachments[i].FileName);
    }
}

【讨论】:

    猜你喜欢
    • 2011-05-10
    • 2018-01-31
    • 2021-11-17
    • 2010-12-24
    • 2023-03-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-23
    相关资源
    最近更新 更多