提示:请先在Outlook中启用宏。

前提:要会如何设立邮件规则。 

打开Outlook, 按Alt+F11进入VBA编辑窗口,将如下代码复制进去。

 

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
'"c:\temp\"为保存目录,必须以"\"结尾,否则无法保存。此处可以自定义保存路径。
        objAtt.SaveAsFile saveFolder & "\" & objAtt.DisplayName
        Set objAtt = Nothing
    Next
End Sub

 

如果你要阻止文件被覆盖,比如:如果你收到两封邮件,附件中的文件名称相同,且不想第二封邮件中的附件覆盖之前的附件,请将以下代码加到以dim开头的行下。

 

Dim dateFormat
    dateFormat = Format(Now, "yyyy-mm-dd H-mm")

 

然后将以'objAtt.SaveAsFile'开头的代码替换成如下代码:

objAtt.SaveAsFile saveFolder & "\" & dateFormat & objAtt.DisplayName

 

 

完整代码如下:

 

Public Sub saveAttachtoDisk (itm As Outlook.MailItem)
Dim objAtt As Outlook.Attachment
Dim saveFolder As String

Dim dateFormat
    dateFormat = Format(Now, "yyyy-mm-dd H-mm")

 
saveFolder = "c:\temp\"
    For Each objAtt In itm.Attachments
        

objAtt.SaveAsFile saveFolder & "\" & dateFormat & objAtt.DisplayName

 
        Set objAtt = Nothing
    Next
End Sub

 

最后建立邮件规则来运行脚本即可。