Soyez le premier à donner votre avis sur cette source.
Snippet vu 32 722 fois - Téléchargée 30 fois
<?php $courriels=""; $newsletter=isset($_POST['newsletter'])?$_POST['newsletter']:""; $sujet=isset($_POST['sujet'])?$_POST['sujet']:"Newsletter"; $send=isset($_POST['send'])?$_POST['send']:""; connexion(); $query="SELECT * FROM `newsletter`"; $result=mysql_query($query); for($i=0;$i<mysql_num_rows($result);$i++){ $id=mysql_result($result,$i,"id"); $courriel=mysql_result($result,$i,"courriel"); $date=mysql_result($result,$i,"date"); $courriels.=$courriel.";"; } if($send=="apercu"){ ?> <p>Aperçu de la newsletter :</p> <div style="display: block; width: 100%; background-color: white; color: black; border: 1px red dashed; "> <?php echo stripslashes($newsletter); ?> </div> <form method="post" action="newsletter.php" name="formapercu"> <p>Aperçu du code généré pour la newsletter (non modifiable ici, cocher la case "modifier" plus bas...) :</p> <textarea readonly="readonly" name="newsletter" style="width: 100%; height: 200px;"><?php echo stripslashes($newsletter); ?></textarea> <p>Vérifiez le titre pour la newsletter avant l'envoi</p> <input type="text" name="sujet" value="<?php echo $sujet; ?>" style="width: 100%;" /> <p>Actions possibles :</p> <div style="position: relative; float: left;"><input type="radio" name="send" value="modif" onClick="document.formapercu.valuesubmit.value='Modifier la newsletter';"/>Modifier<br /> <input type="radio" name="send" value="send" onClick="document.formapercu.valuesubmit.value='Envoyer la newsletter';" checked="checked"/>Envoyer</div> <div style="position: relative; top: 6pt; float: right;"><input type="submit" name="valuesubmit" value="Envoyer la newsletter"/></div></form> <?php } elseif($send=="send"){ ?><script language="JavaScript" type="text/Javascript">alert('Attention, la newsletter est en cours d\'envoi. Ceci peut prendre un certain temps suivant le nombre de personnes inscrites.');</script> <p>Envoi en cours... Veuillez patienter</p> <?php connexion(); $query="SELECT * FROM `newsletter`"; $result=mysql_query($query); $succes_nb=0; $succes=""; $nope_nb=0; $nope=""; /* destinataire = $courriel */ /* sujet = $sujet */ /* message = $newsletter */ /* Pour envoyer du mail au format HTML */ $headers = "MIME-Version: 1.0\n"; $headers .= "Content-type: text/html\n charset=iso-8859-1\n"; /* D'autres en-têtes : errors, From cc's, bcc's, etc */ $headers .= "From: Votre nom <reply@domaine.com>\n"; //$headers .= "Cc: societe@domaine.com\n"; //$headers .= "Bcc: societe@domaine.com\n"; for($i=0;$i<mysql_num_rows($result);$i++){ $id=mysql_result($result,$i,"id"); $courriel=mysql_result($result,$i,"courriel"); $date=mysql_result($result,$i,"date"); /* et hop, à la poste */ if(@mail($courriel, $sujet, $newsletter, $headers)){ $succes .= $courriel."<br />"; $succes_nb++; } else{ $nope .= $courriel."<br />"; $nope_nb++; } } $succes_pourc= ($succes_nb / $i ) * 100; $echec_pourc= ($nope_nb / $i ) * 100; echo "<p>Fin du processus, statistiques sur cet envoi</p>"; echo "Succès pour $succes_nb mails ( sur $i soit $succes_pourc% ) :<br />$succes"; echo "<br /><br />Echecs pour $nope_nb mails ( sur $i soit $echec_pourc% ) :<br />$nope"; } elseif($send=="modif"){ ?> <p>Préparer une newsletter :</p> <div class="formulaire"> <form action="newsletter.php" method="post"> <p>Titre de la newsletter</p> <input type="text" name="sujet" value="<?php echo $sujet; ?>" style="width: 100%;" /> <p>Contenu de la newsletter</p> <textarea name="newsletter" style="width: 100%; height: 200px;"><?php echo stripslashes($newsletter); ?></textarea><br /> <input type="hidden" name="send" value="apercu" /> <p>Terminer</p> <input type="submit" value="Envoyer cette newsletter" /> </form> </div> <?php } else{ ?> <p>Préparer une newsletter :</p> <div class="formulaire"> <form action="newsletter.php" method="post"> <p>Titre de la newsletter</p> <input type="text" name="sujet" value="Newsletter" style="width: 100%;" /> <p>Contenu de la newsletter</p> <textarea name="newsletter" style="width: 100%; height: 200px;"></textarea><br /> <input type="hidden" name="send" value="apercu" /> <p>Terminer</p> <input type="submit" value="Envoyer cette newsletter" /> </form> </div> <?php }
5 juil. 2007 à 16:28
J'essaye d'utiliser cette newsletter, elle marche bien, mais un petit problème se pose, certains mails ne partent pas (la fonction de vérification est utile). Pourtant :
- Les adresses mails sont correctes (c'est vérifié)
- J'ai modifier les valeurs du php.ini (pfpro.defaulttimeout, max_input_time, memory_limit)
Jusqu'à 20 mails ça marche mais après j'ai des mails qui ne sont pas envoyés.
Je ne sais pas comment faire, avez vous eu ce soucis ?
31 mai 2007 à 19:33
La remarque de IDEALYO est très pertinente, la première boucle ne sert absolument à rien. Je pense que cela est sans doute dû à la distraction du programmeur. Elle ralentie l'application, elle peut donc à mon sens être supprimée.
31 mai 2007 à 18:34
Peut-on vérifier si quelqu'un à lue la newslettre.
Merci
29 mai 2007 à 09:19
A quoi sert donc ton premier tour de boucle ?
++
28 janv. 2005 à 19:48
j'ai utilisé ta source, (si ca ne te dérange pas),
modifier pour une personnalisation de l'email,
et l'inserer dans ma source de newsletter :
http://www.phpcs.com/code.aspx?id=28192
si t'as une suggestion.
a+
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.