8721 sujets

Développement web côté serveur, CMS

Bonjour,
j'utilise depuis ce matin PHPMailer pour envoyer les mails de newsletters de mon site web.
J'ai déclenché l'envoi manuel d'une newsletter de test tout à l'heure, mais les mails arrivent en double.
Que faire ?
Merci d'avance.
Modérateur
Bonjour,

Vérifiez l'intégration de votre code, il doit y avoir une commande redondante.

Et si vous le publiez qu'on puisse voir ce que ça donne ?
Bonjour,
voici mon code :
<?php
require($_SERVER['DOCUMENT_ROOT']."/mailer/PHPMailerAutoload.php");

$mailer=new PHPMailer();
$mailer->SetLanguage("fr",".");
/* Ce programme envoie automatiquement la newsletter et nettoye la table. */

include('dbconnect.php');

# Netoyage de la table
$req = $bdd->prepare('DELETE FROM newsletter_mails WHERE expire<?');
$req->execute(array(time()));

# Sélection des mails
$r = '(freq=1';
if(localtime()[3] == 1)# premier jour du mois
$r .= ' OR freq=5';
if(localtime()[6] == 1 and intval(date('W'))%2 == 0)# lundi et semaine paire
$r .= ' OR freq=4';
if(localtime()[6] == 1)# lundi
$r .= ' OR freq=3';
if(localtime()[7]%2 == 0)# jour pair sur l'année
$r .= ' OR freq=2';
$r .= ')';

# Lister les catégories
$cat = array();
$req = $bdd->query('SELECT * FROM softwares_categories');
while($data = $req->fetch()) {$cat[$data['id']] = $data['name'];}

# Prendre des infos à envoyer
$req = $bdd->prepare('SELECT * FROM softwares WHERE date>=? ORDER BY date DESC');
$req->execute(array(time()-2678400));# récents d'au plus un mois
$sft = array();
while($data = $req->fetch()) {
$sft[] = $data;
}

$req = $bdd->prepare('SELECT * FROM softwares_files WHERE date>=? ORDER BY date DESC');
$req->execute(array(time()-2678400));# récents d'au plus un mois
$files = array();
while($data = $req->fetch()) {
$files[] = $data;
}

$message1 = "<!DOCTYPE html>
<html>
<head>
<meta charset=\"utf-8\" />
<title>Newsletter ProgAccess33</title>
<style type=\"text/css\">
@font-face {font-family: Cantarell;src: url(https://progaccess33.net/css/Cantarell-Regular.otf);}
html, body {margin: 0;padding: 0;font-family: Cantarell;}
.software {border-left: 2px dashed black;padding-left: 10px;}
.software_title {margin-bottom: -8px;}
.software_date {color: #606060;margin-left: 15px;}
.software_hits, .software_category {color: #008000;}
</style>
</head>
<body>
<div id=\"header\">
<img id=\"logo\" alt=\"Logo\" src=\"data:image/png;base64,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\" />
<h1>Newsletter ProgAccess33</h1>
</div>
<div id=\"content\">
<h2>Nouveaux logiciels et mises à jour</h2>";
$message2 = '<a id="link" href="https://progaccess33.net/nlmod.php?id=';
$message3 = '">Cliquez ici pour modifier les paramètres de votre abonnement ou vous désinscrire.</a>
<p>Ce mail a été envoyé automatiquement, merci de ne pas répondre.</p>
<p>Cordialement,<br />L\'équipe ProgAccess33</p>
</div>
</body>
</html>';

$headers[] = 'MIME-Version: 1.0';
$headers[] = 'Content-type: text/html; charset=UTF-8';
$headers[] = 'From: ProgAccess33 <noreply@progaccess33.net>';
$headers = implode("\r\n", $headers);
$subject = 'Newsletter ProgAccess33';

# Envoi des mails
$req = $bdd->prepare('SELECT * FROM newsletter_mails WHERE confirm=1 AND '.$r);
$req->execute();
while($data = $req->fetch()) {
$message = $message1;
foreach($sft as $software) {
if($software['date'] > $data['lastmail']) {
$message .= '<hr /><div class="software"><a href="article.php?id='.$software['id'].'"><h2 class="software_title">'.$software['name'].'</h2></a><p><span class="software_category">('.$cat[$software['category']].')</span> '.$software['description'].'<br /><span class="software_hits">'.$software['hits'].' visites</span><span class="software_date"> (mise à jour le '.date('d/m/Y à H:i:s', $software['date']).')</span></p><ul>';
foreach($files as $file) {
if($file['sw_id'] == $software['id'])
$message .= '<li>'.$file['title'].'</li>';
}
$message .= '</ul></div>';
}
}
if($message != $message1) {
$message .= $message2.$data['hash'].$message3;

$mailer->AddAddress($data['mail']);
$mailer->AddCustomHeader("x-IP: ".$_SERVER['REMOTE_ADDR']);
$mailer->AddReplyTo("noreply@progaccess33.net");
$mailer->IsSMTP();
$mailer->Host = "mail.gansta93.com";
$mailer->port = 587;
$mailer->SMTPAuth = true;
$mailer->Username = "noreply@progaccess33.net";
$mailer->Password = "Pddi3_98";
$mailer->IsHTML(TRUE);
$mailer->AltBody=($message);
$mailer->Body=($message);
$mailer->setFrom("noreply@progaccess33.net", "l'équipe ProgAccess33");
$mailer->HostName="progaccess33.net";
$mailer->Sender="noreply@progaccess33.net";
$mailer->Subject=($subject);
$mailer->CharSet = "UTF-8";
$mailer->Send();
if ($mailer->IsError())
{
echo $mailer->ErrorInfo;
exit();
}
}
else {}
/* mail($data['mail'], $subject, $message, $headers); */
$req2 = $bdd->prepare('UPDATE newsletter_mails SET lastmail=? WHERE id=?');
$req2->execute(array(time(), $data['id']));
}
$req->closeCursor();
?>
Modérateur
Cette condition n'ouvre pas d'accolade
if($file['sw_id'] == $software['id'])


En corrigeant l'accolade manquante, cela fonctionne-t-il mieux ?
Re,
nouveau code :

<?php
require($_SERVER['DOCUMENT_ROOT']."/mailer/PHPMailerAutoload.php");

$mailer=new PHPMailer();
$mailer->SetLanguage("fr",".");
/* Ce programme envoie automatiquement la newsletter et nettoye la table. */

include('dbconnect.php');

# Netoyage de la table
$req = $bdd->prepare('DELETE FROM newsletter_mails WHERE expire<?');
$req->execute(array(time()));

# Sélection des mails
$r = '(freq=1';
if(localtime()[3] == 1)# premier jour du mois
$r .= ' OR freq=5';
if(localtime()[6] == 1 and intval(date('W'))%2 == 0)# lundi et semaine paire
$r .= ' OR freq=4';
if(localtime()[6] == 1)# lundi
$r .= ' OR freq=3';
if(localtime()[7]%2 == 0)# jour pair sur l'année
$r .= ' OR freq=2';
$r .= ')';

# Lister les catégories
$cat = array();
$req = $bdd->query('SELECT * FROM softwares_categories');
while($data = $req->fetch()) {$cat[$data['id']] = $data['name'];}

# Prendre des infos à envoyer
$req = $bdd->prepare('SELECT * FROM softwares WHERE date>=? ORDER BY date DESC');
$req->execute(array(time()-2678400));# récents d'au plus un mois
$sft = array();
while($data = $req->fetch()) {
$sft[] = $data;
}

$req = $bdd->prepare('SELECT * FROM softwares_files WHERE date>=? ORDER BY date DESC');
$req->execute(array(time()-2678400));# récents d'au plus un mois
$files = array();
while($data = $req->fetch()) {
$files[] = $data;
}

$message1 = "<!DOCTYPE html>
<html>
<head>
<meta charset=\"utf-8\" />
<title>Newsletter ProgAccess33</title>
<style type=\"text/css\">
@font-face {font-family: Cantarell;src: url(https://progaccess33.net/css/Cantarell-Regular.otf);}
html, body {margin: 0;padding: 0;font-family: Cantarell;}
.software {border-left: 2px dashed black;padding-left: 10px;}
.software_title {margin-bottom: -8px;}
.software_date {color: #606060;margin-left: 15px;}
.software_hits, .software_category {color: #008000;}
</style>
</head>
<body>
<div id=\"header\">
<img id=\"logo\" alt=\"Logo\" src=\"data:image/png;base64,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\" />
<h1>Newsletter ProgAccess33</h1>
</div>
<div id=\"content\">
<h2>Nouveaux logiciels et mises à jour</h2>";
$message2 = '<a id="link" href="https://progaccess33.net/nlmod.php?id=';
$message3 = '">Cliquez ici pour modifier les paramètres de votre abonnement ou vous désinscrire.</a>
<p>Ce mail a été envoyé automatiquement, merci de ne pas répondre.</p>
<p>Cordialement,<br />L\'équipe ProgAccess33</p>
</div>
</body>
</html>';

$headers[] = 'MIME-Version: 1.0';
$headers[] = 'Content-type: text/html; charset=UTF-8';
$headers[] = 'From: ProgAccess33 <noreply@progaccess33.net>';
$headers = implode("\r\n", $headers);
$subject = 'Newsletter ProgAccess33';

# Envoi des mails
$req = $bdd->prepare('SELECT * FROM newsletter_mails WHERE confirm=1 AND '.$r);
$req->execute();
while($data = $req->fetch()) {
$message = $message1;
foreach($sft as $software) {
if($software['date'] > $data['lastmail']) {
$message .= '<hr /><div class="software"><a href="article.php?id='.$software['id'].'"><h2 class="software_title">'.$software['name'].'</h2></a><p><span class="software_category">('.$cat[$software['category']].')</span> '.$software['description'].'<br /><span class="software_hits">'.$software['hits'].' visites</span><span class="software_date"> (mise à jour le '.date('d/m/Y à H:i:s', $software['date']).')</span></p><ul>';
foreach($files as $file) {
if($file['sw_id'] == $software['id']) {
$message .= '<li>'.$file['title'].'</li>'; }
}
$message .= '</ul></div>';
}
}
if($message != $message1) {
$message .= $message2.$data['hash'].$message3;

$mailer->AddAddress($data['mail']);
$mailer->AddCustomHeader("x-IP: ".$_SERVER['REMOTE_ADDR']);
$mailer->AddReplyTo("noreply@progaccess33.net");
$mailer->IsSMTP();
$mailer->Host = "mail.gansta93.com";
$mailer->port = 587;
$mailer->SMTPAuth = true;
$mailer->Username = "noreply@progaccess33.net";
$mailer->Password = "Pddi3_98";
$mailer->IsHTML(TRUE);
$mailer->AltBody=($message);
$mailer->Body=($message);
$mailer->setFrom("noreply@progaccess33.net", "l'équipe ProgAccess33");
$mailer->HostName="progaccess33.net";
$mailer->Sender="noreply@progaccess33.net";
$mailer->Subject=($subject);
$mailer->CharSet = "UTF-8";
$mailer->Send();
if ($mailer->IsError())
{
echo $mailer->ErrorInfo;
exit();
}
}
else {}
/* mail($data['mail'], $subject, $message, $headers); */
$req2 = $bdd->prepare('UPDATE newsletter_mails SET lastmail=? WHERE id=?');
$req2->execute(array(time(), $data['id']));
}
$req->closeCursor();
?>

je ne comprends pas ton dernier message.
Modérateur
pa33 a écrit :

je ne comprends pas ton dernier message.
Contrairement à la dernière version du code posté, ce que je voulais dire par là pour la précédente est que l'envoi de mail ($mailer->Send();) était inclus dans la boucle qui détermine $software. Donc si $sft contient 2 éléments, le mail est envoyé deux fois.
Et donc sur la version du code ce n'est pas le cas ?
pourtant ça ne fonctionne toujours pas Smiley decu
Modérateur
Malheureusement je ne dispose pas de Bdd configurée qui me me permettrait d'effectuer des essais et à première vue le code semble correcte.

Êtes-vous sûr que cette page n'est bien appelée qu'une seule fois ?
Bonjour,

j'ai refais le code en suivant les exemples de PHPMailer et en utilisant la dernière version de ce dernier,

le mail arrive bien une seule fois, mais il s'arrête après le titre indiquant :
nouveaux logiciels et mises à jour.
Sûrement un petit pb pas trop grave mais faut le trouver, voici le code :



<?php
require($_SERVER['DOCUMENT_ROOT']."/PHPMailer-master/PHPMailerAutoload.php");
/* Ce programme envoie automatiquement la newsletter et nettoye la table. */

include('dbconnect.php');

# Netoyage de la table
$req = $bdd->prepare('DELETE FROM newsletter_mails WHERE expire<?');
$req->execute(array(time()));

# Sélection des mails
$r = '(freq=1';
if(localtime()[3] == 1)# premier jour du mois
$r .= ' OR freq=5';
if(localtime()[6] == 1 and intval(date('W'))%2 == 0)# lundi et semaine paire
$r .= ' OR freq=4';
if(localtime()[6] == 1)# lundi
$r .= ' OR freq=3';
if(localtime()[7]%2 == 0)# jour pair sur l'année
$r .= ' OR freq=2';
$r .= ')';

# Lister les catégories
$cat = array();
$req = $bdd->query('SELECT * FROM softwares_categories');
while($data = $req->fetch()) {$cat[$data['id']] = $data['name'];}

# Prendre des infos à envoyer
$req = $bdd->prepare('SELECT * FROM softwares WHERE date>=? ORDER BY date DESC');
$req->execute(array(time()-2678400));# récents d'au plus un mois
$sft = array();
while($data = $req->fetch()) {
$sft[] = $data;
}

$req = $bdd->prepare('SELECT * FROM softwares_files WHERE date>=? ORDER BY date DESC');
$req->execute(array(time()-2678400));# récents d'au plus un mois
$files = array();
while($data = $req->fetch()) {
$files[] = $data;
}

$message1 = "<!DOCTYPE html>
<html>
<head>
<meta charset=\"utf-8\" />
<title>Newsletter ProgAccess33</title>
<style type=\"text/css\">
@font-face {font-family: Cantarell;src: url(https://progaccess33.net/css/Cantarell-Regular.otf);}
html, body {margin: 0;padding: 0;font-family: Cantarell;}
.software {border-left: 2px dashed black;padding-left: 10px;}
.software_title {margin-bottom: -8px;}
.software_date {color: #606060;margin-left: 15px;}
.software_hits, .software_category {color: #008000;}
</style>
</head>
<body>
<div id=\"header\">
<img id=\"logo\" alt=\"Logo\" src=\"data:image/png;base64,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\" />
<h1>Newsletter ProgAccess33</h1>
</div>
<div id=\"content\">
<h2>Nouveaux logiciels et mises à jour</h2>";
$message2 = '<a id="link" href="https://progaccess33.net/nlmod.php?id=';
$message3 = '">Cliquez ici pour modifier les paramètres de votre abonnement ou vous désinscrire.</a>
<p>Ce mail a été envoyé automatiquement, merci de ne pas répondre.</p>
<p>Cordialement,<br />L\'équipe ProgAccess33</p>
</div>
</body>
</html>';

$subject = 'Newsletter ProgAccess33';

# Envoi des mails
$req = $bdd->prepare('SELECT * FROM newsletter_mails WHERE confirm=1 AND '.$r);
$req->execute();
while($data = $req->fetch()) {
$message = $message1;
foreach($sft as $software) {
if($software['date'] > $data['lastmail']) {
$message .= '<hr /><div class="software"><a href="article.php?id='.$software['id'].'"><h2 class="software_title">'.$software['name'].'</h2></a><p><span class="software_category">('.$cat[$software['category']].')</span> '.$software['description'].'<br /><span class="software_hits">'.$software['hits'].' visites</span><span class="software_date"> (mise à jour le '.date('d/m/Y à H:i:s', $software['date']).')</span></p><ul>';
foreach($files as $file) {
if($file['sw_id'] == $software['id'])
$message .= '<li>'.$file['title'].'</li>';
}
$message .= '</ul></div>';
}
}
if($message != $message1) {
$message .= $message2.$data['hash'].$message3; }
$mail = new PHPMailer;
$mail->isSMTP();
$mail->SMTPDebug = 2;
$mail->Debugoutput = 'html';
$mail->Host = "mail.zajda.fr";
$mail->Port = 587;
$mail->SMTPAuth = true;
$mail->Username = "noreply@progaccess33.net";
$mail->Password = "Dz5i?3d5";
$mail->setFrom('noreply@progaccess33.net', 'l\'équipe ProgAccess33');
$mail->addReplyTo('miklhcos@progaccess33.net', 'Admin');
$mail->addAddress($data['mail']);
$mail->Subject = $subject;
$mail->CharSet = "UTF-8";
$mail->IsHTML(TRUE);
$mail->Body =($message);
if (!$mail->send()) {
echo "Mailer Error: " . $mail->ErrorInfo;
} else {
echo "Message sent!";
}
$req2 = $bdd->prepare('UPDATE newsletter_mails SET lastmail=? WHERE id=?');
$req2->execute(array(time(), $data['id']));
}
$req->closeCursor();
?>



une idée ?
Bonjour,
le dernier pb était dû a un mauvais bidouillage de ma part, voici le code final :



<?php
require('/var/www/vhosot/accessibiliteprogrammes.fr/httpdocs/PHPMailer-master/PHPMailerAutoload.php');
/* Ce programme envoie automatiquement la newsletter et nettoye la table. */

include('dbconnect.php');

# Netoyage de la table
$req = $bdd->prepare('DELETE FROM newsletter_mails WHERE expire<?');
$req->execute(array(time()));

# Sélection des mails
$r = '(freq=1';
if(localtime()[3] == 1)# premier jour du mois
$r .= ' OR freq=5';
if(localtime()[6] == 1 and intval(date('W'))%2 == 0)# lundi et semaine paire
$r .= ' OR freq=4';
if(localtime()[6] == 1)# lundi
$r .= ' OR freq=3';
if(localtime()[7]%2 == 0)# jour pair sur l'année
$r .= ' OR freq=2';
$r .= ')';

# Lister les catégories
$cat = array();
$req = $bdd->query('SELECT * FROM softwares_categories');
while($data = $req->fetch()) {$cat[$data['id']] = $data['name'];}

# Prendre des infos à envoyer
$req = $bdd->prepare('SELECT * FROM softwares WHERE date>=? ORDER BY date DESC');
$req->execute(array(time()-2678400));# récents d'au plus un mois
$sft = array();
while($data = $req->fetch()) {
$sft[] = $data;
}

$req = $bdd->prepare('SELECT * FROM softwares_files WHERE date>=? ORDER BY date DESC');
$req->execute(array(time()-2678400));# récents d'au plus un mois
$files = array();
while($data = $req->fetch()) {
$files[] = $data;
}

$message1 = "<!DOCTYPE html>
<html>
<head>
<meta charset=\"utf-8\" />
<title>Newsletter ProgAccess33</title>
<style type=\"text/css\">
@font-face {font-family: Cantarell;src: url(https://progaccess33.net/css/Cantarell-Regular.otf);}
html, body {margin: 0;padding: 0;font-family: Cantarell;}
.software {border-left: 2px dashed black;padding-left: 10px;}
.software_title {margin-bottom: -8px;}
.software_date {color: #606060;margin-left: 15px;}
.software_hits, .software_category {color: #008000;}
</style>
</head>
<body>
<div id=\"header\">
<img id=\"logo\" alt=\"Logo\" src=\"data:image/png;base64,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\" />
<h1>Newsletter ProgAccess33</h1>
</div>
<div id=\"content\">
<h2>Nouveaux logiciels et mises à jour</h2>";
$message2 = '<a id="link" href="https://progaccess33.net/nlmod.php?id=';
$message3 = '">Cliquez ici pour modifier les paramètres de votre abonnement ou vous désinscrire.</a>
<p>Ce mail a été envoyé automatiquement, merci de ne pas répondre.</p>
<p>Cordialement,<br />L\'équipe ProgAccess33</p>
</div>
</body>
</html>';

$subject = 'Newsletter ProgAccess33';

# Envoi des mails
if(isset($_GET['debug'])) {
$req = $bdd->prepare('SELECT * FROM newsletter_mails WHERE confirm=1 AND mail=?');
$req->execute(array($_GET['debug']));
}
else
{
$req = $bdd->prepare('SELECT * FROM newsletter_mails WHERE confirm=1 AND '.$r);
$req->execute();
}
while($data = $req->fetch()) {
$message = $message1;
foreach($sft as $software) {
if($software['date'] > $data['lastmail']) {
$message .= '<hr /><div class="software"><a href="article.php?id='.$software['id'].'"><h2 class="software_title">'.$software['name'].'</h2></a><p><span class="software_category">('.$cat[$software['category']].')</span> '.$software['description'].'<br /><span class="software_hits">'.$software['hits'].' visites</span><span class="software_date"> (mise à jour le '.date('d/m/Y à H:i:s', $software['date']).')</span></p><ul>';
foreach($files as $file) {
if($file['sw_id'] == $software['id'])
$message .= '<li>'.$file['title'].'</li>';
}
$message .= '</ul></div>';
}
}
if($message != $message1) {
$message .= $message2.$data['hash'].$message3;
$mail = new PHPMailer;
$mail->isSMTP();
$mail->SMTPDebug = 2;
$mail->Debugoutput = 'html';
$mail->Host = 'mail.zajda.fr';
$mail->Port = 587;
$mail->SMTPAuth = true;
$mail->Username = 'noreply@progaccess33.net';
$mail->Password = 'Dz5i?3d5';
$mail->setFrom('noreply@progaccess33.net', 'l\'équipe ProgAccess33');
$mail->addReplyTo('miklhcos@progaccess33.net', 'Admin');
$mail->addAddress($data['mail']);
$mail->Subject = $subject;
$mail->CharSet = 'UTF-8';
$mail->IsHTML(TRUE);
$mail->Body = ($message);
$mail->send();
$req2 = $bdd->prepare('UPDATE newsletter_mails SET lastmail=? WHERE id=?');
$req2->execute(array(time(), $data['id']));
}
}
$req->closeCursor();
?>



en espérant que ça puisse en aider d'autres Smiley smile