IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

[Mail] envoi newsletter


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    107
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Décembre 2003
    Messages : 107
    Points : 51
    Points
    51
    Par défaut [Mail] envoi newsletter
    bonjour à tous,

    voilà je voudrais envoyer une newsletter, ma base compte environ 12000 personnes, mais tous le monde n'est pas concerné par l'envoi.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    $envoiparpaquetde='200';
    $personneconcerne = "SELECT email FROM i_newsletter WHERE formation = 'PS' AND NOnewsletter='1' AND email IS NOT NULL"; 
    $personneconcerne2 = mysql_query($personneconcerne );
    $personneconcerne3 = mysql_num_rows($personneconcerne );
    echo $personneconcerne3 /$envoipar;
    j'arrive donc à extraire le nombre de personne soit 3279 dans mon cas, mais je n'arrive pas à faire la suite du script.
    Je voudrais faire des envoi par paquet de 200 (soit 3279/200=16,... paquets)... comment faut il faire avec WHILE ?
    et je compte faire un sleep de 30 secondes entre chaque envoi...

    au secours....

  2. #2
    Expert éminent Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Points : 6 449
    Points
    6 449
    Par défaut
    Ce que j'ai fait dans le temps, c'est de mettre un flag supplémentaire dans la bd pour dire si on a envoyé ou pas la newsletter. je sélectionnais les users sans le flag par paquet de 200 => "SELECT . FROM . WHERE . LIMIT 200", j'envoyais le mail à ces utilisateurs, je positionnais le flag pour ceux-ci puis j'envoyait un message adhoc au browser avec un meta de redirection
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <meta http-equiv="refresh" content="nb_seconde;url=script.php">
    vers le script lui même, sauf si on avait fini (mysql_num_rows < 200)

    Hope this helps

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    107
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Décembre 2003
    Messages : 107
    Points : 51
    Points
    51
    Par défaut
    mais comment je peux lui dire en script de faire des paquets de 200 et d'envoyer tranquillement en faisant des pauses entre chaque envoi de paquet ????

  4. #4
    Expert éminent Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Points : 6 449
    Points
    6 449
    Par défaut
    fais gaffe, un script est limité par défaut à 30 secondes, il faudra alors que tu repousses cette limite !

    sinon ben tu fais un truc tu 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
     
    $envoiparpaquetde = 200 ;
    $sql = "SELECT email FROM i_newsletter WHERE formation = 'PS' AND NOnewsletter='1' AND email IS NOT NULL";
    $res = mysql_query($sql);
     
    $i = 0;
    $nb = mysql_num_rows($res); // = 3279
    while($i < $nb) {
       $bcc = array();
       for($j = 0 ; $j < $envoiparpaquetde && $i < $nb ; $j++) {
          $row = mysql_fetch_assoc($res);
          $bcc[] = $row['email'];
          $i++;
       }
       ...
       $header .= "Bcc: ".implode(',', $bcc)."\r";
       ...
       mail(...$header...);
       if ($i < $nb) {
          sleep(30);
       }
    }
    Un truc dans ce genre. Tu devrais passer par des classe d'envoi de mail toutes faites. hop !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Problème d'envoi de mails et newsletters sous Oscommerce
    Par napster007 dans le forum E-Commerce
    Réponses: 2
    Dernier message: 06/05/2010, 13h41
  2. [Mail] envoi Newsletter format HTML
    Par acidline dans le forum Langage
    Réponses: 6
    Dernier message: 13/08/2009, 15h54
  3. [Mail] envoi de mail pour la newsletter
    Par namstou3 dans le forum Langage
    Réponses: 2
    Dernier message: 20/12/2007, 15h09
  4. [Mail] Envoie de newsletter en masse, et pause dans l'envoi
    Par ChriGoLioNaDor dans le forum Langage
    Réponses: 1
    Dernier message: 10/02/2007, 16h23
  5. [Mail] Envoi d'une newsletter
    Par HelmutChacho dans le forum Langage
    Réponses: 1
    Dernier message: 03/04/2006, 14h00

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo