Zur Etikette beim E-Mail-Verkehr gehört für mich (wenn es sich nicht gerade um einen "Pseudo-Chat" handelt), die E-Mail mit einer Anrede ("Hallo Xaver") zu beginnen und mit einem Schluss-MfG ("Gruß – Erwin") zu beenden.
Je nachdem, ob man per Du ist natürlich mit Vornamen oder Nachnamen.

Besonders in der Firma kam mir bei täglich dutzenden E-Mails mal die Frage "kann ich mir das Getippe nicht sparen und wieso muss ich mir bei 'Herr Kulczynski' immer wieder auf's Neue einen abbrechen?" auf.

Es sind die kleinen Hacks, die einem das Tagesgeschäft erleichtern.
Anbei eine Anleitung, wie Anrede und Schluss-Gruß bei Apple Mail gleich in die E-Mail rein geschrieben werden, wenn man eine E-Mail mittels Apfel-R beantwortet.

Hinweis: Dies ist eine angepasste Version meines Hacks für Entourage – nun für Apple Mail.

Mein Apple-Skript

set foermlich_f to {"Maxime Mustermann", "Uschi Musterfrau"}
set foermlich_m to {"Max Mustermann", "Xaver Schrottburger"}
set duz_domains to {"apfel-z.net", "gmail.com"}
set keine_anrede to {"Edgar Dauertipper", "Mathilde Chatterley"}
set mein_name to {"Ralf", "Schnitzelberger"}

tell application "Mail"
        set theOriginalMsg to selected messages of first message viewer
        if (count of theOriginalMsg) is not 1 then
                display dialog "Bitte nur eine Nachricht auswählen"
                error number -128
        end if
       
        set theSender to (sender of item 1 of theOriginalMsg)
        set theName to extract name from theSender
        set theAddr to extract address from theSender
        set theAnrede to ""
       
        -- Und los...
        if theName is in foermlich_f then -- (Nachname vor Vorname)
                set theAnrede to do shell script "perl -e '$name=\"" & theName & "\"; $name =~ m/(\\w*),? (\\w*)/; print $1;'"
                set theAnrede to "Frau " & theAnrede
                set myName to (item 1 of mein_name) & " " & (item 2 of mein_name)
        end if
        if theName is in foermlich_f_2 then -- (Vorname vor Nachname)
                set theAnrede to do shell script "perl -e '$name=\"" & theName & "\"; $name =~ m/(\\w*),? (\\S*\\s?\\S*)/; print $2;'"
                set theAnrede to "Frau " & theAnrede
                set myName to (item 1 of mein_name) & " " & (item 2 of mein_name)
        end if
       
        -- Hallo Herr...
        if theName is in foermlich_m then -- (Nachname vor Vorname)
                set theAnrede to do shell script "perl -e '$name=\"" & theName & "\"; $name =~ m/(\\w*),? (\\w*)/; print $1;'"
                set theAnrede to "Herr " & theAnrede
                set myName to (item 1 of mein_name) & " " & (item 2 of mein_name)
        end if
        if theName is in foermlich_m_2 then -- (Vorname vor Nachname)
                set theAnrede to do shell script "perl -e '$name=\"" & theName & "\"; $name =~ m/(\\w*),? (\\w*)/; print $2;'"
                set theAnrede to "Herr " & theAnrede
                set myName to (item 1 of mein_name) & " " & (item 2 of mein_name)
        end if
       
        -- Aliase (angesprochene Person entspricht nicht der E-Mail-Adresse)
        if (theName is in item 1 of aliase) then
                set itemNo to -1
                repeat with i from 1 to the count of item 1 of aliase
                        if item i of (item 1 of aliase) is theName then set itemNo to i
                end repeat
                if itemNo is not -1 then
                        set theAnrede to item itemNo of item 2 of aliase
                        set myName to (item 1 of mein_name) & " " & (item 2 of mein_name)
                end if
        end if
       
        -- Hallo <Vorname>
        if theAnrede is "" then
                -- Domain prüfen, von der die E-Mail stammt
                set oldDelimiters to AppleScript's text item delimiters
                set AppleScript's text item delimiters to "@"
                set theDomainName to every text item of theAddr
                set AppleScript's text item delimiters to oldDelimiters
                if (item 2 of theDomainName) is in duz_domains then
                        -- Dann mal an den Vornamen senden...
                        set theAnrede to do shell script "perl -e '$name=\"" & theName & "\"; $name =~ m/(\\w*),? (\\w*)/; print $2;'"
                        set myName to (item 1 of mein_name)
                end if
        end if
       
        -- In E-Mail einfügen
        set theMsg to reply item 1 of theOriginalMsg with opening window
        if theName is not in keine_anrede and theAnrede is not "" then
                set theNewText to "Hallo " & theAnrede & ",


Viele Grüße
"
& myName
                tell application "Mail" to activate
                -- Ab hier wird's etwas unschön, da ich nicht direkt
                -- Text in eine offene E-Mail einfügen kann
                -- Ich lasse es von System Events "reintippen"
                tell application "System Events"
                        repeat with aCharacter in theNewText
                                if (aCharacter as text) is "
"
then
                                        keystroke (key code 36)
                                else
                                        keystroke (aCharacter)
                                end if
                        end repeat
                        keystroke (ASCII character 30)
                        keystroke (ASCII character 30)
                        keystroke (ASCII character 30)
                end tell
        end if
end tell

Also was läuft hier ab...?

  • Im E-Mail-Client ist eine E-Mail, die beantwortet werden soll, ausgewählt
  • Das Skript prüft Namen und Adresse des Absenders
  • Ist der Name des Absenders in der Liste foermlich_f, wird "Hallo Frau " als Anrede verwendet
  • Ist der Name des Absenders in der Liste foermlich_m, wird "Hallo Herr " als Anrede verwendet
  • Ist die Domain der E-Mail-Adresse des Absenders nicht in der Liste der duz_domains (bei Kunden wollen wir uns ja etwas mehr Mühe geben) oder ist der Name des Absenders in der Liste keine_anrede, wird nichts automatisch in die neue E-Mail geschrieben
  • Ansonsten wird "Hallo " als Anrede verwendet

Je nachdem wird noch ein "Gruß Ralf" oder "Gruß Ralf Schnitzelberger" (Vorname oder Vorname und Nachname von mein_name ) hintendran angefügt und der Cursor zwischen "Hallo" und "Gruß" gesetzt (das sind die drei keystroke (ASCII character 30)), so dass die fröhliche weiter-Texterei beginnen kann.

Etwas hakelig ist leider der Schlussteil, wo der Anrede-Text in die neu erstellte Antwort-E-Mail eingefügt werden soll.
Apple Mails API gibt es leider nicht her, dass man in eine eben erstellte E-Mail-Nachricht Text einfügen kann. Dies kann man nur just in dem Momant, wenn man eine neue E-Mail erstellt. Aber wir wollen ja keine neue (blanke) E-Mail erstellen, sondern eine beantworten.

Ein Workaround wäre, den Text in die Zwischenablage hinzuzufügen und mittels tell application "System Events" to keystroke "v" using {command down} einzufügen.
Da mir meine Zwischenablage allerdings heilig ist und ich nicht die Anrede-Texte meiner sämtlichen E-Mails in der Clipboard-History haben möchte, lasse ich einfach System Events Zeichen für Zeichen des Textes für mich eintippen (keystroke (aCharacter)), nachdem ich den einzufügenden Text mittels repeat-Schleife in einzelne Zeichen zerlegt habe. Die Sache mit dem Zeilenumbruch benötigt leider abermals einen unschönen Workaround.

Integration

Die Integration war in meinem Original-Skript für Microsoft Entourage um einiges einfacher: Das Programm bietet ein Skriptmenü, wo sich jedes Skript mit einem Tastenkürzel belegen lässt.
Apple Mail ist nicht so automatisierungs-freudig.
 
Aber hier springt der gute alte Butler mal wieder für mich in die Bresche.
Was würde ich nur ohne dieses Programm machen?

Einfach das Skript zu Butler hinzufügen, unter "Optionen" unbedingt "AppleScript ausführen" wählen, als Auslöser &#8984; R, wie der gewohnte Antworten-Hotkey, unter Ausnahmen "Nur gültig in Mail" wählen.

 
Da Apple Mail dieses Tastenkürzel ebenso für sein "normales" Antworten verwendet, geben wir hier am besten in den Systemeinstellungen > Tastatur ein alternatives Tastenkürzel wie etwa &#8984; &#8997; R vor.