# ouvrir app depuis applescript



## emericrobert (5 Novembre 2010)

Bonjour,
je m'intéresse aux applescript depuis quelque temps et je m'amuse à automatiser des tâches.
Jai rencontré un problème que je trouve étrange.

l'idée est de lier le script a une règle Mail, 
le script déplacer la pièce jointe, puis ouvrira une application

quand j'exécute le scripte depuis l'éditeur de script l'application s'ouvre bien,
mais une fois que j'ai lié le script a une règle mail, seule la première partie du script fonction (enregistrer la pièce jointe)
l'application ne s'ouvre pas


```
using terms from application "Mail"
	on perform mail action with messages theMessages for rule theRule
		tell application "Mail"
			set numberOfMessages to count theMessages
			repeat with thisMessage in theMessages
				set theSubject to subject of thisMessage
				set theSender to sender of thisMessage
				try
					set nameOfAttachment to the name of the first mail attachment of thisMessage
					if nameOfAttachment ends with ".torrent" then
						set theFilename to "Mac HD::Users:emericrobert:Downloads" & nameOfAttachment
						save first mail attachment of thisMessage in theFilename

						tell application "Transmission"
							activate
						end tell

					end if
					my sendMail(theSender, "Success", nameOfAttachment)
				on error
					my sendMail(theSender, "Failure", nameOfAttachment)
				end try
			end repeat
		end tell
	end perform mail action with messages
end using terms from


on sendMail(theSender, theStatus, theAttachment)
	tell application "Mail"
		set newMessage to (make new outgoing message at end of outgoing messages)
		tell newMessage
			set visible to false
			make new to recipient at end of to recipients with properties {address:theSender}
			set subject to "Torrent Download " & theStatus & " (" & theAttachment & ")"
			send
		end tell
	end tell
end sendMail
```

je ne sais pas trop d'ou peu venir le problème
la dernière partie du code (qui envoi le message d'erreur) marche bien

je suis ouvert au suggestion

Merci d'avance


----------



## Anonyme (5 Novembre 2010)

Bonjour,

Mettre un tell application "xyz" dans le bloc  tell application *"Mail"*, peut générer une erreur.

Mets le dans une fonction :

```
if nameOfAttachment ends with ".torrent" then
						set theFilename to "Mac HD::Users:emericrobert:Downloads" & nameOfAttachment
						save first mail attachment of thisMessage in theFilename
						my opentransm()
					end if
					my sendMail(theSender, "Success", nameOfAttachment)
				on error
					my sendMail(theSender, "Failure", nameOfAttachment)
				end try
			end repeat
		end tell
	end perform mail action with messages
end using terms from

on opentransm()
	activate application "Transmission"
end opentransm
```


----------



## emericrobert (5 Novembre 2010)

Salut,
Merci pour le conseil,
solution simple et efficace,
sa marche.

il y a just un truc qui me derange,mais sa a plus trop rapport avec le sujet initiale
ce code marche parfaitement bien sur mon MBP, mais il ne marche pas sur mon MB pour qui il est destiné
dans les 2 cas, le nom d'utilisateur est le mm, les 2 ont l'application Transmission, la regle sous mail est la meme...
il commence a se faire tard, c'est peu-être ca le problème, je verrais ca en detail demain

encore merci


----------

