Page 1 sur 1

Modification de l'extension GetAll de Thunderbird

Publié : 23 août 2004, 15:27
par Gillou
Bonjour bonjour,

Comme je l'ai dit sur le forum de TB il y a quelques jours, j'ai un petit souci avec l'extension GetAll de Thunderbird.
Cette extension permet en un clic de :
- relever le courrier de tous les comptes mail
- envoyer les messages en attente

Quand on regarde le code de l'extension, la définition du bouton comporte la ligne :

oncommand="GetMessagesForAllAuthenticatedAccounts();SendUnsentMessages();"/>

je débute complètement dans le domaine (c'est même la 1ère fois que j'ouvre une extension), mais je suppose que codé comme ça, il n'y a pas de notion de chronologie dans les actions : TB lance la réception de tous les comptes ET l'envoi des messages en même temps.

Ce comportement me gêne car mon serveur smtp refuse toute connexion si l'on ne s'est pas authentifié en pop auparavant. Autrement dit et suivant la vitesse de réponse des deux serveurs (pop et smtp) quand je fais "Get All Mail", parfois je suis authentifié POP et alors la connexion SMTP passe, mais parfois le serveur SMTP répond avant le POP, et alors je ne suis pas identifié POP et la connexion SMTP ne passe pas... J'espère avoir été clair dans l'explication de mon problème.

Logiquement, je cherche donc à modifier GetAll pour introduire une chronologie : d'abord l'identification POP et ensuite l'envoi SMTP. Pour l'instant je voudrais juste faire un truc tout bête du genre

Code : Tout sélectionner

action 1
THEN
action 2
Comment puis-je faire ? (après j'ai d'autres idées pour rendre le truc un peu plus efficace... mais au début je veux juste faire basiquement une chronologie toute simple)

Question subsidiaire : ai-je le droit de modifier comme ça une extension ?

Merci d'avance pour votre aide
Gillou

Publié : 23 août 2004, 16:08
par chBok
Tu peux mettre un sleep(durée); entre les deux fonctions appelées. La durée est calculées en millisecondes...

Pas terrible, mais bon.

Ensuite, tu peux modifier l'extension, mais il est toujours de bon ton d'en avertir l'auteur qui peux ensuite intégrer l'idée dans le développement de l'extension.

Re: Modification de l'extension GetAll de Thunderbird

Publié : 24 août 2004, 08:07
par Invité
Gillou a écrit :

Code : Tout sélectionner

action 1
THEN
action 2
Comment puis-je faire ?
Tu peux tenter de réécrire la première fonction et faire un appel a la seconde à la fin
http://lxr.mozilla.org/seamonkey/source ... ay.js#1935
Gillou a écrit :Question subsidiaire : ai-je le droit de modifier comme ça une extension ?
Elle est sous tri licence MPL 1.1/GPL 2.0/LGPL 2.1 donc tu peux si tu respectes les termes d'une des licences

Publié : 24 août 2004, 10:41
par jv2759
Sans modifier l'exention, tu est sur que tu ne peux pas ajouter une identification à ton smtp. Car souvant il offre les deux possibiliter, c'est a dire identification pop et identification smtp avec les même param que le pop...

Re: Modification de l'extension GetAll de Thunderbird

Publié : 24 août 2004, 23:47
par Gillou
Tu peux tenter de réécrire la première fonction et faire un appel a la seconde à la fin
Vi je pense que c'est le mieux, merci. Je vais essayer ça dès que j'aurai un peu de temps, je demanderai peut-être de l'aide sur le forum si ça marche pas... :oops:

Merci

Publié : 24 août 2004, 23:50
par Gillou
jv2759 a écrit :Sans modifier l'exention, tu est sur que tu ne peux pas ajouter une identification à ton smtp. Car souvant il offre les deux possibiliter, c'est a dire identification pop et identification smtp avec les même param que le pop...
En fait les identifications POP et SMTP se font avec exactement les mêmes login et mot de passe, tout ce qu'il faut c'est se connecter en POP avant de le faire en SMTP, dixit l'administrateur... :evil:

Publié : 25 août 2004, 00:00
par Gillou
chBok a écrit :Tu peux mettre un sleep(durée); entre les deux fonctions appelées. La durée est calculées en millisecondes...
bah j'ai essayé mais ça ne marche pas... t'es sûr de toi ?
J'ai fait

Code : Tout sélectionner

oncommand="GetMessagesForAllAuthenticatedAccounts();sleep(5000);SendUnsentMessages();"/>
pour attendre 5 secondes entre GetMessages et Send, mais en pratique TB relève bien le courrier mais il ne passe jamais à l'étape suivant d'envoi... la durée est-elle bien en ms ???

Publié : 25 août 2004, 07:24
par nmoreau
Gillou a écrit :
chBok a écrit :Tu peux mettre un sleep(durée); entre les deux fonctions appelées. La durée est calculées en millisecondes...
bah j'ai essayé mais ça ne marche pas... t'es sûr de toi ?
J'ai fait

Code : Tout sélectionner

oncommand="GetMessagesForAllAuthenticatedAccounts();sleep(5000);SendUnsentMessages();"/>
pour attendre 5 secondes entre GetMessages et Send, mais en pratique TB relève bien le courrier mais il ne passe jamais à l'étape suivant d'envoi... la durée est-elle bien en ms ???
sleep n'existe pas

essaie

Code : Tout sélectionner

setTimeout("SendUnsentMessages();",5000);

Publié : 25 août 2004, 10:22
par Gillou
nmoreau a écrit : essaie

Code : Tout sélectionner

setTimeout("SendUnsentMessages();",5000);
Oups... j'ai essayé et au démarrage suivant l'installation de la nouvelle extension TB m'affiche en rouge la ligne

Code : Tout sélectionner

oncommand="GetMessagesForAllAuthenticatedAccounts();setTimeout("SendUnsentMessages();",5000);"/>


dans une partie grisée en bas de la fenêtre des messages (j'ai fait une copie d'écran mais je sais pas comment l'insérer)
Manifestement il n'aime pas ma manip... je me suis gouré quelque part ?

Publié : 25 août 2004, 10:47
par bobo
Gillou a écrit :
nmoreau a écrit : essaie

Code : Tout sélectionner

setTimeout("SendUnsentMessages();",5000);
Oups... j'ai essayé et au démarrage suivant l'installation de la nouvelle extension TB m'affiche en rouge la ligne

Code : Tout sélectionner

oncommand="GetMessagesForAllAuthenticatedAccounts();setTimeout("SendUnsentMessages();",5000);"/>


dans une partie grisée en bas de la fenêtre des messages (j'ai fait une copie d'écran mais je sais pas comment l'insérer)
Manifestement il n'aime pas ma manip... je me suis gouré quelque part ?
Surement un problème de guillement. Essaie avec

Code : Tout sélectionner

setTimeout('SendUnsentMessages();',5000);

Publié : 25 août 2004, 22:07
par Gillou
bobo a écrit :Surement un problème de guillement
exactement, maintenant ça marche, merci ! :D