Beitrag aus SmartTools Outlook Weekly
Erweiterte Betreffzeilenprüfung von eingehenden E-Mails in Outlook, Teil 1
Outlook 365 2024 2021 2019 2016 2013
Outlook-Regeln sind praktisch bei der automatischen Verarbeitung eingehender E-Mails. Aber manchmal stoßen sie an ihre Grenzen. So zum Beispiel, wenn Sie die Betreffzeile einer Nachricht auf Begriffe überprüfen wollen, die unbedingt vorhanden sein müssen. Das Standardkriterium für "bestimmte Wörter im Betreff" kann nur prüfen, ob eines der Wörter vorhanden ist. Es hilft nicht weiter, wenn Sie sicherstellen wollen, dass alle Wörter im Betreff vorkommen. In diesem Tipp stellen wir Ihnen deshalb eine Alternative zu klassischen Outlook-Regeln vor, mit der Sie auch Und-Verknüpfungen in der Betreffzeilenprüfung realisieren können.
Nehmen Sie als Beispiel folgenden Fall: Sie haben in Outlook ein Konto eingerichtet, das E-Mails nur dann entgegennehmen soll, wenn in der Betreffzeile die Wörter "Bestellnummer", "Kundennummer" und "Retour" vorkommen – und zwar alle Wörter, und nicht nur eines der Wörter. Wenn ein Begriff fehlt, soll eine Antwort an den E-Mail-Absender geschickt werden mit dem Hinweis, dass der Betreff unvollständig ist. Anschließend soll die unzulässige E-Mail aus dem Posteingang gelöscht werden.
Wie bereits erwähnt, kommen Sie da mit einer Outlook-Regel nicht weiter. Doch es gibt eine Alternative: Verarbeiten Sie die eingehenden E-Mails mit VBA, der Programmiersprache von Outlook. Dafür erstellen Sie ein Makro, das automatisch beim Starten von Outlook ausgeführt wird und die Überwachung des Posteingangs Ihres Kontos aktiviert. Ein weiteres Makro überprüft dann, ob die Betreffzeile der eingehenden E-Mails alle Pflichtbegriffe enthält. Wenn das nicht der Fall ist, erzeugt das Makro eine Antwort mit dem Hinweis auf die unvollständige Betreffzeile und löscht die unzulässige E-Mail aus dem Posteingang.
Beginnen Sie mit dem Makro, das die Betreffzeilenprüfung durchführt und sich um die Verarbeitung unzulässiger E-Mails kümmert:
- Starten Sie Outlook und wechseln Sie mit Alt + F11 in die Entwicklungsumgebung.
- Wählen Sie Einfügen-Modul an, um ein neues, leeres Codefenster zu öffnen.
- In dieses Codefenster geben Sie folgenden Makrocode ein:
Public Sub RegelMitUndBedingung( _
EMail As MailItem)
Dim arrBetreffWoerter As Variant
Dim strEMailBetreff As String
Dim booGefunden As Boolean
Dim i As Long
Dim olAntwort As MailItem
arrBetreffWoerter = Array("Bestellnummer", "Kundennummer", "Retour")
On Error GoTo RmUB_Error
strEMailBetreff = UCase(EMail.Subject)
booGefunden = True
For i = 0 To UBound(arrBetreffWoerter)
If InStr(strEMailBetreff, UCase(arrBetreffWoerter(i))) = 0 Then
booGefunden = False
Exit For
End If
Next i
If Not booGefunden Then
Set olAntwort = EMail.Reply
With olAntwort
If EMail.BodyFormat = olFormatHTML Then
.HTMLBody = "<p>*** Unvollständige Betreffzeile ***</p>" & _
"<p>Nachricht kann nicht verarbeitet werden...</p>" & _
.HTMLBody
Else
.Body = "*** Unvollständige Betreffzeile ***" & _
String(2, vbCrLf) & _
"Nachricht kann nicht verarbeitet werden..." & _
String(3, vbCrLf) & _
.Body
End If
.Send
End With
EMail.Delete
End If
RmUB_Error:
Set olAntwort = Nothing
End Sub
- In der Codezeile, die mit "arrBetreffWoerter =" beginnt, passen Sie die im Array-Ausdruck aufgeführten Begriffe an Ihre Bedürfnisse an. In obigem Beispiel müsste die Betreffzeile die Begriffe "Bestellnummer", "Kundennummer" und "Retour" enthalten, damit die E-Mail als zulässig betrachtet wird. Wenn die Betreffzeile dagegen die Begriffe "Hamburg", "Planung", "D-903786" und "Verkehr" enthalten muss, würde die Codezeile folgendermaßen aussehen:
arrBetreffWoerter = Array("Hamburg", "Planung", "D-903786", "Verkehr")
- Speichern Sie den VBA-Code, indem Sie Strg + S drücken.
- Verlassen Sie die Entwicklungsumgebung per Datei-Schließen und zurück zu Microsoft Outlook.
Fertig und funktionstüchtig ist die Makrolösung damit noch nicht. Die weiteren Schritte erfahren Sie im zweiten Teil dieses Tipps.