applescriptComme promis je vais vous montrer l’utilisation d’AppleScript avec Mail avec un script que j’ai trouvé assez rapidement et qui permet de sauvegarder les documents joints (PDF) d’un email dans un dossier sur votre Mac. En allant dans les préférences de Mail et sur l’onglet Règles, vous pouvez définir une règle de message. C’est à dire un comportement que doit adopter Mail en recevant tel message. Par exemple vous pouvez dire que les messages reçus ayant pour objet « pièce jointe » adopte une action précise (déplacement dans un dossier, vers la poubelle, etc…). Dans notre cas nous allons dire à Mail d’exécuter un script AppleScript. Ce script va sauvegarder le fichier PDF joint dans le dossier « joint » du bureau. Voici le code :

property destinationFolder : (path to desktop as Unicode text) & « Joint: »

using terms from application « Mail »

on perform mail action with messages theMessages for rule theRule

tell application « Mail »

repeat with eachMessage in theMessages

repeat with thisAttachment in eachMessage’s mail attachments

if (MIME type of thisAttachment) is equal to « application/pdf » then

set thisFile to destinationFolder & name of thisAttachment

save thisAttachment in thisFile

end if

end repeat

end repeat

end tell

end perform mail action with messages

end using terms from

La première ligne déclare simplement une propriété. destinationFolder contient simplement le chemin pour aller au Bureau (path to desktop as Unicode text) concaténé avec « Joint: » qui est notre dossier sur le bureau. N’oubliez pas les « : » car le chemin du dossier est au format Posix. Les deux lignes suivantes sont olbigatoires dans le cas d’une règle avec Mail, ils sont à mettre dans tous les scripts que vous utiliserez pour des règles de Mail. Le script reçoit une liste de message, il faut donc traiter tous les messages reçus (repeat with eachMessage in theMessages). Avec l’instruction repeat nous traitons tous les messages et dans notre boucle, eachMessage contient le message courant parmi la liste. Dans chaque message nous pouvons avoir plusieurs fichiers joints, si ce n’est pas le cas pour vous il suffit d’écrire :

set thisAttachment to eachMessage’s mail attachment

On regarde ensuite si le MIME TYPE est du type PDF, cette étape n’est pas nécessaire si vous le désirez. Si vous voulez par exemple ne sauvegardez que les fichiers joints JPG, consultez tous les MIME TYPE sur ce site http://www.mimetype.org/ pour trouver le bon MIME TYPE. Enfin pour finir, on définit la variable thisFile comme étant la concaténation de destinationFolder et du nom du fichier joint. L’instruction suivante sauvegarde simplement le fichier joint dans le dossier de destination.

Voilà vous pouvez vous servir du script tel quel ou le modifié à votre guise pour vos besoins personnels. Dans tous les cas il m’a bien dépanné et je vous montrerais la suite de mon objectif qui était d’imprimer les fichiers PDF reçus par email en fichier joint.