Hello, oui j'y ai penséOk content pour toi !
Edit: J'y pense , j'espère que tu as pensé à renseigner le "sujet", dans le script il inscrit "sujet" c'est pas très original ...
Re,Ok
Je reste à dispo si besoin !
Bye
Oki top, non pas de pièce jointe uniquement du texte.Tu peux effectivement mettre un délai entre chaque envoi, je ne suis pas convaincu que cela empêche le problème, mais rien n'empêche d'essayer. Les mails sont envoyés quand même ? . y a t'il des pièces jointes ou juste ton texte?
Pour mettre un délai il faut ajouter une ligne, juste après les lignes" Send newmessage" et "set nbmessage to nbmessage + 1 --compte le nombre de message envoyé" , tu ajoutes : "delay x" (x en secondes)
Hello, petite remontée, le script porte ses fruits. En revanche petite problématique au niveau de Mail Mac au bout d'un moment les envois se stoppent et reste dans la boite d'envoi. Penses tu qu'il y a une solution à cette problématique ?Donc un délai ne servira à rien, sinon que au lieu que ce soit l'appli mail qui attende, ce sera le script qui attendra !...
Bonjour,
Lorsque mail bloque, il y a combien de mails dans la boite d'envoi ?
Je vois 3 possibilités (à tester !)
1 - Programmer l'envoi des mails par plus petits paquets (par exemple 5 vagues de 10 mails) chaque vagues espacée de xx minutes xx en fonction de la vitesse d'envoi de mail (dépend de la machine et de la connexion) là faut faire des essais pour déterminer la bonne cadence.
2 - Dans le programme mettre un délai entre chaque envoi de mail (idem délai à déterminer en fonction de la vitesse d'envoi).
3- Dans le programme, attendre avant d' envoyer le mail suivant que la boite d'envoi soit vide (cette solution va allonger le temps des envois). En effet le test de vérification du contenu de la boite d'envoi va tourner en boucle et ralentir l'exécution.
Je n'ai testé aucune de ces solutions ! (d'autant que je n'utilise pas mail, mais outlook)
tell newMessage
set toaddresslist to {lemail} -- prépare l'adressed'envoi
make new to recipient at end of to recipients with properties {address:toaddresslist} -- envoi le mail
--Ajout pièces jointes
set PieceJointe_list to {"Macintosh HD:Users:Nom_utilisateur:desktop:mapiecejointe 1.pdf"} & {"Macintosh HD:Users:Nom_utilisateur:desktop:mapiecejointe 1.pdf"}
repeat with nbpj from 1 to count PieceJointe_list
set mapj to item nbpj of PieceJointe_list as alias
tell content of newMessage to make new attachment with properties {file name:mapj} at after last paragraph
end repeat
--Fin de l'ajout
end tell
send newMessage
set nbmessage to nbmessage + 1 --compte le nombre de message envoyé
end tell
Hello,Bonjour,
Normalement pas de problème pour joindre 1 ou plusieurs pièces jointes.
Il suffit de l'ajouter avant l'envoi.
Je te joins l' ajout à faire dans le bloc "tell newMessage", j'ai mis dans l'exemple pour 2 pièces jointes.
Il faudra adapter les adresses de ces documents !
Dans le code j'ai englobé une partie du code existant.
Merci d'avance pour ton retour...
Bloc de code:tell newMessage set toaddresslist to {lemail} -- prépare l'adressed'envoi make new to recipient at end of to recipients with properties {address:toaddresslist} -- envoi le mail --Ajout pièces jointes set PieceJointe_list to {"Macintosh HD:Users:Nom_utilisateur:desktop:mapiecejointe 1.pdf"} & {"Macintosh HD:Users:Nom_utilisateur:desktop:mapiecejointe 1.pdf"} repeat with nbpj from 1 to count PieceJointe_list set mapj to item nbpj of PieceJointe_list as alias tell content of newMessage to make new attachment with properties {file name:mapj} at after last paragraph end repeat --Fin de l'ajout end tell send newMessage set nbmessage to nbmessage + 1 --compte le nombre de message envoyé end tell
tell application "Finder"
set chemin to ((path to home folder) & "documents:script mail:liste.numbers") as string
open chemin
activate
delay 3
end tell
tell application "Numbers"
tell table 1 of sheet 1 of document "liste.numbers" -- voir document numbers
set CR to (ASCII character 13) -- initialise un retour ligne
set blabla to value of cell "B1" -- récupère le texte de la cellule E1
set leslignes to 2 -- initialise le numéro de la première ligne des clients
set nbmessage to 0
repeat
if nbmessage = 50 then exit repeat -- stop si 50 messages
repeat
set celtest to "B" & leslignes as string
set letest to value of cell celtest -- controle si mail déja envoyé
if letest = "X" then
set leslignes to leslignes + 1
else
exit repeat
end if
end repeat
set celmail to "A" & leslignes as string
set lemail to value of cell celmail as string -- recupère le nom
if lemail = "missing value" then -- vérifie si la derniere ligne
exit repeat
end if
tell application "Mail"
set contenu to "Bonjour, " & CR & CR & blabla -- prépare le contenu du mail
set newMessage to make new outgoing message with properties {subject:"test", content:contenu} -- prépare le mail
tell newMessage
set toaddresslist to {lemail} -- prépare l'adressed'envoi
make new to recipient at end of to recipients with properties {address:toaddresslist} -- envoi le mail
--Ajout pièces jointes
set PieceJointe_list to {"documents:script mail:presentation.pdf"}
repeat with nbpj from 1 to count PieceJointe_list
set mapj to item nbpj of PieceJointe_list as alias
tell content of newMessage to make new attachment with properties {file name:mapj} at after last paragraph
end repeat
--Fin de l'ajout
end tell
send newMessage
set nbmessage to nbmessage + 1 --compte le nombre de message envoyé
end tell
tell application "Numbers"
tell table 1 of sheet 1 of document "liste.numbers"
set value of cell celtest to "X" -- renseigne numbers mail envoyé
end tell
end tell
set leslignes to leslignes + 1 -- prépare numéro ligne suivante
end repeat
end tell
save front document
quit
end tell
{"Macintosh HD:Users:Nom_utilisateur:documents:script mail:presentation.pdf"}
--Ajout pièces jointes
set cheminPJ to ((path to home folder) & "documents:script mail:presentation.pdf")
set PieceJointe_list to {cheminPJ}
repeat with nbpj from 1 to count PieceJointe_list
set mapj to item nbpj of PieceJointe_list as alias
tell content of newMessage to make new attachment with properties {file name:mapj} at after last paragraph
end repeat
--Fin de l'ajout
Merci j'ai effectué la modification, donc le mail par correctement mais il n'y a pas la PJ.Bonjour,
Le message signale qu'il ne trouve pas le fichier à cette adresse.
Il faut le chemin complet du fichier du genre:
Bloc de code:{"Macintosh HD:Users:Nom_utilisateur:documents:script mail:presentation.pdf"}
en remplacant: Macintosh HD par le nom de ton disque dur et Nom_utilisateur par le tiens.
tu peux aussi définir le chemin de la P.J. dans une variable.
Bloc de code:--Ajout pièces jointes set cheminPJ to ((path to home folder) & "documents:script mail:presentation.pdf") set PieceJointe_list to {cheminPJ} repeat with nbpj from 1 to count PieceJointe_list set mapj to item nbpj of PieceJointe_list as alias tell content of newMessage to make new attachment with properties {file name:mapj} at after last paragraph end repeat --Fin de l'ajout
--Ajout pièces jointes
tell application "Finder"
set cheminPJ to ((path to home folder) & "documents:script mail:presentation.pdf") as string
end tell
set PieceJointe_list to {cheminPJ}
repeat with nbpj from 1 to count PieceJointe_list
set mapj to item nbpj of PieceJointe_list as alias
tell content of newMessage to make new attachment with properties {file name:mapj} at after last paragraph
end repeat
--Fin de l'ajout
Hello, toujours le même problème. Dans le mail il n'y a pas la PJ et aucun message d'erreur.Le chemin n'est pas bon avec le nouveau script il faut le prendre dans un bloc tell finder! (erreur de ma part!)
Essai avec ce bloc!
Bloc de code:--Ajout pièces jointes tell application "Finder" set cheminPJ to ((path to home folder) & "documents:script mail:presentation.pdf") as string end tell set PieceJointe_list to {cheminPJ} repeat with nbpj from 1 to count PieceJointe_list set mapj to item nbpj of PieceJointe_list as alias tell content of newMessage to make new attachment with properties {file name:mapj} at after last paragraph end repeat --Fin de l'ajout
Dis moi si c'est bon !
Voila le code :Chez moi je viens de tester, ça fonctionne ! ?
ton fichier s'appelle bien "presentation.pdf" et il est bien au même endroit que ton fichier numbers ?
met ton code complet , que je puisse analyser ...?
tell application "Finder"
set chemin to ((path to home folder) & "documents:script mail:liste.numbers") as string
open chemin
activate
delay 3
end tell
tell application "Numbers"
tell table 1 of sheet 1 of document "liste.numbers" -- voir document numbers
set CR to (ASCII character 13) -- initialise un retour ligne
set blabla to value of cell "B1" -- récupère le texte de la cellule E1
set leslignes to 2 -- initialise le numéro de la première ligne des clients
set nbmessage to 0
repeat
if nbmessage = 50 then exit repeat -- stop si 50 messages
repeat
set celtest to "B" & leslignes as string
set letest to value of cell celtest -- controle si mail déja envoyé
if letest = "X" then
set leslignes to leslignes + 1
else
exit repeat
end if
end repeat
set celmail to "A" & leslignes as string
set lemail to value of cell celmail as string -- recupère le nom
if lemail = "missing value" then -- vérifie si la derniere ligne
exit repeat
end if
tell application "Mail"
set contenu to "Bonjour, " & CR & CR & blabla -- prépare le contenu du mail
set newMessage to make new outgoing message with properties {subject:"test", content:contenu} -- prépare le mail
tell newMessage
set toaddresslist to {lemail} -- prépare l'adressed'envoi
make new to recipient at end of to recipients with properties {address:toaddresslist} -- envoi le mail
--Ajout pièces jointes
tell application "Finder"
set cheminPJ to ((path to home folder) & "documents:script mail:presentation.pdf") as string
end tell
set PieceJointe_list to {cheminPJ}
repeat with nbpj from 1 to count PieceJointe_list
set mapj to item nbpj of PieceJointe_list as alias
tell content of newMessage to make new attachment with properties {file name:mapj} at after last paragraph
end repeat
--Fin de l'ajout
end tell
send newMessage
set nbmessage to nbmessage + 1 --compte le nombre de message envoyé
end tell
tell application "Numbers"
tell table 1 of sheet 1 of document "liste.numbers"
set value of cell celtest to "X" -- renseigne numbers mail envoyé
end tell
end tell
set leslignes to leslignes + 1 -- prépare numéro ligne suivante
end repeat
end tell
save front document
quit
end tell
tell application "Finder"
set chemin to ((path to home folder) & "documents:script mail:liste.numbers") as string
open chemin
activate
delay 3
end tell
tell application "Numbers"
set lafeuille to 1
set CR to (ASCII character 13) -- initialise un retour ligne
set nbmessage to 0
set leslignes to 2 -- initialise le numéro de la première ligne des clients
set lasuite to 1
repeat
tell table 1 of sheet lafeuille of document "liste.numbers" -- voir document numbers
set blabla to value of cell "B1" -- récupère le texte de la cellule E1
set leslignes to 2 -- initialise le numéro de la première ligne des clients
end tell
if nbmessage = 50 then exit repeat -- stop si 50 messages
tell table 1 of sheet lasuite of document "liste.numbers" -- voir document numbers
repeat
set celtest to "B" & leslignes as string
set letest to value of cell celtest -- controle si mail déja envoyé
if letest = "X" then
set leslignes to leslignes + 1
else
exit repeat
end if
end repeat
set celmail to "A" & leslignes as string
set celsuite to "A" & (leslignes + 1) as string
set suite to value of cell celsuite
set lemail to value of cell celmail as string -- recupère le nom
if lemail = "missing value" then -- vérifie si la derniere ligne
exit repeat
end if
end tell
tell application "Mail"
set contenu to "Bonjour, " & CR & CR & blabla -- prépare le contenu du mail
set newMessage to make new outgoing message with properties {subject:"test", content:contenu} -- prépare le mail
tell newMessage
set toaddresslist to {lemail} -- prépare l'adressed'envoi
make new to recipient at end of to recipients with properties {address:toaddresslist} -- envoi le mail
--Ajout pièces jointes
tell application "Finder"
set cheminPJ to ((path to home folder) & "documents:script mail:presentation.pdf") as string
end tell
set PieceJointe_list to {cheminPJ}
repeat with nbpj from 1 to count PieceJointe_list
set mapj to item nbpj of PieceJointe_list as alias
tell content of newMessage to make new attachment with properties {file name:mapj} at after last paragraph
end repeat
end tell
send newMessage
set nbmessage to nbmessage + 1 --compte le nombre de message envoyé
end tell
tell application "Numbers"
tell table 1 of sheet lasuite of document "liste.numbers"
set value of cell celtest to "X" -- renseigne numbers mail envoyé
if suite = "fin" then
set lasuite to lasuite + 1
set leslignes to 1
end if
end tell
end tell
set leslignes to leslignes + 1 -- prépare numéro ligne suivante
end repeat
save front document
quit
end tell
je viens d'essayer avec ton script et même soucis la PJ n'est pas prise en compte.Je te remets le script a moi complet, qui fonctionne chez moi.
Ton script ci-dessus fonctionne également chez moi (non compris la gestion de plusieurs feuilles)
Bloc de code:tell application "Finder" set chemin to ((path to home folder) & "documents:script mail:liste.numbers") as string open chemin activate delay 3 end tell tell application "Numbers" set lafeuille to 1 set CR to (ASCII character 13) -- initialise un retour ligne set nbmessage to 0 set leslignes to 2 -- initialise le numéro de la première ligne des clients set lasuite to 1 repeat tell table 1 of sheet lafeuille of document "liste.numbers" -- voir document numbers set blabla to value of cell "B1" -- récupère le texte de la cellule E1 set leslignes to 2 -- initialise le numéro de la première ligne des clients end tell if nbmessage = 50 then exit repeat -- stop si 50 messages tell table 1 of sheet lasuite of document "liste.numbers" -- voir document numbers repeat set celtest to "B" & leslignes as string set letest to value of cell celtest -- controle si mail déja envoyé if letest = "X" then set leslignes to leslignes + 1 else exit repeat end if end repeat set celmail to "A" & leslignes as string set celsuite to "A" & (leslignes + 1) as string set suite to value of cell celsuite set lemail to value of cell celmail as string -- recupère le nom if lemail = "missing value" then -- vérifie si la derniere ligne exit repeat end if end tell tell application "Mail" set contenu to "Bonjour, " & CR & CR & blabla -- prépare le contenu du mail set newMessage to make new outgoing message with properties {subject:"test", content:contenu} -- prépare le mail tell newMessage set toaddresslist to {lemail} -- prépare l'adressed'envoi make new to recipient at end of to recipients with properties {address:toaddresslist} -- envoi le mail --Ajout pièces jointes tell application "Finder" set cheminPJ to ((path to home folder) & "documents:script mail:presentation.pdf") as string end tell set PieceJointe_list to {cheminPJ} repeat with nbpj from 1 to count PieceJointe_list set mapj to item nbpj of PieceJointe_list as alias tell content of newMessage to make new attachment with properties {file name:mapj} at after last paragraph end repeat end tell send newMessage set nbmessage to nbmessage + 1 --compte le nombre de message envoyé end tell tell application "Numbers" tell table 1 of sheet lasuite of document "liste.numbers" set value of cell celtest to "X" -- renseigne numbers mail envoyé if suite = "fin" then set lasuite to lasuite + 1 set leslignes to 1 end if end tell end tell set leslignes to leslignes + 1 -- prépare numéro ligne suivante end repeat save front document quit end tell