Outlook VBA сохраняет электронную почту с вложением в черновик - PullRequest
0 голосов
/ 23 сентября 2018

У меня есть следующий код, который перебирает папку, создает электронную почту с вложением и сохраняет в черновик.

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

Код работает отлично, за исключением одной вещи, вызов сохранения до того, как загруженное вложение полностью не работает.Мне нужно подождать, пока вложение загрузится, затем вызвать Save.

Есть ли способ дождаться загрузки вложения?

Примечание. Если я отлаживаю его и подожду минуту после добавления кода вложения, вложение будет загружено, а «Сохранить» работает нормально.

Ответы [ 2 ]

0 голосов
/ 24 сентября 2018

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
0 голосов
/ 23 сентября 2018

MailItem.Attachments.Add синхронно;к моменту возврата звонка вложение добавляется в сообщение.С чего ты взял, что это не так?

...