0 votes

Enregistrer automatiquement les pièces jointes dans Mail.app dans 10.8 Mountain Lion

J'essaie d'enregistrer automatiquement todo e-mail envoyé à une adresse (appelons-la test@example.com ) dans ce dossier /Users/luomat/Dropbox/Incoming/e2w/ (où /Users/luomat = $HOME ).

Voici la règle que j'utilise dans Mail.app :

enter image description here

J'ai créé une adresse électronique spéciale à cet effet, et je la récupère via POP3 à partir de Gmail. Le message est coloré en rouge et marqué comme lu, mais l'AppleScript ne semble pas fonctionner.

J'ai essayé deux pièces jointes AppleScript "Save Mail" que j'ai trouvées en ligne, mais aucune ne fonctionne.

(Vous pouvez les trouver sur http://share.luo.ma/temp/mail-app-applescript/ si vous voulez les voir.)

Je me demande si les règles de Sandboxing de Mail.app 10.8 ne l'empêchent pas de fonctionner, ou si je m'y prends mal. Je ne suis pas sûr de savoir comment dépanner AppleScript à partir des règles Mail.app, et je ne connais pas vraiment AppleScript, j'ai juste modifié ces deux scripts que j'ai trouvés en ligne pour correspondre à ce que je veux faire.

Voici ce que j'essaie d'accomplir (dans l'idéal) :

  1. Si l'e-mail est en texte brut, il suffit de sauvegarder le message dans /Users/luomat/Dropbox/Incoming/e2w/ en utilisant quelque chose comme "Subject Line from email address.txt".

  2. Si l'e-mail contient des pièces jointes, créez un dossier dans "/Users/luomat/Dropbox/Incoming/e2w/" en utilisant le sujet de l'e-mail comme nom de dossier, puis enregistrez le corps de l'e-mail en tant que texte dans ce dossier sous le nom "body.txt" et enregistrez les pièces jointes sous leur nom d'origine.

Note : après cet AppleScript, le dossier /Users/luomat/Dropbox/Incoming/e2w/ sera automatiquement traité et les fichiers seront déplacés hors de ce dossier en utilisant Hazel, donc je n'ai pas vraiment besoin de me soucier des collisions de noms de fichiers.

2voto

markhunte Points 11634

Essayez ça.

   using terms from application "Mail"
    on perform mail action with messages theMessages for rule theRule
        -- The folder to save the attachments in (must already exist)

        -- Save in a sub-folder based on the name of the rule in Mail

        set subFolder to name of theRule
        tell application "Finder"
            set attachmentsFolder to ((path to home folder as text) & "Dropbox:Attachments") as text
            if not (exists folder subFolder of folder attachmentsFolder) then
                make new folder at attachmentsFolder with properties {name:subFolder}
            end if
        end tell
        tell application "Mail"

            repeat with eachMessage in theMessages

                set {year:y, month:m, day:d, hours:h, minutes:min} to eachMessage's date sent
                set timeStamp to ("" & y & "-" & my pad(m as integer) & "-" & my pad(d) & "-" & my pad(h) & "-" & my pad(min))

                try
                    -- Save the attachment
                    repeat with theAttachment in eachMessage's mail attachments

                        set originalName to name of theAttachment
                        set savePath to attachmentsFolder & ":" & subFolder & ":" & timeStamp & " " & originalName
                        try
                            save theAttachment in file (savePath)
                        end try
                    end repeat

                    display dialog subFolder
                end try
            end repeat

        end tell
    end perform mail action with messages
end using terms from

-- Adds leading zeros to date components
on pad(n)
    return text -2 thru -1 of ("00" & n)
end pad

J'ai publié un article plus général sur l'enregistrement automatique des pièces jointes dans Mail.app sur mon site Web. blog

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X