要解决此问题,需要使用Microsoft Outlook VBA宏代码来捕获发送电子邮件事件,然后在VBA代码中编写针对“已发送项目”文件夹的操作。
以下是示例代码:
在Outlook中打开Visual Basic编辑器(Alt + F11)并添加以下代码:
Private WithEvents myOlApp As Outlook.Application
Private Sub Application_Startup() Set myOlApp = CreateObject("Outlook.Application") End Sub
Private Sub myOlApp_ItemSend(ByVal Item As Object, Cancel As Boolean) Dim objNS As Outlook.NameSpace Dim objSentItems As Outlook.MAPIFolder Set objNS = Application.GetNamespace("MAPI") Set objSentItems = objNS.GetDefaultFolder(olFolderSentMail) If TypeName(Item) = "MailItem" Then If Item.Parent = objSentItems Then ' Items.ItemAdd() event is triggered for the Sent Items folder Debug.Print "New email sent." Else ' Items.ItemAdd() event is not triggered for other folders End If End If Set objSentItems = Nothing Set objNS = Nothing End Sub
此代码说明了如何捕获Outlook应用程序的事件并在发送电子邮件时检测电子邮件是否存储在“已发送项目”文件夹中。在发送电子邮件时,将触发myOlApp_ItemSend事件。您可以在此事件中添加您想要的操作。所示的示例代码只是打印一条消息,以帮助您验证事件是否正确运行。
请注意,为了使用上述代码,必须在Outlook启动时将Outlook应用程序作为对象启用(Application_Startup()代码行)。