# Enregistrer automatiquement des pièces jointes dans un dossi



## tophe630 (11 Janvier 2010)

Bonsoir;

Je n'ai jamais fait d'Applescript, j'ai réussi à faire ce que je veux avec automator, mais pas totalement.

J'aimerais faire un script qui me rangerait les pièces jointe d'un e-mail dans un dossier spécifié.
Et je voudrais appeler ce script à l'aide d'une règle dans mail.

J'ai trouvé ce script en recherchant un peu:

*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*




*Il semblerait faire ce que je voudrais, mais ça ne fonctionne pas chez moi. Comme je suis débutant, je ne vois pas bien où est-ce que ça bloque. Pouriez-vous m'aider, merci.
*​


----------



## ceslinstinct (13 Janvier 2010)

tophe630 a dit:


> Bonsoir;
> 
> Je n'ai jamais fait d'Applescript, j'ai réussi à faire ce que je veux avec automator, mais pas totalement.
> 
> ...


Bonjour

Quand tu ouvre une pièce-jointe, elle est automatiquement mémorisée dans un dossier sur ton DD.

Avec Léopard 10.5.8 ça se trouve dans le dossier ta *petite maison/Library/Téléchargements Mail*

Il serais plus simple d'aller les chercher la je pense?

Défaut, il faut les lires pour qu'elles soit misent en mémoire.

Une action de dossier où autres pourrais les mémoriser dans des dossiers datés.

Une découverte que tu m'a fait faire pour voir si je pouvais répondre.

@+


----------



## tophe630 (13 Janvier 2010)

Je reçoit une fois par jour un document PDF, toujours du même destinataire, et à chaque fois, je suis obligé d'aller chercher ce document dans le dossier des téléchargements et de le transférer dans le bon dossier. Comme c'est quelque chose que je fais quotidiennement, j'aimerais bien simplifier les choses en le faisant faire automatiquement depuis une règle Mail, mais le problème c'est que cette action (enregistrer pièce jointe) n'existe pas dans les règles alors j'aimerais utiliser un Apple script vu que mail peut les utiliser.


----------



## ceslinstinct (13 Janvier 2010)

tophe630 a dit:


> Je reçoit une fois par jour un document PDF, toujours du même destinataire, et à chaque fois, je suis obligé d'aller chercher ce document dans le dossier des téléchargements et de le transférer dans le bon dossier. Comme c'est quelque chose que je fais quotidiennement, j'aimerais bien simplifier les choses en le faisant faire automatiquement depuis une règle Mail, mais le problème c'est que cette action (enregistrer pièce jointe) n'existe pas dans les règles alors j'aimerais utiliser un Apple script vu que mail peut les utiliser.


Bonsoir

Le dossier téléchargement de Mail à 2 défauts:
Il faut lire le fichier pour qu'il se trouve dans ce dossier.
Ce dossier se vide automatiquement quand tu quitte Mail.

J'ai écrit un code que je teste, ce qu'il fait:

Un chemin émetteur, un chemin récepteur et il déplace tous les fichiers de l'un dans l'autre (a une condition que l'extension soit *.pdf*)

8 lignes de code.

Si tu veut tester pour voir si ça peu t'aider à trouver une solution a ton problème tu me le dit.

@+


----------



## tophe630 (15 Janvier 2010)

Bonsoir

Merci de t'y interrésser.

Je veux bien essayer si tu as trouver quelque chose.


----------



## les_innommables66 (15 Janvier 2010)

Bonjour,

J'ai eu une préoccupation similaire, et ai fait un script qui fonctionne chez moi, (avec des critères différents de ce que tu recherches).
J'avais pas mal galéré pour que le script s'exécute sans faire planter mail...
Je peux te l'envoyer en privé si tu veux l'exploiter.

Sinon, n'hésite pas à donner des précisions sur ce qui ne fonctionne pas dans ce que tu as écrit (quels messages d'erreur, etc...)

Bon courage,
Nicolas


----------



## ceslinstinct (15 Janvier 2010)

tophe630 a dit:


> Bonsoir
> 
> Merci de t'y interrésser.
> 
> Je veux bien essayer si tu as trouver quelque chose.


Bonsoir

MP en route.

@+


----------



## barabas-ben-2 (17 Février 2010)

Bonjour,

ce script m'intéresserait aussi, vu que je je reçois quotidiennement des diffusions de doc en tout genre à classer.

Est-ce que la solution de "les_innommables66" est facilement utilisable?
Si oui, "les_innommables66" pourrais-tu la publier ou me la "prêter"?

Merci.

A+


----------



## ceslinstinct (17 Février 2010)

barabas-ben-2 a dit:


> Bonjour,
> 
> ce script m'intéresserait aussi, vu que je je reçois quotidiennement des diffusions de doc en tout genre à classer.
> 
> ...


Bonjour

Il faudrait avoir une idée de ce tu recherche.

Tu créer un dossier Pièces-jointes dans mail.
Tu créer une règle pour relever les pièces jointes voulues.

Avec Léopard 10.5.8
Elles devrais alors se trouver dans le dossier:
 ~: Bibliothèque:Mail:MailBoxesieces jointes.mbox:Messages:

C'est ce dossier qu'utilise le code pour faire le trie.

Maintenant faut savoir quel genre de trie tu recherche?

@+


----------



## les_innommables66 (14 Mars 2010)

barabas-ben-2 a dit:


> Est-ce que la solution de "les_innommables66" est facilement utilisable?
> Si oui, "les_innommables66" pourrais-tu la publier ou me la "prêter"?
> 
> Merci.
> ...



Avec un peu de retard, et sans aucune garantie...
Bon courage.



using terms from application "Mail"    
    on perform mail action with messages theMessages for rule theRule        
        tell application "Mail"                               
            set LeNomAttendu to "winmail.dat"
            set AutreNomsAttendus to {"Calendrier.csv", "Contacts.csv"}            
            set TheApplication to "imac:Applications:No more winmail.app"            
            set LeScriptAEuUnEffet to false
            set theOutputFolder to (path to desktop) as string

            repeat with eachMessage in theMessages                
                set theAttachments to every mail attachment of eachMessage
                repeat with eachAttachment in theAttachments                                      
                    set theAttachmentName to name of eachAttachment
                    try                        
                        if LeNomAttendu is equal to theAttachmentName then                            
                            set theSavePath to theOutputFolder & theAttachmentName
                            save eachAttachment in theSavePath
                            set theFile to theOutputFolder & theAttachmentName as string                                           alias theFile                           
                            tell application "Finder" to open file theFile using application file TheApplication
                            tell application "Finder" to move theFile to trash
                            set LeScriptAEuUnEffet to true
                        end if
                    end try
                    try
                        if theAttachmentName is in AutreNomsAttendus then                           
                            try
                                set LExtension to characters -3 thru -1 of theAttachmentName as string                              
                                set theAttachmentName to (characters 1 thru -4 of theAttachmentName as string) & "csv"
                            end try
                            set theSavePath to theOutputFolder & theAttachmentName
                            save eachAttachment in theSavePath
                            set LeScriptAEuUnEffet to true
                        end if                  
                    end try
                end repeat             
            end repeat            
            if LeScriptAEuUnEffet then
                do shell script {open application "Ouverture csv"}
            end if        
        end tell
    end perform mail action with messages    
end using terms from


----------

