VBA in Outlook zu bekommen "geantwortet" oder "weitergeleitet" - status der E-Mail-Konversation?

Ich habe ein VBA-Skript in outlook ist so ausgelegt, dass eine automatische E-Mail-handling, basierend auf, wenn Elemente sind in Ordnern abgelegt. Das funktioniert wie vorgesehen, aber ich bin versucht zu machen, ein wenig intelligenter, so dass das Skript sehen können, ob oder nicht das E-Mail wird in den Ordner beantwortet.

Derzeit ist der moment, in dem ein E-mail-platziert im Ordner "X", das Skript sendet eine automatische Antwort an die E-Mail und dann markiert die mail als ungelesen. Allerdings, wenn eine mail bereits als markiert "antwortete", unabhängig davon, ob das Skript antwortete auf die mail oder wenn jemand geschickt eine Antwort, bevor Sie die mail in den Ordner X, ich möchte sicherstellen, dass das Skript NICHT sendet eine Antwort, und einfach markiert die mail als ungelesen. Ist das etwas, dass Sie durch das Lesen von IMAP-tags-Eigenschaft? Wenn ja, welcher tag bin ich auf der Suche nach? Ich habe gekämpft, um herauszufinden, wie dies zu erreichen. Jede Hilfe würde geschätzt werden.

Referenz, hier ist das Skript, das ich habe (mit Daten zur Identifizierung entfernt):

Hinweis: ich bin mir bewusst, ich habe einige Variablen deklariert, aber nicht verwiesen. Ich werde diese später für etwas anderes.

Option Explicit
 '##############################################
 '### all code for the ThisOutlookSession module
 '### Module level Declarations
 'expose the items in the target folder to events
Dim WithEvents ackSpamMsgs As Items
Dim WithEvents ackPhishMsgs As Items
Dim WithEvents fwdMsgs As Items
 '###############################################
Private Sub Application_Startup()
     'some startup code to set our "event-sensitive"
     'items collection
    Dim objNS As Outlook.NameSpace
    Dim ackFolder As Folder
    Dim compFolder As Folder

    Set objNS = Application.GetNamespace("MAPI")
    Set ackMsgs = objNS.Folders("Inbox").Folders("Folder X").Items
    Set fwdMsgs = objNS.Folders("Inbox").Folders("Folder Y").Items
End Sub

 '#################################################
 '### this is the ItemAdd event code
Sub ackMsgs_ItemAdd(ByVal Item As Object)
     'when a new item is added to our "watched folder"
     'we can process it
    Dim msg As MailItem
    Set msg = Item.Reply
    'This is where I want to check if the mail has been replied to, and skip the "with"
    'below if it has been replied to.
    With msg
        .Subject = "RE: " & Item.Subject
        .HTMLBody = "Body of email here"
        .Send
        Set msg.UnRead = True
    End With

End Sub

Sub fwdMsgs_ItemAdd(ByVal Item As Object)
    Dim msg As MailItem
    Dim newMsg As MailItem

    Set msg = Item.Forward
    msg.Recipients.Add ("[email protected]")
    msg.Send

End Sub

 '#################################################
Private Sub Application_Quit()

    Dim objNS As Outlook.NameSpace
    Set ackMsgs = Nothing
    Set fwdMsgs = Nothing
    Set objNS = Nothing

End Sub
Schreibe einen Kommentar