下面是從Outlook郵件中下載附件的腳本。下載具有相同名稱的附件而不覆蓋
Public Sub SaveAttachmentsToDisk(MItem As Outlook.MailItem)
Dim oAttachment As Outlook.Attachment
Dim sSaveFolder As String
Dim dateFormat
dateFormat = Format(Now, "yyyy-mm-dd")
sSaveFolder = "c:\My\temp\"
For Each oAttachment In MItem.Attachments
oAttachment.SaveAsFile sSaveFolder & oAttachment.DisplayName
Next
End Sub
它僅在附件名稱不同時下載並存儲在我的代碼中提及的路徑中。
例如,我收到附件爲'List.csv'的郵件。我用同樣的名字收到了大約10次的郵件。
但是隻有一個文件(最近一個)被保存在路徑中。
最終代碼爲我工作。
Public Sub saveAttachtoDisk(itm As Outlook.MailItem)
Dim objAtt As Outlook.Attachment
Dim saveFolder As String
Dim dt30daysAgo As Date
dt30daysAgo = DateAdd("d", -30, Now)
saveFolder = "c:\My\temp"
For Each objAtt In itm.Attachments
If itm.ReceivedTime > dt30daysAgo Then
If objAtt.FileName <> "list.csv" Then
objAtt.SaveAsFile saveFolder & "\" & objAtt.FileName
Else
objAtt.SaveAsFile saveFolder & "\" & itm.Subject & objAtt.FileName
End If
End If
Next
End Sub
如果這些附件具有相同的名稱,我猜測它們將被覆蓋,請嘗試在文件名的末尾添加類似計數器的內容。或者可能是電子郵件的發送日期 – gizlmo
因此,請在保存前檢查文件是否存在,如果確實存在,則更改副本的文件名。 –