Warum überhaupt?
Weil Du keine Zeit hast, 27 E-Mails rückwärts zu lesen.
Und der letzte Satz steht oft ganz oben. Oder ganz unten. Oder gar nicht.
Mit GPT kannst Du lange Mail-Verläufe automatisch zusammenfassen.
Direkt aus Outlook. Per VBA. Ohne Umwege.
Was Du brauchst
- Outlook Classic (Office VBA-fähig)
- OpenAI API-Key
- Zugriff auf den Mailtext
- JSON-Handling in VBA
Welche Inhalte will ich zusammenfassen?
Am besten:
- Nur die Mail-Inhalte, keine Signaturen
- Keine Header
- Kein „Von: An: Betreff:“
- Nur der Dialog
Ich nutze dafür nur den Body des aktiven Items. Du kannst das anpassen.
Schritt 1: Mailtext auslesen
Function HoleMailInhalt() As String
Dim mail As Outlook.MailItem
Set mail = Application.ActiveInspector.CurrentItem
HoleMailInhalt = mail.Body
End Function
Schritt 2: Prompt bauen und GPT aufrufen
Function GPTZusammenfassung(text As String) As String
Dim http As Object
Dim json As String
Dim apiKey As String
apiKey = "DEIN_API_KEY"
Dim prompt As String
prompt = "Fasse den folgenden E-Mail-Verlauf in 1-2 Sätzen zusammen. Halte Dich kurz und sachlich." & vbCrLf & text
json = "{" & _
"""model"": ""gpt-4""," & _
"""messages"": [{" & _
"""role"": ""user""," & _
"""content"": """ & Replace(prompt, """", "\""") & """" & _
"}]" & _
"}"
Set http = CreateObject("MSXML2.ServerXMLHTTP")
http.Open "POST", "https://api.openai.com/v1/chat/completions", False
http.setRequestHeader "Content-Type", "application/json"
http.setRequestHeader "Authorization", "Bearer " & apiKey
http.Send json
GPTZusammenfassung = ExtrahiereGPTAntwort(http.responseText)
End Function
Schritt 3: Antwort extrahieren
Function ExtrahiereGPTAntwort(json As String) As String
Dim sc As Object
Set sc = CreateObject("ScriptControl")
sc.Language = "JScript"
sc.AddCode "function parse(j){return JSON.parse(j).choices[0].message.content;}"
ExtrahiereGPTAntwort = sc.Run("parse", json)
End Function
Schritt 4: Zusammenfassung in Betreff oder Body schreiben
Sub SetzeZusammenfassungInBetreff()
Dim mail As Outlook.MailItem
Set mail = Application.ActiveInspector.CurrentItem
Dim originalText As String
originalText = HoleMailInhalt()
Dim zusammenfassung As String
zusammenfassung = GPTZusammenfassung(originalText)
mail.Subject = "[Zusammenfassung] " & Left(zusammenfassung, 80)
mail.Save
MsgBox "Zusammenfassung wurde in den Betreff geschrieben."
End Sub
Alternativ: In den oberen Bereich des Bodys einfügen.
Sub SetzeZusammenfassungInBody()
Dim mail As Outlook.MailItem
Set mail = Application.ActiveInspector.CurrentItem
Dim originalText As String
originalText = HoleMailInhalt()
Dim zusammenfassung As String
zusammenfassung = GPTZusammenfassung(originalText)
mail.Body = ">>> Zusammenfassung durch GPT: " & vbCrLf & zusammenfassung & vbCrLf & vbCrLf & mail.Body
mail.Save
MsgBox "Zusammenfassung wurde in den Mailtext eingefügt."
End Sub
Was das bringt
Fall | Nutzen |
---|---|
Support-Mail mit 15 Rückfragen | Klare Lage in 2 Sätzen |
Projektabstimmung | Was ist offen, was ist erledigt |
Mail-CCs mit 5 Teilnehmern | Jeder versteht sofort den Kern |
Übergaben oder Vertretungen | Keine Kontextsuche mehr |
Was Du beachten musst
- GPT sieht nur den reinen Text – kein HTML, keine Formatierung
- Antwortzeiten je nach Modell: 2–10 Sekunden
- Du kannst den Prompt variieren („neutral“, „verkaufsorientiert“, „informell“)
- Lange Verläufe ggf. kürzen oder trennen – GPT hat ein Tokenlimit
„Outlook kann viel. Verstehen tut’s erst mit KI.“
Wenn Du sowas im Alltag brauchst: Ich setz Dir das so auf, dass Du nicht mehr zurück willst.
Kein Add-In, keine Cloud-Suite. Nur Outlook, VBA und GPT. Läuft.
No responses yet