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

FallNutzen
Support-Mail mit 15 RückfragenKlare Lage in 2 Sätzen
ProjektabstimmungWas ist offen, was ist erledigt
Mail-CCs mit 5 TeilnehmernJeder versteht sofort den Kern
Übergaben oder VertretungenKeine 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.

Tags:

No responses yet

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert