如何将附件从电子邮件(即电子邮件)批量导出到Outlook中的另一个文件夹

时间:2019-01-23 13:57:48

标签: vba outlook outlook-vba

我需要从一定范围的电子邮件中提取.msg附件,并将其保存到另一个Outlook子文件夹中。目前可以通过将附件拖动到“收件箱”的子文件夹中来工作,但是有更快的方法吗?

我进行了一些搜索,找到了将它们提取到本地文件夹的方法,但是我需要将它们包含在Outlook中。

感谢您的帮助和建议。

谢谢。

1 个答案:

答案 0 :(得分:0)

这里有两个问题-首先是访问嵌入式邮件附件而没有先将它们另存为MSG文件。其次是重新导入MSG文件-您可以使用Application.CreateItemFromTemplate,但该项目将不发送。您可以使用Namespace.OpenSharedItem,然后使用MailItem.Move,但这仍然很麻烦。

仅凭OOM并不能做很多事情。扩展的MAPI可以工作,但是仅C ++或Delphi。如果可以选择使用Redemption(我是作者),则可以使用Redemption RDOAttachment对象公开的EmbeddeedMsg属性。您还可以使用RDOMailCopyTo并将文件夹作为参数传递,以将嵌入式邮件附件复制到文件夹:

Set Session = CreateObject("Redemption.RDOSession")
Session.MAPIOBJECT = Application.Session.MAPIOBJECT
set redItem = Session.GetMessageFromId(OutlookMessage.EntryID)
set redFolder = Session.GetFolderFromId(OutlookFolder.EntryID)
for each attach in redItem.Attachments
  if attach.Type = olEmbeddeditem Then
    attach.EmbeddedMsg.CopyTo OutlookFolder
  End If
next