我想向特定收件人“发送”邮件但不想传递。邮件在发件箱中,但我想立即删除它。当我使用命令delete时,它说它在发送之前被删除了。我不想要弹出窗口,并且在退出Outlook时还有一个警告,即仍有未发送的消息。如何清除发件箱?
Private Sub Application_ItemSend(ByVal item As Object, Cancel As Boolean)
Dim outApp As Outlook.Application
Dim deletedFolder As Outlook.MAPIFolder
Dim entryID As String
Set outApp = CreateObject("outlook.application")
Set deletedFolder =outApp.GetNamespace("MAPI").GetDefaultFolder(olFolderOutbox)
If item.To = "example@mail.com" Then
item.DeferredDeliveryTime = DateAdd("y", 99999, Now)
End If
Set deletedFolder = outApp.GetNamespace("MAPI").GetDefaultFolder(olFolderOutbox)
If deletedFolder.Items.Count >= 0 Then
For i = 1 To deletedFolder.Items.Count
deletedFolder.Items(1).Delete
Next i
End If
End Sub
答案 0 :(得分:0)
Outbook文件夹包含尚未发送的消息。由于没有发送项目,因此绝对不是删除项目的正确时间和地点。相反,我建议处理ItemSend事件并添加用户属性(即稍后可以告诉您是否需要删除该消息的标记),请参阅MailItem类的UserProperties属性以获取更多信息。例如:
Set myUserProperty = myItem.UserProperties _
.Add("YourDetails", olText)
myUserProperty.Value = "Delete"
然后,在“已发送邮件”文件夹的ItemAdd事件处理程序中,您可以检出用户定义的属性值,并在需要时删除已发送的邮件。请注意,默认情况下,已发送邮件的“已发送邮件”文件夹将设置为目标文件夹。但您可以通过编程方式设置自定义文件夹,请参阅SaveSentMessageFolder属性 - 一个Folder对象,该对象表示发送后将保存电子邮件副本的文件夹。