Page 1 sur 1
Problème de newsletter
Posté : 05 mai 2006, 14:15
par rossy
Bonjour, j'aimerais envoyer une lettre d'info mais je n'arrive pas à envoyer un mail par inscri :
Code : Tout sélectionner
$des=mysql_query("SELECT * FROM newsletter");
while($rowdes = mysql_fetch_array($des)) { // selection
$destinataire = $rowdes['mail'];
$message=addslashes($rowaffich['message']);
/* sujet destinataire */
$subject = "NEWSLETTER N°".$id."".$domaine1."";
/* Pour envoyer le courrier en html, on peut placer le contenu-type de l'en tête. destinataire */
$headers = "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/html; charset=iso-8859-1\r\n";
$headers .= "To: ".$destinataire."\r\n";
$headers .= "From: ".$domaine1."\r\n";
mail($destinataire, $subject, $message, $headers);
}
Le mail est envoyé aux inscrit deux fois..
Merci pour votre aide
Posté : 05 mai 2006, 14:19
par Vaedan
Je pense que tu dois retirer le header
To 
Posté : 05 mai 2006, 14:21
par rossy
Merci pour ton aide mais non le mail est toujours envoyé deux fois
Posté : 05 mai 2006, 14:27
par rainiou
As tu essayé d'afficher les adresses mail par exemple dans ta boucle pour voir si elles sont également affichées 2 fois?
Ta table 'newsletter' peut contenir des doublons?
sinon essaye le SELECT DISTINCT... ou un GROUP BY mail pour etre certain de ne pas avoir 2 fois l'adresse mail... etrange :s
Posté : 05 mai 2006, 14:39
par rossy
non les adresse sont toutes différentes.
Posté : 05 mai 2006, 14:42
par rossy
Je ne comprend pas car lorsque j'envoie le mail il arrive une fois chez tout le monde mais 30 secondes plus tard il arrive une deuxième fois????????????
Posté : 05 mai 2006, 14:52
par rainiou
Je sais que ce n'est pas une solution, mais j'utilise la classe html_mime_mail dispo sur le site de php scripts, ca marche nikel , gere les pieces jointes etc...
Ton script doit s'executer 2 fois alors... Est ce que ton code (présenté plus haut) est suceptible d'etre declanché 2 fois?
Posté : 05 mai 2006, 15:18
par rossy
Je n'y comprend plus rien pourquoi ce mail est il envoyé deux fois avec quelque seconde d'écare.
Il n'est pas executé deux fois les adresses ne sont pas identiques.
Le code de ma page :
<?php
require_once("security.php");
$id = $_GET['id'];
$date = date("d/m/Y");
$nb=mysql_query("SELECT * FROM couleur_banniere ");
while($row = mysql_fetch_array($nb)) { // selection
$domaine = "http://".$row['domaine']."";
$domaine1 = $row['domaine'];
$nom = $row['nom_club'];
$realisateur = $row['realisateur'];
} ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>NEWSLETTER N°<?php echo $id; ?></title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<link rel="stylesheet" type="text/css" href="../css/css.css" />
<meta name="language" content="fr-FR" />
<meta name="robots" content="index, follow" />
<meta name="Description" content="<?php echo $description; ?>" />
<meta name="Keywords" content="<?php echo $mot_cle; ?>" />
<meta name="author" content="Leichtweis Horst" />
<script type="text/javascript">
function fermer() {
window.close();
}
</script>
</head>
<body>
<?php
$nb_enregistrement=mysql_query("SELECT * FROM newsletter_edit where id = '$id' ");
while($rowaffich = mysql_fetch_array($nb_enregistrement)) { // selection ?>
<table align="center" width="600" cellpadding="2" cellspacing="2" border="0" class="textcreation">
<tr>
<td align="right" valign="middle"><img src="../images/ballon1.jpg" align="absmiddle"/></td>
<td align="center" valign="middle"><font face="Georgia, Times New Roman, Times, serif" size="+4" color="#FF8000"><?php echo $domaine1; ?></font><br />Le site officiel de <?php echo $nom; ?></td>
<td align="left" valign="middle"><img src="../images/ballon1.jpg" align="absmiddle"/></td>
</tr>
<tr>
<td align="left" valign="top" colspan="3"><br /><br /><h4><font color="#0080FF"><u>Lettre d'information N°<?php echo $id; ?></u></font></h4></td>
</tr>
<tr>
<td align="left" valign="top" colspan="3"><u><?php echo $rowaffich['titre']; ?></u><br /></td>
</tr>
<tr>
<td align="left" valign="top" colspan="3"><br /><?php echo nl2br($rowaffich['message']); ?><br /></td>
</tr>
<tr>
<td align="left" valign="top" colspan="3"><br /><br /><font size="-2">Réalisé par <?php echo $realisateur; ?><br /><a href="<?php echo $domaine; ?>"><?php echo $domaine; ?></a></font><br /></td>
</tr>
<tr>
<td align="center" valign="top" colspan="3"><font size="-2">Vous ne souhaitez plus recevoir de Newsletter : <a href="<?php echo $domaine; ?>/newsletter.php">Cliquez ici</a><br /><hr /><br /></font></td>
</tr>
</table>
<table align="center" width="600" cellpadding="2" cellspacing="2" border="0" class="textcreation">
<tr>
<td align="center" valign="top"><form action="apercunews.php?id=<?php echo $id; ?>&envoyer=oui" method="post" enctype="multipart/form-data"><input name="submit" type="submit" value="Envoyer" /></form></td>
</tr>
</table>
<?php }
if (isset($_GET['envoyer'])) {
$nb_enregistrement=mysql_query("SELECT * FROM newsletter_edit where id = '$id' ");
while($rowaffich = mysql_fetch_array($nb_enregistrement)) { // selection
$message=addslashes($rowaffich['message']);
}
/* Expédition du mail */
$des=mysql_query("SELECT * FROM newsletter");
while($rowdes = mysql_fetch_array($des)) { // selection
$destinataire = $rowdes['mail'];
/* sujet destinataire */
$subject = "NEWSLETTER N°".$id."";
/* Pour envoyer le courrier en html, on peut placer le contenu-type de l'en tête. destinataire */
$headers = "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/html; charset=iso-8859-1\r\n";
$headers .= "From: ".$domaine1."\r\n";
mail($destinataire, $subject, $message, $headers);
}
echo '<center>La NEWSLETTER a été envoyée</center><br>';
} ?>
<center><a href="javascript:fermer();"><font color="#5A56EA">Fermer</font></a></center>
</body>
</html>
Posté : 05 mai 2006, 16:36
par rainiou
deja dans ton formulaire tu utilise
<form method=post ... >
donc pour recuperer "envoyer" tu devrais utiliser
if(isset($_POST['envoyer'])) et pas le $_GET['']
je lis... je lis... mais bon comprends pas pkoi
Posté : 05 mai 2006, 16:44
par rainiou
j'ai rien dit! jai lu trop vite... tu as a la fois un $_post et un $_get pour envoyer... renomme pour voir, mais ca devrait pas etre ca
Posté : 05 mai 2006, 18:41
par rossy
Merci pour ton aide mais y doit bien y avoir une erreur c'est pas possible que le mail soit envoyé deux foix sans raison...
Peur etre du cote du serveur?