8768 sujets

Développement web côté serveur, CMS

Bonjour,

Je réalise un système d'envoi de liste de diffusion. L'envoi de mail fonctionne. J'aimerais faire une pause de 10 secondes après l'envoi de 200 mails et continuer après. J'ai essayé ceci (code ci-dessous) mais je n'ai pas le résultat espéré.

Je vous remercie.


// requête sql
$req = $db->prepare('SELECT email FROM table_client LIMIT 1000');
$req->execute() or die(print_r($req->errorInfo()));
$rows = $req->fetchAll();
 
$i = 0;
$j = 0;
 
foreach ($rows as $row[$i]) {
     if ($j >= 200) {  
          sleep(10); 
          $j = 0;
     }  
     $j++;
 
     $destinataire = $row[$i]['email'];
 
     $text_mail = "";
 
     // on démarre le buffer
     ob_start();
 
    // on lit le fichier newsletter.php
    include("newsletter.php");
 
   // on récupère la sortie de newsletter.php
   $text_mail = ob_get_contents();
 
   // on ferme le buffer
   ob_end_clean();
 
   mail($destinataire, $sujet_mail, $texte_mail, $headers);
}
$i++;

Modifié par artos17 (13 Jan 2017 - 15:26)