自动保存电子邮件附件

时间:2019-11-06 21:11:00

标签: vba outlook

我需要一个简单的代码来保存每小时通过电子邮件收到的文件-我希望每次保存时都以相同的名称将其保存到桌面上的文件夹中。

到目前为止,我有以下内容:

Public Sub saveAttachtoDisk(itm As Outlook.MailItem)

1 个答案:

答案 0 :(得分:0)

要处理传入的电子邮件,您需要加入Applicaiton类的NewMailEx事件。当有新消息到达收件箱时,并且在发生客户端规则处理之前,将触发NewMailEx事件。您可以使用EntryIDCollection数组中返回的Entry ID来调用NameSpace.GetItemFromID方法并处理该项目。对于具有Exchange Server帐户(非缓存Exchange模式或缓存Exchange模式)的用户,此事件仅对Outlook启动后到达服务器的邮件触发。在Outlook启动后立即在缓存Exchange模式下同步的邮件,对于在非缓存Exchange模式下启动Outlook的服务器上已经存在的邮件,都不会触发该事件。

检索到收到的电子邮件后,您可以将附件保存到磁盘:

Public Sub saveAttachtoDisk(itm As Outlook.MailItem)
Dim objAtt As Outlook.Attachment
Dim saveFolder As String
saveFolder = "c:\temp"
     For Each objAtt In itm.Attachments
          objAtt.SaveAsFile saveFolder & "\" & objAtt.DisplayName
          Set objAtt = Nothing
     Next
End Sub