Aide Applescript

macman31

Membre confirmé
10 Mars 2008
31
3
TOULOUSE
mactrace.webnode.com
Bonjour,
Je tente de créer en Applescript la version Mac de ce logiciel (pour PC) : Où est mon PC ? (description : http://www.logitheque.com/fiche.asp?I=23873&L=O%F9+est+mon+PC%3F)

Voici mon code applescript actuel :



set theTime to (current date)
set hrs to (theTime) as string
copy words 5 thru 5 of (hrs as string) to hrs

set rapport to do shell script "/usr/sbin/traceroute google.fr"

property notHidden : true

tell application "Mail"


if notHidden then
tell application "Mail" to set visible of every window to false
set notHidden to false
else
tell application "Mail" to set visible of every window to true
set notHidden to true
end if


set newMessage to (make new outgoing message at end of outgoing messages with properties {subject:"Rapport Traceroute du : " & theTime, content:"Rapport traceroute en cas de vol" & return & return & return & rapport & return & return & return & "Voilà, application lancée : " & return & return & theTime})

tell newMessage
make new recipient at end of to recipients with properties {address:"
[email protected]"}

send newMessage

delay 5
quit application "Mail"

end tell

quit application "envoi traceroute mail"

end tell




(J'ai mis une fausse adresse mail.);)

Donc j'aimerai que l'utilisateur entre dans un fichier nommé "adresse mail.txt" l' adresse mail où il souhaiterai envoyer le rapport traceroute, et que l'applescript récupère l'adresse, et la mette à la place de "[email protected]", le fichier "adresse mail.txt" étant placé dans le même dossier que l'applescript.

Est-il aussi possible d'envoyer le mail sans passer par "Mail" ?
Je précise que c'est mon premier applescript.

Merci d'avance,:)
 
Salut,

Le plus simple, selon moi, serait de créer un progiciel et de mettre le fichier adresse mail.txt dans le dossier resource du paquet et au premier lancement afficher un dialogue pour la saisie de l'adresse.

Oui il est possible d'envoyer un mail sans l'aide de Mail.app, en utilisant la commande mail du terminal. Par contre je ne sais pas comment récupérer l'adresse de l'expéditeur sans utiliser Mail.app…

J'ai fait un applet, qui utilise Mail.app pour récupérer l'adresse de l'expéditeur, si ça peut te servir…
;)

Bloc de code:
property messTo : missing value
property theDate : missing value
property messSub : missing value
property rapport : missing value


on run
	set thefile to (path to resource "adresse mail.txt")
	set theDate to (current date)
	set messSub to ("Rapport Traceroute du : " & theDate)
	set messTo to readFile(thefile)
	set rapport to do shell script "/usr/sbin/traceroute google.fr"
	
	
	tell application "Mail"
		set messFrom to email addresses of first account
		quit
	end tell
	
	do shell script "echo " & (quoted form of rapport) & " | mail -s " & (quoted form of messSub) & " " & messTo & " -f " & messFrom
end run

on readFile(PathFile)
	try
		open for access PathFile
		set theAddress to read PathFile
		close access PathFile
	on error
		close access PathFile
		set theAddress to text returned of (display dialog "À quelle adresse souhaitez-vous envoyer les rapports ?" default answer "[email protected]" buttons "Ok" default button 1)
		writeFile(PathFile, theAddress)
	end try
	return theAddress
end readFile

on writeFile(PathFile, theData)
	set x to open for access file (PathFile as Unicode text) with write permission
	try
		set eof x to 0
		write theData to x
		close access x
	on error
		close access x
	end try
end writeFile



Note du modo : C'est un topic pour "Développement sur Mac, ça, pas pour "Applications" ! On y va.
 
Merci beaucoup, mais je n'es suis qu'à mes débuts en programmation, donc pourrai-tu m'expliquer comment créer un "progiciel"

J'ai aussi remarqué qu'applescript ne voulait pas compiler ton applet : (voir image)

probl%C3%A8me%20applet.jpg


Merci beaucoup.




PS : je ne voulait pas à avoir à passer par "Mail.app" pour ne pas à avoir à configurer de compte.
 
Merci beaucoup, mais je n'es suis qu'à mes débuts en programmation, donc pourrai-tu m'expliquer comment créer un "progiciel"
Il suffit de choisir "Progiciel" dans le menu déroulant de la fenêtre d'enregistrement du script.


Click for full size - Uploaded with plasq's Skitch
J'ai aussi remarqué qu'applescript ne voulait pas compiler ton applet : (voir image)
Pas de problème chez moi…je ne comprends pas…:nailbiting:

Click for full size - Uploaded with plasq's Skitch

Merci beaucoup.


PS : je ne voulait pas à avoir à passer par "Mail.app" pour ne pas à avoir à configurer de compte.
Il faut donc modifier la procédure d'obtention de l'adresse expéditeur, je viens d'essayer en mettant l'adresse d'un amis et je pensais que le système allait bloquer l'envoi mais ce n'est pas le cas.
On peut donc mettre celle-ci dans une property en début de script et supprimer l'appel à l'application Mail.
rajoute :
Bloc de code:
property messFrom : "[email protected]"
et efface :
Bloc de code:
	tell application "Mail"
		set messFrom to email addresses of first account
		quit
	end tell
;)
 
Merci beaucoup pour toutes ces infos.

Je pense avoir trouvé la cause de l'erreur :

Fenêtre d'information du logiciel éditeur de script :

-----------------------------------------------------------------------------------------------------------------


Éditeur de scripts

2.0 (v43.1)

AppleScript FU1-1.9.3

Cette application permet de créer, de modifier et d’exécuter des scripts AppleScript ainsi que d’autres scripts basés sur le language OSA.

© Copyright 1997-2003. Apple Computer Inc.,

all rights reserved.

-----------------------------------------------------------------------------------------------------------------


J'ai remarqué sur un site que la version la plus récente d'Applescript est la version 2, or ma version est la 1.9.3 .

La date du copiright me parait aussi un peut vieille ( 2003 ).

Je tient à préciser que je suis sous panther ( 10.3.9 )

Je voudrai savoir quelle est la commande qui remplace " set thefile to (path to resource "adresse mail.txt") " pour ma version d'Applescript.

Je voudrais aussi faire remarquer qu'au lieu d'enregistrer en "progiciel", j'ai enregistrer en "lot d'applications", car l'option "progiciel" n'apparait pas dans ma version d'éditeur de script, mais l'option me semble la même ( l'option "afficher le contenu du paquet" apparait lors d'un ctrl-clic sur l'application, et il y a bien un dossier "Resources" dans le dossier "Contents"


Voilà, merci d'avance pour la réponse à mes questions.

P.S. : je peut reprendre le nom "MacTrace" pour mon logiciel ?
 
Re-bonjour :

J'ai fait une recherche, et je suis tombé sur cette commande : " ((path to me as text) & "Contents:Resources:adressemail.txt") " qui remplace la commande " (path to resource "adresse mail.txt") " :):)

éditeur de script compile bien ce passage, mais dans la foulée, il ne reconnaît pas " readfile(thefile) " (il met "readfile" en vert ( il le reconnait comme une variable) et "thefile" aussi. :(
J'ai donc mis des espaces, ce qui donne "read file (thefile)", il met bien "read file" en bleu (instruction), mais là, il me dit, lors de l'exécution du "progiciel" :

"end of file error" :(

Il y a aussi marqué plusieurs fois readfile et writefile, ou j'ai donc mis des espaces ( read file et write file )

Il me met, au "read file (Pathfile)" :

----------------------------
Erreur de syntaxe

file (PathFile) est illégal en tant que paramètre formel.
-------------------------------

et il garde read et file en vert.:mouais:

Je remet "readfile(Pathfile)", et la il fait le même message d'erreur pour "write file (PathFile, theData)"

Voilà, j'en suis là. :(

Merci pour toutes vos réponces futures. :zen:


PS : Merci au modo :modo: qui a déplacé le post, je n'avais pas vu la catégorie.
 
En cherchant un peut sur internet, je suis tombé sur cette commande : "

set foo to (open for access (POSIX file PathFile))
set theAdress to (read foo for (get eof foo))
close access foo


", qui remplace : "

open for access PathFile
set theAddress to read PathFile
close access PathFile

", et j'ai mis " set messTo to read file (thefile) " au lieu de " set messTo to readfile(thefile) ".


La compilation fonctionne, j'exécute le script et au bout d'un moment il s'arrête, mais a aucun moment il n'a affiché un message d'erreur, et il ne ma jamais demandé l'adresse du destinataire.

Si je met mon adresse mail dans le fichier "adresse mail.txt, il m'envoie le rapport traceroute, mais sinon il a l'air de l'envoyer à personne, car il n'y a aucune adresse mail dans le fichier, et il n'y met pas l'adresse par défaut.

Voilà, j'en suis là, est-ce que vous pourriez me dire comment faire pour qu'il demande l'adresse mail ?

Voici mon script pour l'instant :

Bloc de code:
property messFrom : "[email protected]"
property messTo : missing value
property theDate : missing value
property messSub : missing value
property rapport : missing value


on run
    set thefile to (path to me as text) & "Contents:Resources:adresse mail.txt"
    set theDate to (current date)
    set messSub to ("Rapport Traceroute du : " & theDate)
    set messTo to read file (thefile)
    set rapport to do shell script "/usr/sbin/traceroute google.fr"
    
    
    do shell script "echo " & (quoted form of rapport) & " | mail -s " & (quoted form of messSub) & " " & messTo & " -f " & messFrom

end run

on readfile(PathFile)
    try
       set foo to (open for access (POSIX file PathFile))
        set theAdress to (read foo for (get eof foo))
        close access foo
    on error
        close access PathFile
        set theAddress to text returned of (display dialog "À quelle adresse souhaitez-vous envoyer les rapports ?" default answer "[email protected]" buttons "Ok" default button 1)
        writeFile(PathFile, theAddress)
    end try
    return theAddress
end readfile

on writeFile(PathFile, theData)
    set x to open for access file (PathFile as Unicode text) with write permission
    try
        set eof x to 0
        write theData to x
        close access x
    on error
        close access x
    end try
end writeFile
(j'ai brouillé l'adresse mail)

Merci beaucoup,
 
En cherchant un peut sur internet, je suis tombé sur cette commande : "

set foo to (open for access (POSIX file PathFile))
set theAdress to (read foo for (get eof foo))
close access foo


", qui remplace : "

open for access PathFile
set theAddress to read PathFile
close access PathFile

", et j'ai mis " set messTo to read file (thefile) " au lieu de " set messTo to readfile(thefile) ".


La compilation fonctionne, j'exécute le script et au bout d'un moment il s'arrête, mais a aucun moment il n'a affiché un message d'erreur, et il ne ma jamais demandé l'adresse du destinataire.

Si je met mon adresse mail dans le fichier "adresse mail.txt, il m'envoie le rapport traceroute, mais sinon il a l'air de l'envoyer à personne, car il n'y a aucune adresse mail dans le fichier, et il n'y met pas l'adresse par défaut.

Voilà, j'en suis là, est-ce que vous pourriez me dire comment faire pour qu'il demande l'adresse mail ?

Voici mon script pour l'instant :

Bloc de code:
property messFrom : "[email protected]"
property messTo : missing value
property theDate : missing value
property messSub : missing value
property rapport : missing value


on run
    set thefile to (path to me as text) & "Contents:Resources:adresse mail.txt"
    set theDate to (current date)
    set messSub to ("Rapport Traceroute du : " & theDate)
    set messTo to read file (thefile)
    set rapport to do shell script "/usr/sbin/traceroute google.fr"
    
    
    do shell script "echo " & (quoted form of rapport) & " | mail -s " & (quoted form of messSub) & " " & messTo & " -f " & messFrom

end run

on readfile(PathFile)
    try
       set foo to (open for access (POSIX file PathFile))
        set theAdress to (read foo for (get eof foo))
        close access foo
    on error
        close access PathFile
        set theAddress to text returned of (display dialog "À quelle adresse souhaitez-vous envoyer les rapports ?" default answer "[email protected]" buttons "Ok" default button 1)
        writeFile(PathFile, theAddress)
    end try
    return theAddress
end readfile

on writeFile(PathFile, theData)
    set x to open for access file (PathFile as Unicode text) with write permission
    try
        set eof x to 0
        write theData to x
        close access x
    on error
        close access x
    end try
end writeFile
(j'ai brouillé l'adresse mail)

Merci beaucoup,
Bonjour

zacromatafalgar t'as indiqué la façon d'utiliser les 2 routines en dessous du code run.

Au premier coup d'œil elle ne servent à rien dans ton code puisque tu les by-passe.

@+
 
P.S. : je peut reprendre le nom "MacTrace" pour mon logiciel ?
Pas de problème… ;)

J'ai fait une recherche, et je suis tombé sur cette commande : " ((path to me as text) & "Contents:Resources:adressemail.txt") " qui remplace la commande " (path to resource "adresse mail.txt") " :):)
Il y a un moment que j'ai laissé tombé Panther, l'essentiel est que tu aies trouvé…

éditeur de script compile bien ce passage, mais dans la foulée, il ne reconnaît pas " readfile(thefile) " (il met "readfile" en vert ( il le reconnait comme une variable) et "thefile" aussi. :(
J'ai donc mis des espaces, ce qui donne "read file (thefile)", il met bien "read file" en bleu (instruction), mais là, il me dit, lors de l'exécution du "progiciel" : eof error
Il est normal que les appels aux fonctions soient en vert, si tu rajoutes des espaces la fonction n'est plus appelée.

En cherchant un peut sur internet, je suis tombé sur cette commande : "

set foo to (open for access (POSIX file PathFile))
set theAdress to (read foo for (get eof foo))
close access foo


", qui remplace : "

open for access PathFile
set theAddress to read PathFile
close access PathFile
Tu vas te retrouver avec une erreur car on fourni déjà un chemin de type Finder or tu essaie de le convertir de nouveau en type Finder (posix file), à la rigueur tu peux mettre :
Bloc de code:
set x to open for access pathFile
set theAdress to read x
close access x
cette syntaxe fonctionne peut être mieux sous Panther…
", et j'ai mis " set messTo to read file (thefile) " au lieu de " set messTo to readfile(thefile) ".
Encore une fois, ce n'est pas une bonne idée… ;)

La compilation fonctionne, j'exécute le script et au bout d'un moment il s'arrête, mais a aucun moment il n'a affiché un message d'erreur, et il ne ma jamais demandé l'adresse du destinataire.
C'est normal qu'il ne te demande pas l'adresse car tu as modifié l'appel à la fonction ("read file" pour "readFile")

J'ai retouché ton script et il fonctionne chez moi sur Leopard, après avoir mis une adresse normale pour messFrom…
Bloc de code:
property messFrom : "[email protected]"
property messTo : missing value
property theDate : missing value
property messSub : missing value
property rapport : missing value


on run
	set thefile to (path to me as text) & "Contents:Resources:adresse mail.txt"
	set theDate to (current date)
	set messSub to ("Rapport Traceroute du : " & theDate)
	set messTo to readFile(thefile)
	set rapport to do shell script "/usr/sbin/traceroute google.fr"
	
	
	do shell script "echo " & (quoted form of rapport) & " | mail -s " & (quoted form of messSub) & " " & messTo & " -f " & messFrom
	
end run

on readFile(PathFile)
	try
		set foo to (open for access (PathFile))
		set theAddress to (read foo)
		close access foo
	on error
		close access foo
		set theAddress to text returned of (display dialog "À quelle adresse souhaitez-vous envoyer les rapports ?" default answer "[email protected]" buttons "Ok" default button 1)
		writeFile(PathFile, theAddress)
	end try
	return theAddress
end readFile

on writeFile(PathFile, theData)
	set x to open for access file (PathFile as Unicode text) with write permission
	try
		set eof x to 0
		write theData to x
		close access x
	on error
		close access x
	end try
end writeFile
 
Bonjour

zacromatafalgar t'as indiqué la façon d'utiliser les 2 routines en dessous du code run.

Au premier coup d'œil elle ne servent à rien dans ton code puisque tu les by-passe.

@+
Salut,

Si si, elles sont bien utilisées…
readFile est utilisée au début du bloc run, à l'initialisation des variables (set messTo to readFile(thefile)) et writeFile dans la fonction readFile() lors de l'inscription de l'adresse du destinataire… ;)
 
Salut,

Si si, elles sont bien utilisées…
readFile est utilisée au début du bloc run, à l'initialisation des variables (set messTo to readFile(thefile)) et writeFile dans la fonction readFile() lors de l'inscription de l'adresse du destinataire… ;)
Je prend en route, donc j'ai regardé son code j'ai bien vue que le tien doit fonctionner mais le sien en Read File ce sont des mots clés et pas une variable.

Ce que j'ai compris de son code c'est qu'il va lire le fichier directement sans passer par la routine de lecture de ce dernier.

Donc les routines Read et Write sont inutilisés par lui mais pas par toi.

Je voie ce code d'une façon différente (c'est ce que permet AS pour l'écriture), tu permet que je fasse une version pour moi (je vais adapter ton code a ma façon d'utiliser mes applications)?

Que ce soit le script qui contrôle tout, y compris la création du fichier texte si il n'existe pas.

Cordialement
 
Je prend en route, donc j'ai regardé son code j'ai bien vue que le tien doit fonctionner mais le sien en Read File ce sont des mots clés et pas une variable.

Ce que j'ai compris de son code c'est qu'il va lire le fichier directement sans passer par la routine de lecture de ce dernier.

Donc les routines Read et Write sont inutilisés par lui mais pas par toi.
Et c'est bien pour ça que son script ne lui demande jamais de saisir l'adresse…
Je voie ce code d'une façon différente (c'est ce que permet AS pour l'écriture), tu permet que je fasse une version pour moi (je vais adapter ton code a ma façon d'utiliser mes applications)?
Bien sûr… ;)
 
Merci pour toutes ces réponses, le script se compile bien et fonctionne la première fois ( il me demande bien l'adresse et crée bien le fichier "adresse mail.txt", mais lors de la seconde exécution, au bout d'un moment, il met un message d'erreur (voir image) :

MacTrace%20erreur.jpg


alors qu'il est bien marqué "

mail -s " & (quoted form of messSub) & " " & messTo & " -f " & messFrom

".


Je précise que c'est mon premier applescript, que j'ai procédé "à taton" avec des morceaux de codes trouvés sur le web, et le code de zacromatafalgar, et que je n'avais aucune idée des erreurs que j'avais mises dans le code.

Je voudrais savoir quelle est donc la cause de l'erreur, et la solution.

Est-ce que je peux aussi diffuser le logiciel sur Internet ? ( une fois le problème résolu )

Encore merci,
 
Merci pour toutes ces réponses, le script se compile bien et fonctionne la première fois ( il me demande bien l'adresse et crée bien le fichier "adresse mail.txt", mais lors de la seconde exécution, au bout d'un moment, il met un message d'erreur (voir image) :

MacTrace%20erreur.jpg


alors qu'il est bien marqué "

mail -s " & (quoted form of messSub) & " " & messTo & " -f " & messFrom

".
Je n'arrive pas à reproduire l'erreur, je pense que c'est une incompatibilité avec Panther, il faudrait que tu testes le script sur Tiger ou Leopard…

Je précise que c'est mon premier applescript, que j'ai procédé "à taton" avec des morceaux de codes trouvés sur le web, et le code de zacromatafalgar, et que je n'avais aucune idée des erreurs que j'avais mises dans le code.
C'est pas mal pour un premier script, va faire un tour sur iScript.fr, tu y trouveras les bases… ;)

Je voudrais savoir quelle est donc la cause de l'erreur, et la solution.
Désolé mais je ne peux t'apporter de solution… :(

Est-ce que je peux aussi diffuser le logiciel sur Internet ? ( une fois le problème résolu )
Oui…

Si tu veux rajouter la création automatique du fichier dans le paquet, il faut rajouter :
Bloc de code:
	try
		thefile as alias
	on error
		do shell script "touch " & (quoted form of thefile)
	end try
en début de script, après la ligne
Bloc de code:
	set thefile to (path to me as text) & "Contents:Resources:adresse mail.txt"
 
Merci pour toute ton aide, zacromatafalgar.
J'ai vu que tu était sous leopard.
Si je trouve l'erreur ( ou toi ) ;) , pourras-tu tester le script ?

Sinon, j'aimerais assez que tu m'explique le fonctionnement de :

do shell script "echo " & (quoted form of rapport) & " | mail -s " & (quoted form of messSub) & " " & messTo & " -f " & messFrom


à quoi servent les guillemets ? la barre verticale devant "mail" ? le choix des variables est important, ou c'est l'ordre ?…



Si cela peut t'aider pour résoudre le problème, je précise qu'il crée automatiquement le fichier "adresse mail.txt" s'il n'existe pas, il me demande l'adresse mail, et il envoie bien le rapport.
Par contre, il ne l'envoie pas si on l'exécute sans avoir supprimé "adresse mail.txt". Il affiche le message d'erreur, comme s'il devait demander à chaque fois l'adresse mail. :mouais:

Est-ce un problème de lecture du fichier ?:confused:

Merci beaucoup, :zen:
 
Si je trouve l'erreur ( ou toi ) ;) , pourras-tu tester le script ?
Oui, il fonctionne déjà bien chez moi… :)

Sinon, j'aimerais assez que tu m'explique le fonctionnement de :
Bloc de code:
do shell script "echo " & (quoted form of rapport) & " | mail -s " & (quoted form of messSub) & " " & messTo & " -f " & messFrom


à quoi servent les guillemets ? la barre verticale devant "mail" ? le choix des variables est important, ou c'est l'ordre ?…

Les guillemets séparent les parties unix (qui seraient lettre pour lettre dans le terminal) et les parties applescript, dans le terminal les parties applescript seraient en dur.

La barre verticale ou pipe permet de passer le résultat de la commande echo à la commande mail.
Après je ne connais pas trop ce langage…et si des personnes compétentes remarquent des inexactitudes ou peuvent apporter des précisions, merci à elles…

Non, le choix du nom des variables importe peu pourvu que ces noms ne comportent ni espace, ni caractère accentué et qu'ils ne débutent pas par un chiffre en revanche l'ordre des variables est très important, supposons que tu inverses messTo et messFrom, le message sera envoyé à l'adresse de l'expéditeur.
Tu peux obtenir des précisions sur les commandes shell utilisées en ouvrant le terminal et tapant man suivi du nom de la commande, par exemple :
Bloc de code:
man mail

Si cela peut t'aider pour résoudre le problème, je précise qu'il crée automatiquement le fichier "adresse mail.txt" s'il n'existe pas, il me demande l'adresse mail, et il envoie bien le rapport.
Par contre, il ne l'envoie pas si on l'exécute sans avoir supprimé "adresse mail.txt". Il affiche le message d'erreur, comme s'il devait demander à chaque fois l'adresse mail. :mouais:

Est-ce un problème de lecture du fichier ?:confused:
Il faudrait remplacer la ligne
Bloc de code:
do shell script "touch " & (quoted form of thefile)
par
Bloc de code:
do shell script "touch " & (quoted form of POSIX path of thefile)
, ben oui, je l'ai oublié, honte à moi…

De plus je ne sais si, sous Panther, la ligne
Bloc de code:
thefile as alias
est bien reconnue, si la modification au dessus ne fonctionne pas, remplace la par :
Bloc de code:
tell application "Finder"
thefile as alias
end tell

;)

Edit : il me semble que la commande "open for access" créée le fichier s'il n'existe pas, on n'aurait dans ce cas pas besoin du bloc
Bloc de code:
	try
		thefile as alias
	on error
		do shell script "touch " & (quoted form of posix path of thefile)
	end try

edit 2 : ça marche sous Leopard mais est-ce cas sous Panther ?
 
J'ai l'erreur !!!!!!
En effet, j'ai exécuter la séquence d'envoi du mail sous Terminal, ( j'ai marqué des trucs bidons ) :

echo essai | mail -s essai [email protected] -f [email protected]


Le mail s'envoie sans problèmes.

J'ai supprimé "[email protected]", et voila le résultat :

echo essai | mail -s essai -f [email protected]
mail: You must specify direct recipients with -s, -c, or -b.

Ca ne vous rappelle pas quelque chose ? ;)

(pour ceux qui n'ont pas suivi, c'est le message d'erreur optenu sous Editeur de script.)

J'en conclus donc que c'est la lecture du fichier qui est en cause. l'applescript ne lirait pas ( ou pas correctement) le fichier avec l'adresse mail, donc le message ne peut être envoyé.
Mais à quel endroit du script ?


Au fait zacromatafalgar, le fichier "adresse mail.txt" se crée automatiquement sans la partie du code que tu m'as demandé d'ajouter. (avec aussi, mais bon…) donc tu as raison pour "open for access" qui crée le fichier manquant.

Je voudrais donc savoir si possible quel est le problème.

Merci pour vos réponses,

P.S. : à quoi sert :

on writeFile(PathFile, theData)
set x to open for access file (PathFile as Unicode text) with write permission
try
set eof x to 0
write theData to x
close access x
on error
close access x
end try
end writeFile
 
Je ne comprends plus rien…

J'ai rajouté " display dialog messTo" après " set rapport to do shell script "/usr/sbin/traceroute google.fr" ", donc juste avant l'envoi du message, et dans le dialogue, il m'affiche ……… l'adresse mail du destinataire ! :eek:

Ce n'est donc pas un problème de lecture de fichier, c'est à mon avis un problème du shell d'envoi du message. Pourtant, il devrait l'envoyer, car il y a bien l'adresse mail du destinataire !
On dirait qu'il arrête le shell et essaye d'envoyer le message avant "messTo"… :confused:

Si vous pouvez m'aider à résoudre cet obscur problème…:):zen:

P.S.: Merci à zacromatafalgar pour l'explication…
 
P.S. : à quoi sert :

on writeFile(PathFile, theData)
set x to open for access file (PathFile as Unicode text) with write permission
try
set eof x to 0
write theData to x
close access x
on error
close access x
end try
end writeFile

Cette routine écrit l'adresse du destinataire dans le fichier et est appelée, en cas d'erreur de la routine readFile, après la saisie de l'adresse.
 
Je ne comprends plus rien…

J'ai rajouté " display dialog messTo" après " set rapport to do shell script "/usr/sbin/traceroute google.fr" ", donc juste avant l'envoi du message, et dans le dialogue, il m'affiche ……… l'adresse mail du destinataire ! :eek:

Ce n'est donc pas un problème de lecture de fichier, c'est à mon avis un problème du shell d'envoi du message. Pourtant, il devrait l'envoyer, car il y a bien l'adresse mail du destinataire !
On dirait qu'il arrête le shell et essaye d'envoyer le message avant "messTo"… :confused:

Si vous pouvez m'aider à résoudre cet obscur problème…:):zen:

P.S.: Merci à zacromatafalgar pour l'explication…

Je pense à une incompatibilité soit de ta version d'applescript ou bien de Panther…

Pourrais-tu poster ton code en entier ou bien me l'envoyer à [email protected]
;)