У меня есть цикл, где я создаю электронную почту и задание. Мне нужно найти автоматическую отправку электронной почты и прикрепить ее к созданной задаче, сохранить и закрыть.VBA Отправить Outlook Email и приложить его к задаче
Ниже приведен очень упрощенный код для создания электронной почты и задачи и оставить их в режиме отображения слева для ручной отправки и присоединения в задаче.
Dim olApp As Object
Dim ns As Object
Dim oltask As Object
Dim SharedFolder As Object
Dim MyApp As Object
Set MyApp = CreateObject("Outlook.Application")
for i = 0 to 3
If IsObject(MyApp) Then
Set MyItem = MyApp.CreateItem(0) 'olMailItem
With MyItem
.SentOnBehalfOfName = "[email protected]"
.Bcc = Contact
.Subject = "SUBJECT"
.ReadReceiptRequested = False
.HTMLBody = Email_body
.Attachments.Add attachement_pdf
.Display
End With
'MyItem.Send 'to send an email
Set ns = MyApp.GetNamespace("MAPI")
ns.logon
Set Recip = ns.CreateRecipient("Inboxname")
Set SharedFolder = ns.GetSharedDefaultFolder(Recip, 13)
Set oltask = SharedFolder.Items.Add("IPM.Task")
With oltask
.Subject = "SUBJECT"
.StartDate = Date
.DueDate = Date + 7
.Status = 1
.Importance = 1
.ReminderSet = False
.body = task_body
.Display
.Attachments.Add 'HOW TO ADD SENT EMAIL?
End With
'oltask.Save 'save the task
End if
Next i
P.S. Outlook 2013
Привет, спасибо, что ответ. Можете ли вы дать код фрагмента, что вы имеете в виду, отслеживая событие folder.items.itemAdd? У меня нет проблемы с ожиданием его отправки (или, возможно, даже из outbox). Я также точно знаю, что у него будет, поэтому я тоже могу это использовать. – Trm
Здесь есть много примеров кода для различных задач автоматизации Outlook: https://msdn.microsoft.com/en-us/library/office/ff868025.aspx. Используйте Namespace.GetDefaultFolder (OlDefaultFolders.olFolderSentMail), чтобы получить дескриптор объекта Folder для папки «Отправленные». Затем получите коллекцию Items из объекта Folder и обработайте событие Items.ItemAdd. –