【发布时间】:2015-09-07 09:22:40
【问题描述】:
这是我从 Outlook 收件箱中检索电子邮件并存储其附件的脚本。
问题是无法正常工作。它能够从未读的电子邮件中收集附件并将它们存储到SavePath,但是当它阅读了三封电子邮件时它就停止了。
奇怪的是,它再次执行时能够收集剩余的邮件,但不能收集所有剩余的未读邮件。
例如: 我在收件箱中有 6 封未读电子邮件,第一次执行时只读取了 3 封电子邮件并收集了它们的附件。第二次执行时,它会读取接下来的 2 封电子邮件。第三次执行时,读取了剩余的邮件。
我不知道发生了什么以及为什么不一次阅读所有电子邮件。
Dim SavePath
Dim Subject
Dim FileExtension
SavePath = "C:\IN\"
Subject = "'Transfer File'"
FileExtension = "ARmessage"
Set objOutlook = CreateObject("Outlook.Application")
Set objNamespace = objOutlook.GetNamespace("MAPI")
Set objFolder = objNamespace.GetDefaultFolder(6) 'Inbox
Set colItems = objFolder.Items
Set colFilteredItems = colItems.Restrict("[Unread]=true")
Set colFilteredItems = colFilteredItems.Restrict("[Subject] = " & Subject)
For Each objMessage In colFilteredItems
intCount = objMessage.Attachments.Count
If intCount > 0 Then
For i = 1 To intCount
' if right(Ucase(objMessage.Attachments.Item(i)),9) = FileExtension then
objMessage.Attachments.Item(i).SaveAsFile SavePath & _
objMessage.Attachments.Item(i).FileName
' End If
Next
objMessage.Unread = False
End If
Next
【问题讨论】:
标签: email vbscript outlook attachment