Bonjour.

Je souhaite envoyer un volumineux mailing (bientôt 800 e-mails).

Pour le moment, ça fonctionne très bien via un script php lancé à l'aide de la fonction jquery ajax(). J'envoie 700 mails sans aucun problèmes en 30 minutes. Mais, dans peu de temps, quand une centaine de nouveaux souscripteurs se seront enregistré, le fichier php n'aura plus le temps d'envoyer tous les mails durant son temps d’exécution et les derniers souscripteurs de la liste vont tomber à la trappe. je n'ai pas non plus envie de pousser les réglages à fond et autoriser un script php qui bugerait subitement à tourner des heures durant avant qu'il ne soit arrêté par le système.

Donc, je me demandais si JQuery ajax() pouvait lancer mon script d'envoi envoimail.php deux fois de suite. Du côté php, c'est OK : envoimail.php doit juste recevoir le message de Jquery "c'est ton premier tour" pour qu'il envoie la première moitié des mails et recevoir le message "c'est ton deuxième tour" pour qu'il envoie l'autre moitié au deuxième lancement. Ce qui donnerait le temps au serveur d'envoyer deux fois plus de mails, mais en deux fois.

C'est au niveau de Jquery que j'hésite. Je pense à un truc du genre :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
 
$("#bouton").click(function(){
 
    $.ajax({
 
       url : 'envoimail.php',
 
       type : 'GET',
 
       data : 'envoi=0';    //signaler le premier envoi
 
 
       complete : function(){
 
           $.ajax({
 
              url : 'envoimail.php',
 
              type : 'GET',
 
              data : 'envoi=1'; //signaler le deuxième envoi
 
              success : function(code_html, statut){ 
 
              $(code_html).appendTo("#commentaires");
 
       }
 
 
       }
 
 
    });
 
 
});
Une fois que ajax() est complete, il renvoie un nouvel ajax() avec une nouvelle valeur lui disant que c'est son deuxième tour. Et si succes il envoie le message que le script à bien marché "C'est enovoyé!!".

A mon avis ça peut marcher. Mais quelque-chose me dit qu'il y a un truc plus élégant (comme on dit au pays).
N'y a-t-il pas truc un peu plus approprié plus propre (comme on dit dans le jargon) ?

Merci de votre lecture.