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

EDI, CMS, Outils, Scripts et API PHP Discussion :

[Newsletter] Envoi par paquet


Sujet :

EDI, CMS, Outils, Scripts et API PHP

  1. #1
    Invité
    Invité(e)
    Par défaut [Newsletter] Envoi par paquet
    Bonjour

    Je suis en train de bosser sur un script de newsletter très simple et qui fonctionne très bien !
    J'utilise la classe phpmailer qui a mon sens est bien.
    Seulement maintenant je voudrais faire un envoi par paquet de 50 mails, et là je ne sais plus comment faire !

    Voiçi le code :
    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
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
     
    <?php
    if(isset($_POST['message'])) {
    $fichier_message = $_POST['message'] .'<p><br /><br /><a href="http://www.informadream.fr/FFMC/newsletter.php">Cliquez ici pour gérer votre abonnement à la newsletter</a></p>';
    //------------------------------------------------------------------------------------
    $liste_vrac = mysql_query('SELECT COUNT(*) FROM newsletter');
    $h = ceil(mysql_result($liste_vrac,0));// /3
     
    for ($i=0, $j=1, $h; $j<=$h; $j++) {
    	$liste_vrac = mysql_query("SELECT email FROM newsletter LIMIT {$i}, 3");
    	$liste = 'contact@forumffmc.com';
    		while ($donnees = mysql_fetch_assoc($liste_vrac)) {
    			$liste .= ','; 
    			$liste .= $donnees['email'];
    		}
    		$message = $fichier_message;
    		$destinataire = $liste;
    		$date = date("d/m/Y");
    		$mail = new PHPmailer();
    		$mail->IsHTML(true);
    		$mail->From='contact@forumffmc.com';
    		$mail->AddAddress('contact@forumffmc.com');
    		$mail->AddBCC($destinataire);
    		$mail->AddReplyTo('contact@forumffmc.com');	
    		$mail->Subject='Newsletter du '.$date;
    		$mail->Body=stripslashes($fichier_message);
    		if(!$mail->Send()){
    		  echo '<p align="center" style="color:#F00; font-weight:bold;">'.$mail->ErrorInfo.'</p>'; 
    		}
    		else{	  
    		  echo '<p align="center" style="color:#F00; font-weight:bold;">Newsletter envoyé avec succès !</p>';
    		}
    		mysql_query("INSERT INTO newsletter_text (id,message) VALUES('','".$fichier_message."')");
    	}
    	unset($mail);
    }
    ?>
    <form method="post" action="newsletter.php">
    <div align="center">
    <?php
    	//Apparaitre pour création
    	$oFCKeditor = new FCKeditor('message') ;
    	$oFCKeditor->ToolbarSet = 'Basic';
    	$oFCKeditor->Create() ;
    ?>
    <input type="submit" value="Envoyer la newsletter" />
    </div>
    </form>
    Comme vous pouvez le constater j'ai fait une boucle for pour faire des test mais ça ne fonctionne pas et je recoi le mail 3 fois, enfin rien de bon quoi !

    Merci

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Tu peux executer periodiquement un script qui lit 50 emails, envois les mails, marque le mail envoyé dans la base de donnée.

    Quand tu veux envoyer un nouvel newsletter, tu as juste a réinitialisé le status pour tous les emails.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Invité
    Invité(e)
    Par défaut
    merci
    mais là c'est un peu complexe pour moi !
    un exemple
    J'ai repris mon code initial et voilà ce que j'ai pondu :
    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
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
     
    <?php
    if(isset($_POST['message'])) {
    $fichier_message = $_POST['message'] .'<p><br /><br /><a href="http://www.informadream.fr/FFMC/newsletter.php">Cliquez ici pour gérer votre abonnement à la newsletter</a></p>';
    //------------------------------------------------------------------------------------
    $liste_vrac = mysql_query('SELECT COUNT(*) FROM newsletter');
    $total = mysql_fetch_row($liste_vrac);
    $total = $total[0];
    $numpaquet=1;
    $nb=50;
    $nbpaquet=ceil($total/$nb);
    for ($i=1;$i<=$nbpaquet;$i ++) {
    	$liste_vrac = mysql_query("SELECT email FROM newsletter LIMIT {$i}, 3");
    	$liste = 'contact@forumffmc.com';
    		while ($donnees = mysql_fetch_assoc($liste_vrac)) {
    			$liste .= ','; 
    			$liste .= $donnees['email'];
    		}
    		$message = $fichier_message;
    		$destinataire = $liste;
    		$date = date("d/m/Y");
    		$mail = new PHPmailer();
    		$mail->IsHTML(true);
    		$mail->From='contact@forumffmc.com';
    		$mail->AddAddress('contact@forumffmc.com');
    		$mail->AddBCC($destinataire);
    		$mail->AddReplyTo('contact@forumffmc.com');	
    		$mail->Subject='Newsletter du '.$date;
    		$mail->Body=stripslashes($fichier_message);
    		if(!$mail->Send()){
    		  echo '<p align="center" style="color:#F00; font-weight:bold;">'.$mail->ErrorInfo.'</p>'; 
    		}
    		else{
    		  echo '<p align="center" style="color:#F00; font-weight:bold;">Newsletter envoyé avec succès !</p>';
    		  $nbenvoi = $nbenvoi+1;
    		}
    	}
    	$numpaquet++;
        sleep(1);
    	unset($mail);
    	mysql_query("INSERT INTO newsletter_text (id,message) VALUES('','".$fichier_message."')");
    }
     
    ?>
    <form method="post" action="newsletter.php">
    <div align="center">
    <?php
    	//Apparaitre pour création
    	$oFCKeditor = new FCKeditor('message') ;
    	$oFCKeditor->ToolbarSet = 'Basic';
    	$oFCKeditor->Create() ;
    ?>
    <input type="submit" value="Envoyer la newsletter" />
    </div>
    </form>
    Dernière modification par Invité ; 22/05/2010 à 14h47.

Discussions similaires

  1. [Newsletter] Envoi de mail en masse par paquet en PHP
    Par wouha dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 4
    Dernier message: 09/01/2014, 18h32
  2. [Newsletter] envoi mail par paquet
    Par fredhot dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 1
    Dernier message: 20/10/2010, 01h10
  3. [Newsletter] Envoi par paquet
    Par Invité dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 3
    Dernier message: 04/09/2009, 16h16
  4. envoi de paquets UDP par wifi
    Par gdpasmini dans le forum Développement
    Réponses: 4
    Dernier message: 08/11/2006, 19h15
  5. [Mail] newsletter, envoi de mail par lot
    Par jexl dans le forum Langage
    Réponses: 9
    Dernier message: 08/09/2005, 16h44

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