我有以下代码,该代码遍历文件夹创建带有附件的电子邮件并保存到草稿中。
Public Sub saveFileTodownload()
Set draftItems = Outlook.Session.Folders("My Email").Folders("Drafts").Items
strFile = Dir("d:\ga\localsdk\")
Do While Len(strFile)
Debug.Print strFile
Set mail = draftItems.Add("IPM.NOTE")
mail.Subject = "1downloadme" & Count
mail.Attachments.Add ("d:\ga\localsdk\" & strFile)
mail.Save
strFile = Dir
Loop
End Sub
代码完美无缺,只有一件事,在附件完全上传之前调用保存无效。我需要等到附件上传后,再致电保存。
有什么方法可以等待附件上传。
注意:如果我调试它,并在“附件添加”代码后等待一分钟,则附件已上传并保存正常。
答案 0 :(得分:0)
MailItem.Attachments.Add
是同步的;呼叫返回时,附件已添加到邮件中。是什么让您相信事实并非如此?
答案 1 :(得分:0)
user93865
我测试了您的代码,它对我有用(无错误消息)。但是,如果有很多附件上传,它将被卡住。
您可以尝试以下代码:
Public Sub saveFileTodownload()
Dim store As Outlook.store
Dim space As Outlook.NameSpace
Dim folder As Outlook.folder
Set space = Outlook.Application.GetNamespace("MAPI")
Set store = space.DefaultStore
Set folder = store.GetDefaultFolder(Outlook.OlDefaultFolders.olFolderDrafts)
Set Item = folder.Items.Add("IPM.NOTE")
Item.Subject = "1downloadme"
Item.Body = "one"
Dim r As Long
r = 0
Do While r < 100
Item.Attachments.Add ("C:\Users\temp\Desktop\notes\abd.docx")
r = r + 1
Loop
'Item.Display
Item.Save
Item.Close
End Sub