AppleScript: Wie lese ich den Titel einer E-Mail aus?

Bestimmte Zuweisungen in AppleScript erzeugen nicht unbedingt den Datentyp, den man erwarten würde. Wie im Beitrag Wie kann ich die Bedeutung einer Fehlernummer herausbekommen? bereits erwähnt, können manche Fehlermeldungen im Skripteditor nicht besonders aussagekräftig sein. In diesem Fall bekommen wir zwar eine relativ aussagekräftige Fehlermeldung, aber ihr Inhalt erschliesst sich manchen erst auf den zweiten Blick (ging mir jedenfalls am Anfang so).

Wenn man dem Programm Mail.app den Befehl erteilt set myMsg to selection gefolgt von set mySubject to subject of myMsg, dann bekommt man eine Fehlermeldung, die so, oder so ähnlich aussieht: Can’t get subject of {message id 138375 of mailbox "INBOX" of account "myaccount@mydomain.com" of application "Mail"}.

Eigentlich ist ja alles da, aber die geschweiften Klammern (“{}”) besagen, dass wir bei der ersten Anweisung eine Liste bekommen haben und nicht einen Verweis auf ein bestimmtes E-Mail. Selbst wenn nur ein E-Mail ausgewählt sein sollte, wird auch dieses so zurückgegeben, als ob mehrere E-Mails auswählt worden wären. Über den Sinn dieser Implementierung könnte man zwar nun eine Diskussion vom Zaun brechen, aber Tatsache ist nun mal: Wir bekommen eine Liste zurückgeliefert.

Folgendes Skript führt die Zuweisung des Titels der Nachricht – beziehungsweise den Titel der ersten Nachricht, wenn mehrere ausgewählt sein sollten – an die Variable mySubject durch:


tell application "Mail"
	set myMsgs to selection
	set mySubject to subject of item 1 of myMsgs
end tell

Der Zugriff auf die erste Nachricht in der Liste erfolgt über of item 1.

Das gezeigte Skript sollte natürlich noch auf Fehler testen, also ob überhaupt eine Nachricht ausgewählt ist, etc. Darauf habe ich aber aus Gründen der Lesbarkeit verzichtet.

This entry was posted in MMMDM Continued, OS X and tagged , , , . Bookmark the permalink.

Leave a Reply

Your email address will not be published. Required fields are marked *

*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>