Ähnlich wie das Verlinken von Dateien mit Kurzbefehlen kann man auch Links zu E-Mails mit einem Kurzbefehl erzeugen. Dazu braucht es allerdings ein bisschen AppleScript. Denn neben dem eigentlichen Link werden zudem Informationen wie Absender, Datum und Betreff ausgelesen und in eine Markdown-Textzeile für das Einfügen in Obsidian formatiert. Das ist recht praktisch, wenn man die Informationen aus einer E-Mail in anderen Kontexten benötigt – beispielsweise für das Erledigen einer Aufgabe – oder schlicht Inbox Zero leben möchte.
Eigentlich habe ich schon im Beitrag Obsidian & E-Mails vor knapp zwei Jahren ausführlich darüber geschrieben, wie man E-Mails als Links in Obsidian einfügen kann und natürlich auch in jede andere App bzw. jeden anderen Texteditor. Eine der damals vorgestellten Optionen war unter anderem ein Kurzbefehl, den ich vom US-Blogger und Podcaster John Voorhees übernommen hatte. Mittlerweile habe ich diesen Kurzbefehl ein wenig angepasst und deshalb schreibe ich heute nochmals darüber.
Der Kurzbefehl erzeugt nämlich nicht nur einen Link zur E-Mail, sondern ergänzt diesen Link um ein paar weitere Informationen. Im konkreten Fall um die Mailadresse der Absenderin bzw. des Absenders und dem Datum, an dem die E-Mail in meinem Postfach gelandet ist. Selbstverständlich wird dieses Datum im Stile eines Wiki-Links formatiert, damit auch ein Verweis zur zugehörigen täglichen Notiz in Obsidian hergestellt werden kann.
Nach wie vor benötigt man AppleScript für das Auslesen der relevanten Informationen resp. Details einer E-Mail. Es gibt leider noch immer keine entsprechenden Funktionen zum Abrufen von E-Mails und deren Details direkt in der Kurzbefehle-App. Das ist schon ein kleiner Wermutstropfen, denn AppleScript wurde von Apple schon vor Jahren auf Eis gelegt und fristet am Mac nur noch ein verwaistes Dasein. Das beweist auch der AppleScript Language Guide, die mittlerweile im Documentation Archive von Apple gelandet ist. Dennoch funktioniert AppleScript derzeit auf allen gängigen Geräten mit macOS und hoffentlich bleibt das auch noch eine Weile so.
Die Vorgangsweise ist – ähnlich wie beim Datei-Link – recht einfach und intuitiv. Einfach eine E-Mail in der Mail-App auswählen bzw. anklicken oder öffnen und dann entweder eine Tastenkombination – in meinem Fall ist das ⇧⌥⌘M (Umschalt + Option + Command + M-Taste) – drücken, oder den Kurzbefehl beispielsweise über das Kurzbefehl-Menü in der Menüleiste starten und schon bekommt man den Link zur E-Mail im Markdown-Format samt den zugehörigen Informationen in die Zwischenlage serviert.
Der Kurzbefehl im Detail
Der Kurzbefehl besteht im Wesentlichen aus einem AppleScript, das über die gleichnamige Funktion direkt in den Kurzbefehl eingetragen werden kann. Das AppleScript nimmt sich die E-Mail in der Mail-App von Apple, die gerade in der Liste angeklickt bzw. markiert ist, oder jene, die in einem eigenen Fenster im Vordergrund geöffnet ist. Aus dieser E-Mail liest das kurze Programm dann die URL als X-Callback-URL für den Link aus, das Betreff, den Namen und die Mailadresse des Absenders bzw. der Absenderin und das Datum, an dem die Nachricht empfangen wurde.

Das ausgelesene Datum muss noch in das Format YYYY-MM-DD für die tägliche Notiz umformatiert werden. Das ist mit AppleScript in der Tat ein wenig umständlich und bedarf zweier zusätzlicher Variablen – nämlich day_str und mon_str – in denen der Tag und den Monat herausgerechnet werden, bevor sie dann in einer dritten Variable _theDate im gewünschten Format als String für den Wiki-Link gespeichert werden.
In der letzten Zeile werden abschließend die Daten an die Zwischenablage übergeben und dabei als Markdown formatiert. Die Syntax von AppleScript ist dafür etwas gewöhnungsbedürftig, aber das Ergebnis ist eine Textzeile im Format [Betreff der E-Mail](message://URL der E-Mail) von verfasser@domain.at vom [[YYYY-MM-DD]].
Hier noch das AppleScript quasi im Volltext als Kopiervorlage:
on run {input, parameters}
tell application "Mail"
set _msg to item 1 of (get selection)
set _messageURL to "message://%3c" & _msg's message id & "%3e"
set _msgSubject to subject of _msg
set _from to sender of _msg
set _name to extract name from _from
set _mail to extract address from _from
set _date to (date received) of _msg
set {year:y, month:m, day:d} to _date
set day_str to rich text -1 thru -2 of ("00" & d)
set mon_str to rich text -1 thru -2 of ("00" & (m * 1))
set _theDate to (y & "-" & mon_str & "-" & day_str) as string
set the clipboard to ((("[" & _msgSubject & "](" & _messageURL & ")" & " von " & _mail as string) & " vom [[" & _theDate as string) & "]]")
end tell
return input
end run
Fazit
Das Erzeugen eines Links zu einer E-Mail ist mit diesem Kurzbefehl samt AppleScript bequem und flott möglich. Praktisch ist dabei auch, dass diese Links nicht nur unter macOS funktionieren, sondern auch auf einem iOS-Gerät genutzt werden können – sofern die E-Mail dort auch in der Mail-App vorhanden ist, was ja nicht immer automatisch der Fall sein muss. Und es muss die Mail-App aus dem Hause Apple sein, nur damit funktioniert dieser Kurzbefehl und funktionieren diese Links.
Wie auch schon bei den mittels Kurzbefehl erzeugten Links zu Dateien, ist diese Vorgangsweise bei E-Mails für meine Zwecke ebenfalls völlig ausreichend und macht kostenpflichtige Apps wie Hookmark mehr und mehr überflüssig.
