我正在嘗試創建一個可以在我發送電子郵件后自動轉發電子郵件的宏。我正在使用 Application_ItemSend 來觸發帶有一些輸入的用戶表單,然后我想使用其中一些輸入來轉發電子郵件。如果我只是發送一封新電子郵件而不是轉發原始電子郵件,那么我目前正在做的事情很好。我認為問題是在 ItemSend 宏完成之前不會發送原始電子郵件,并且我無法轉發尚未發送的電子郵件。我想知道如何撰寫一個在發送電子郵件后運行的宏。
uj5u.com熱心網友回復:
你是在正確的途徑 - 你需要等到專案被發送出去。通常,Outlook 會將已發送的專案放入Sent Items檔案夾,因此您可以將ItemAdd事件連接到Sent Items檔案夾并轉發原始發送的電子郵件。
Public WithEvents myOlItems As Outlook.Items
Public Sub Initialize_handler()
Set myOlItems = Application.GetNamespace("MAPI").GetDefaultFolder(olFolderSentMail).Items
End Sub
Private Sub myOlItems_ItemAdd(ByVal Item As Object)
Dim myOlMItem As Outlook.MailItem
myOlMItem = Item.Forward()
myOlMItem.Recipients.Add "Eugene Astafiev"
myOlMItem.Send
End Sub
請注意,用戶或其他加載項(VBA 宏)可以設定自定義檔案夾以在 Outlook 中保存已發送的專案。在這種情況下,您需要檢查MailItem.SaveSentMessageFolder屬性,該屬性回傳或設定一個Folder物件,該物件表示發送后將保存電子郵件副本的檔案夾。因此,您還需要在該檔案夾上設定一個掛鉤。您可以在ItemSend事件處理程式中執行此操作。
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/456329.html
