Outlook VBA将电子邮件及其附件保存在草稿中

时间:2018-09-23 13:23:04

标签: vba outlook

我有以下代码,该代码遍历文件夹创建带有附件的电子邮件并保存到草稿中。

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

代码完美无缺,只有一件事,在附件完全上传之前调用保存无效。我需要等到附件上传后,再致电保存。

有什么方法可以等待附件上传。

注意:如果我调试它,并在“附件添加”代码后等待一分钟,则附件已上传并保存正常。

2 个答案:

答案 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