Outlook VBA代码在电子邮件中显示图片

问题描述:

默认情况下,我的MS Outlook 2013被设置为不下载收到的HTML电子邮件中的图像。我想保持这个设置。Outlook VBA代码在电子邮件中显示图片

有一些发件人的电子邮件是由我的Outlook VBA代码处理的......并归档到特定文件夹(而不是INBOX)中。我不使用内置的规则。

这些是已知的发件人...我想要从这些SELECT KNOWN发件人的电子邮件中下载并显示图片。我可以为每个电子邮件手动执行此操作...通过右键单击等等......但是当有许多此类电子邮件时,这是一种痛苦。

我无法弄清下载/启用电子邮件中图像/图片显示所需的几行代码(一行?)。像... MailItem.Display(它不工作...它只显示邮件在一个独立的窗口)...或MailItem.DisplayImages(这不是一个已知的方法!)。

我会在处理某些已知发件人的电子邮件的例程中包含这一行(或多行)......以便他们的电子邮件始终具有下载和显示的图像/图片。

谢谢。

Outlook对象模型不提供任何属性或方法。

您需要设置PidTagBlockStatus属性 - 请参见http://msdn.microsoft.com/en-us/library/ee219242(v=exchg.80).aspx

请注意,虽然您可以使用MailItem.PropertyAccessor.SetProperty读取/写入该属性,但无法正确计算其值 - Outlook对象模型将消息传递时间的值舍入,并且您需要原始扩展MAPI值(仅在C++或Delphi中可访问)作为FileTime结构。

如果使用Redemption是一个选项,它会公开RDOMailDownloadPictures财产。像下面的东西应该做的工作(VB脚本):

set Session = CreateObject("Redemption.RDOSession") 
    Session.MAPIOBJECT = Application.Session.MAPIOBJECT 
    set Item = Session.GetRDOObjectFromOutlookObject(YourOutlookItem) 
    Item.DownloadPictures = true 
    Item.Save