l3vl1az
Goto Top

Outlook VBA Wenn Mail eingeht, Eintrag in logfile vornehmen

Hi,

ich bin Studentin und mache gerade ein Paktikum und bräuchte mal eure Hilfe.

Ich kenn mich aber in Outlook gar net aus....

Folgendes Problem habe ich. Wenn eine Mail mit einem bestimmten Betreff eingeht, soll in eine Logfile ein Eintrag mit Datum Uhrzeit und Mailbetreff geschrieben werden.
Danach soll die Mail gelöscht werden.

Habt Ihr dazu eine Idee, wie ich das umsetzen kann?

Vielen lieben Dank schonmal vorab und lieb Grüße...

Content-Key: 485465

Url: https://administrator.de/contentid/485465

Printed on: April 25, 2024 at 13:04 o'clock

Mitglied: 140777
140777 Aug 15, 2019 updated at 09:16:27 (UTC)
Goto Top
Hierin findest du X Links mit 99% fertigem Code.
Emailinhalt mit NewMail bzw. NewMailEx auswerten
Der Rest sollte für eine Studentin die hoffentlich weiß wie man sich Stoff selbst beibringt kein Problem darstellen .
Sollst ja auch was lernen in deinem Praktikum face-wink.
Member: colinardo
colinardo Aug 16, 2019 updated at 14:42:33 (UTC)
Goto Top
Servus @L3vl1AZ , willkommen auf Administrator.de!
Bitte Pfad zum Logfile und Subject-Filter in den Konstanten im Skriptkopf anpassen und das ganze in ThisOutlookSession oder diese DieseOutlookSitzung einfügen, nicht in ein Modul da ansonsten das Event nicht greift.
Das die Makrosicherheit angepasst werden muss sollte klar sein.
Option Compare Text

Private Sub Application_NewMailEx(ByVal EntryIDCollection As String)
    'Variablen  
    Dim varEntryIDs, objItem As Object
    ' Pfad zum Logfile  
    Const LOGFILE = "D:\logs\mail.log"  
    ' Subject mit Wildcard Support auf welchen das Skript reagiert  
    Const SUBJECT = "*Test*"  
    ' Filesystem Object erstellen  
    Set fso = CreateObject("Scripting.FileSystemobject")  
    ' Entry IDs der eingetroffenen Mails in Array splitten  
    varEntryIDs = Split(EntryIDCollection, ",")  
    ' Eingetroffene Mails durchlaufen  
    For i = 0 To UBound(varEntryIDs)
        'Objekt holen  
        Set objItem = Application.Session.GetItemFromID(varEntryIDs(i))
        With objItem
        'wenn Objekt ein Mailitem ist  
            If .Class = olMail Then
                ' Wenn Betreff der Mail 'Test' enthält dann  
                If .Subject Like SUBJECT Then
                    ' schreibe ins Logfile  
                    fso.OpenTextFile(LOGFILE, 8, True).WriteLine .ReceivedTime & " : " & .Subject  
                    ' Mail als gelesen markieren ...  
                    .UnRead = False
                    ' ...und löschen  
                    .Delete
                End If
            End If
        End With
        set objItem = Nothing
    Next
    set fso = Nothing
End Sub
Grüße Uwe