outlook vba代码在电子邮件中显示图片

时间:2014-12-07 14:16:56

标签: vba email outlook

默认情况下,我的MS Outlook 2013设置为不下载收到的HTML电子邮件中的图像。我想保留这个设置。

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

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

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

我会在处理来自某些已知发件人的电子邮件的例程中包含这一行(或多行)....这样他们的电子邮件总是会下载和显示图像/图片。

感谢。

2 个答案:

答案 0 :(得分:1)

您需要设置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

答案 1 :(得分:0)

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