Worum geht’s?
Du bekommst viele E-Mails.
Unsortiert.
Mal ist’s eine Support-Anfrage, mal eine Bewerbung, mal nur Werbung.
Und Du willst das klassifizieren. Automatisch.
Damit Du schneller reagieren kannst – oder die Mail gleich im richtigen Ordner landet.
Also nehmen wir GPT oder Azure AI.
Lassen sie lesen. Und sagen lassen: „Das ist eine Beschwerde.“
Oder: „Hier bewirbt sich jemand.“
Geht alles direkt in Outlook Classic. Mit VBA.
Ich zeig Dir, wie.
Was brauchst Du?
- Outlook mit Makros (Classic, kein Web)
- Zugriff auf den VBA-Editor (ALT+F11)
- Einen OpenAI API-Key oder Azure OpenAI Endpoint
- Ein bisschen Lust auf strukturiertes Prompting
Ziel
Jede eingehende Mail bekommt eine Kategorie:
- Anfrage
- Beschwerde
- Bewerbung
- Sonstiges
Das Ergebnis landet entweder:
- im Mail-Header (z. B. benutzerdefiniertes Feld)
- im Betreff als Präfix
- oder die Mail wird gleich verschoben
GPT oder Azure?
Anbieter | Vorteil | Nachteil |
---|---|---|
GPT (OpenAI) | Schnell einzurichten | API kostenpflichtig, Datenschutzfrage |
Azure OpenAI | DSGVO-konformer Betrieb möglich | Komplexeres Setup |
Beides funktioniert gleich. Nur der Endpunkt ist anders.
Prompt-Vorlage
Kategorisiere folgenden E-Mail-Text. Gib nur eine der folgenden Kategorien zurück: Anfrage, Beschwerde, Bewerbung, Sonstiges.
Text: [Mailtext hier einsetzen]
Je klarer der Prompt, desto besser das Ergebnis.
Lass keine Interpretationsspielräume.
GPT per VBA
Function KlassifiziereMailGPT(text As String) As String
Dim http As Object
Dim result As String
Dim apiKey As String
Dim prompt As String
Dim json As String
apiKey = "sk-..." ' Dein GPT API-Key
prompt = "Kategorisiere folgenden E-Mail-Text. Gib nur eine der folgenden Kategorien zurück: Anfrage, Beschwerde, Bewerbung, Sonstiges." & vbCrLf & "Text: " & text
json = "{""model"":""gpt-4"",""messages"":[{""role"":""user"",""content"":""" & Replace(prompt, """", "\""") & """}],""temperature"":0}"
Set http = CreateObject("MSXML2.XMLHTTP")
With http
.Open "POST", "https://api.openai.com/v1/chat/completions", False
.setRequestHeader "Content-Type", "application/json"
.setRequestHeader "Authorization", "Bearer " & apiKey
.send json
result = .responseText
End With
Dim startPos As Long, endPos As Long
startPos = InStr(result, """content"":""") + 11
endPos = InStr(startPos, result, """}")
KlassifiziereMailGPT = Mid(result, startPos, endPos - startPos)
End Function
Anwendung auf aktive Mail
Sub KlassifiziereAktiveMail()
Dim mail As MailItem
Dim body As String
Dim kategorie As String
If Application.ActiveExplorer.Selection.Count = 0 Then
MsgBox "Keine Mail ausgewählt.", vbExclamation
Exit Sub
End If
Set mail = Application.ActiveExplorer.Selection.Item(1)
body = Left(mail.Body, 2000) ' Nur ersten Teil nehmen
kategorie = KlassifiziereMailGPT(body)
' Kategorie im Betreff vermerken
mail.Subject = "[" & Trim(kategorie) & "] " & mail.Subject
mail.Save
MsgBox "Klassifiziert als: " & kategorie, vbInformation
End Sub
Alternative: Azure OpenAI statt GPT
Function KlassifiziereMailAzure(text As String) As String
Dim http As Object
Dim result As String
Dim prompt As String
Dim json As String
prompt = "Kategorisiere folgenden E-Mail-Text. Gib nur eine der folgenden Kategorien zurück: Anfrage, Beschwerde, Bewerbung, Sonstiges." & vbCrLf & "Text: " & text
json = "{""messages"":[{""role"":""user"",""content"":""" & Replace(prompt, """", "\""") & """}],""temperature"":0}"
Set http = CreateObject("MSXML2.XMLHTTP")
With http
.Open "POST", "https://<dein-endpunkt>.openai.azure.com/openai/deployments/<deployment-name>/chat/completions?api-version=2024-03-01", False
.setRequestHeader "Content-Type", "application/json"
.setRequestHeader "api-key", "<dein-azure-key>"
.send json
result = .responseText
End With
Dim startPos As Long, endPos As Long
startPos = InStr(result, """content"":""") + 11
endPos = InStr(startPos, result, """}")
KlassifiziereMailAzure = Mid(result, startPos, endPos - startPos)
End Function
Erweiterungsideen
- Automatisch auf neue Mails im Posteingang reagieren
- Ordner automatisch nach Kategorie sortieren
- Kategorien als benutzerdefinierte Felder speichern
- Training mit Beispieldaten zur Prompt-Optimierung
Was Du beachten solltest
- GPT ist schnell, aber nicht fehlerfrei
- Klassifikation ist kontextabhängig – Vorsicht bei Ironie oder Anhang-only
- Je kürzer der Body, desto besser die Erkennung
- DSGVO bei sensiblen Mails beachten
Wenn Du regelmäßig Mails manuell einordnest, dann lass GPT den ersten Schritt machen – und nimm Dir nur noch die kniffligen Fälle selbst vor.
No responses yet