Récupération auto de P.J

Le Baron

Membre actif
17 Mars 2006
311
12
Genève
Hello,

Voilà je reçois régulièrement des mails contenant un fichier PDF, j'ai fait une règle dans mail pour que ces mail soient redirigé vers un dossier (BAL) avec en plus une couleur, bien jusque là :up:

J'aurais à présent voulus que la pièce jointe soit automatiquement sauvegardée dans un dossier de mon choix.

J'ai essayer de faire un script via automator puis de l'inclure dans ma règle mais rien ni fait.

La seul solution que j'ai trouvé est de sauvegarder l'action automator sous forme d'application et en sélectionnant les mails puis en les glissant dans le processus cela fonctionne.

Mais j'aurais bien aimé que cela soit automatique :mouais:

Si vous avez une piste merci d'avance :love:

Bonne keynote :)

Le Baron :cool:

P.S voici le script automator

http://snipr.com/4cmfz-dc3ys1
 
Salut,

J'ai fait un script qui envoie les pièces jointes dans un dossier test sur le bureau, le dossier est créé s'il n'existe pas.

Il te faut donc créé une règle avec pour condition "Une pièce jointe finit par .pdf" plus éventuellement une autre règle prenant en compte la provenance du mail ensuite choisir "Exécuter Applescript" puis sélectionner le script. Il fonctionne chez moi… ;)
Bloc de code:
using terms from application "Mail"
	on perform mail action with messages theMessages for rule theRule
		tell application "Mail"
			set targetFolder to my testFolder()
			repeat with eachMessage in theMessages
				repeat with PJ in mail attachments of eachMessage
					set {name:theName} to PJ
					try
						save PJ in (targetFolder as Unicode text) & theName
					end try
				end repeat
			end repeat
		end tell
	end perform mail action with messages
end using terms from

on testFolder()
	set thePath to (path to desktop as text)
	try
		return (thePath & "test:") as alias
	on error
		tell application "Finder" to make new folder at desktop with properties {name:"test"}
		return (thePath & "test:") as alias
	end try
end testFolder
 
Hello,

Super merci cela fonctionne mais quelle lignes dois-je modifier pour ces p.j aillent dans le dossier de mon chois ?

Je vais essayer à la truelle on verra bien :p

Merci A+

Le Baron
 
Hello,

Super merci cela fonctionne mais quelle lignes dois-je modifier pour ces p.j aillent dans le dossier de mon chois ?

Je vais essayer à la truelle on verra bien :p

Merci A+

Le Baron

Je l'ai modifié, il te suffit de mettre le chemin au début, dans la property… ;)
Bloc de code:
property thePath : ((path to desktop as text) & "test:") as string


using terms from application "Mail"
	on perform mail action with messages theMessages for rule theRule
		tell application "Mail"
			
			my testFolder()
			repeat with eachMessage in theMessages
				repeat with PJ in mail attachments of eachMessage
					set {name:theName} to PJ
					try
						save PJ in (thePath as Unicode text) & theName
					end try
				end repeat
			end repeat
		end tell
	end perform mail action with messages
end using terms from

on testFolder()
	tell application "Finder"
		if not (folder thePath exists) then
			do shell script "mkdir " & (quoted form of POSIX path of thePath)
		end if
	end tell
end testFolder
 
Soit mais je mets quoi ou ? le chemin devrait il ressembler a cela

Users/flo/Music/Cours de guitare en couleur/PDF

et si oui je le colle ou exactement ??

Désoler mais mais cela m'échappe un peu :siffle:

En tout cas merci de ta patience

Le Baron
 
Soit mais je mets quoi ou ? le chemin devrait il ressembler a cela

Users/flo/Music/Cours de guitare en couleur/PDF

et si oui je le colle ou exactement ??

Désoler mais mais cela m'échappe un peu :siffle:

En tout cas merci de ta patience

Le Baron

Le plus simple pour être sûr de mettre le bon chemin est de copier dans un script vierge le code
Bloc de code:
choose folder
puis de le lancer, tu obtiendras, dans la partie "Résultat" de la fenêtre, le chemin exact du dossier que tu auras sélectionné. Ce chemin sera de la forme :
Bloc de code:
"Leo:Users:zacro:Desktop:test:"
Tu le colleras dans la première ligne, ce qui donneras
Bloc de code:
property thePath : ("Leo:Users:zacro:Desktop:test:") as string
au lieu de
Bloc de code:
property thePath : ((path to desktop as text) & "test:") as string

Si tu as d'autres questions… ;)
 
Tu as des multitudes de sites ouaibe sur le sujet, avec des tutoriaux et tout ça : tape dans gougueul quelque chose comme bash tutorial, ou bash howto ou bash tutoriel (pour du français). Dès les premières pages, il y a des sites à visiter.

Si tu veux apprendre autre chose que bash, remplace-le par celui de ton choix :
- shells : zsh, csh (ou tcsh), ksh ...
- scripting : Perl, Ruby, Python, Lua, Rebol ...

Quant aux livres, mes préférés restent ceux de O'Reilly, que ce soit ceux dédiés aux langages eux-mêmes ou les ouvrages plus généraux sur Unix ou OS X.
 
J'oubliais : il y a de toutes façons les pages de manuel du système, que l'on peut voir dans le Terminal ou à l'aide de ouidjetts.
 
Puisque tu parles de ligne de commande : avec Tiger, le fait d'utiliser un AppleScript pour extraire la pièce jointe ne marchait pas bien ou pas du tout, en tous cas pas tout le temps (bug dans Mail).
Du coup j'ai monté une petite chaîne en utilisant fetchmail, procmail, bogofilter et un service POP3 local pour filtrer les messages, enregistrer les pièces jointes etc. ;)
Les joies d'UNIX, quoi !