Apple Mail: Access outgoing message via AppleScript

Jeder der schon einmal Apple Mail via AppleScript geskriptet hat (ein wohl ehr überschaubarer Personenkreis), hatte vielleicht schon einmal ein Problem mit outgoing messages (noch überschaubarer). Eine neue Nachricht ist irgendwie anders als eine bereits gespeicherte. Man kann zwar Adressen, Betreff und Signatur hinzufügen, aber schon bei der Auswahl des Absende-Accounts stößt man bei Apple Mail auf eine Logik-Blase die sofort zerplatzt. Es geht einfach nicht und kommt man dann noch auf die abwegige Idee den Email-Text einer gerade geschrieben Nachricht auslesen zu wollen, merkt man erst einmal wie schlecht Apple Mail und wie gut Microsoft Entourage zu skripten ist. Lage rede kurzer Sinn, alles was auf der Platte gespeichert ist (in Form einer EMLX-Datei), ist wunderbar auszuwerten, da aber Nachrichten, die gerade erst geschrieben werden noch nicht gespeichert sind, ist der Zugriff auf Informationen wie Inhalt, Absender, Attachments-Namen, etc. bei solchen noch nicht möglich. Deshalb hier ein Beispiel für einen Work-Around, der die gerade geschrieben Nachricht als Entwurf abspeichert, diese Datei dann auswertet und einem die Namen der Attachments in den Mailtext einfügt. So etwas dürfte bei normalen POP-Accounts recht gut funktionieren, bei IMAP eher weniger, da der Entwurf erst auf den Server hochgeladen, anschließend wieder heruntergeladen wird und dann erst zur Verfügung steht.

Code zum markieren einmal anklicken Code im Skript-Editor öffnen

-- Nachricht als Entwurf speichern

tell application "Mail" to activate

tell application "System Events"

tell process "Mail"

keystroke "s" using command down

set messagename to name of window 1

end tell

end tell

delay 2

--Entwurfs-Maibox nach der neuesten Nachricht durchsuchen, die den passenden Betreff trägt

--Anschließend die Namen der Anhänge auslesen

tell application "Mail"

set found to (every message of drafts mailbox whose (subject is messagename))

set theid to 0

repeat with f in found

if id of f > theid then

set theid to id of f

end if

end repeat

set mymessage to item 1 of (every message of drafts mailbox whose (id is theid))

set attachmentnames to name of every mail attachment of mymessage

set AppleScript's text item delimiters to return

set attachmentnames to attachmentnames as text

set AppleScript's text item delimiters to ""

set the clipboard to attachmentnames

end tell


--Namen in die Zwischenablage und an der aktuellen Cursor-Position einfügen

tell application "Mail" to activate

tell application "System Events"

tell process "Mail"

keystroke "v" using command down

end tell

end tell

This entry was posted in Apple Mail, Useful Snippets and tagged , , . Bookmark the permalink. Post a comment or leave a trackback: Trackback URL.

One Comment

  1. Posted July 23, 2011 at 5:08 am | Permalink

    This is a great post. you got cheap shoes online .I like cheap designer shoes as well give you designer shoes outlet

Post a Comment

Your email is never published nor shared. 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>

CAPTCHA:


+ 9 = fourteen

Subscribe without commenting

  • Seite übersetzen:


    Paypal for Pizza:




  • Kategorien


  • Letzte Kommentare

    • Niklas: Vielen Vielen Dank! So klappt es!
    • hubi: Servus Niklas, ich habe mir den Quellcode noch einmal angesehen und habe nun unter 10.7.3 einen Weg gefunden...
    • Niklas: Klingt super das Script. Leider bekomm ich immer folgende Fehlermeldung: error “„Mail“ hat einen Fehler...
    • Jürgen: Hallo Hubi, beim Abfragen von Kennworten gibt es noch eine böse Falle: Das Format, in dem security antwortet,...
    • hubi: Am einfachsten Du öffnest im AppleScript-Editor mal das Funktionsverzeichnis (unter Ablage) von iTunes. Ein...