在outlook里Visual Basic 编辑器里,添加一下窗口,如图:
代码如下:
Private Sub btnSaveAttachment_Click() Dim strname Dim wcount wcount = 0 Dim savefolder '====对给定文件夹进行标准化================= If (Right(txtPath.Text, 1) <> "\") Then savefolder = txtPath.Text & "\" End If If ckWithDate.Value = True Then savefolder = txtPath.Text & Format(Date, "yyyymmdd") & "\" End If Dim fso, f Set fso = CreateObject("Scripting.FileSystemObject") '====建立文件夹================= If (fso.FolderExists(savefolder) = False) Then fso.CreateFolder (savefolder) End If On Error Resume Next Dim myOlApp As New Outlook.Application Set myNamespace = myOlApp.GetNamespace("MAPI") If (txtOutlookPath.Text = myNamespace.GetDefaultFolder(olFolderInbox).Name) Then Set myFolder = myNamespace.GetDefaultFolder(olFolderInbox) Else Set myFolder = myNamespace.GetDefaultFolder(olFolderInbox).Folders(txtOutlookPath.Text) End If For i = 1 To myFolder.Items.Count '====获得每个邮件item================= Set mymailitem = myFolder.Items(i) For Each Attachment In mymailitem.Attachments '====判断文件存在否,不存在就覆盖,否则跳过================= If (fso.FileExists(savefolder & Attachment.DisplayName) = False) Then Attachment.SaveAsFile savefolder & Attachment.DisplayName Else MyArray = Split(Attachment.DisplayName, ".", -1, 1) Attachment.SaveAsFile savefolder & MyArray(0) & Format(mymailitem.ReceivedTime, "_yyyymmdd_hhnn") & "." & MyArray(1) End If wcount = wcount + 1 Next Next f.Close End Sub