0
我有一個循環,用於創建電子郵件和任務。我需要找到自動發送電子郵件並將該電子郵件附加到創建的任務,保存並關閉。VBA發送Outlook電子郵件並將其附加到任務
下面是創建電子郵件和任務的非常簡化的代碼,並將它們保留在顯示模式下,以便手動發送並附加到任務中。
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.展望2013
嗨,感謝您的回覆。你可以通過監視folder.items.itemAdd事件給出代碼段代碼嗎?我沒有等待它被髮送的問題(或者甚至可以從發件箱中取出)。我也確切知道它會有什麼主題,所以我也可以使用它。 – Trm
這裏有很多用於各種Outlook自動化任務的示例代碼:https://msdn.microsoft.com/en-us/library/office/ff868025.aspx。使用Namespace.GetDefaultFolder(OlDefaultFolders.olFolderSentMail)獲取已發送郵件文件夾的Folder對象的句柄。然後從Folder對象獲取Items集合並處理Items.ItemAdd事件。 –