如何在邮件的“已发送”副本上设置FlagStatus?

时间:2019-04-26 15:27:29

标签: vba outlook outlook-vba

基本上,我想运行以下代码。

Private Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean)
    If InStr(Item.Body, "XYZ") > 0 Then
        mailItem.FlagStatus = olFlagComplete
        mailItem.Save
    End If
End Sub

这给了我两个问题。首先,Outlook在这种情况下不允许我设置FlagStatus,因此我必须将FlagRequest设置为“ Complete”。

也许我可以忍受这个。其次,更重要的是,此标志设置在发送给收件人的邮件副本中,但未设置在我保留的邮件副本中。

我需要为我设置此标志,而不是邮件的收件人。感谢您的建议。

1 个答案:

答案 0 :(得分:0)

切换到“已发送邮件”文件夹上的ItemAdd事件。

在ThisOutlookSession模块中。

Private WithEvents sentFolItms As Items

Private Sub Application_Startup()
    Set sentFolItms = Session.GetDefaultFolder(olFolderSentMail).Items
End Sub

Private Sub sentFolItms_ItemAdd(ByVal sMail As Object)
    If InStr(sMail.Body, "XYZ") > 0 Then
        sMail.FlagStatus = olFlagComplete
        sMail.Save
    End If
End Sub