Problème de doublon sous phpmailer

Fermé
corentin.bc Messages postés 389 Date d'inscription dimanche 8 février 2015 Statut Membre Dernière intervention 4 novembre 2022 - 3 mai 2017 à 05:17
corentin.bc Messages postés 389 Date d'inscription dimanche 8 février 2015 Statut Membre Dernière intervention 4 novembre 2022 - 3 mai 2017 à 14:00
Bonjour,
suite aux conseils d'un ami j'utilise maintenant PHPMailer pour envoyer les mails de mon site.
Seulement j'ai un souci, les mails s'envoient toujours en double ?
Que faire pour corriger ce pb ?
Merci.

2 réponses

Utilisateur anonyme
3 mai 2017 à 08:58
Il faut partager le code pour qu'on puisse aider, car là il semble que la fonction qui permet l'envoie de mail est appelé deux fois, mais c'est qu'une supposition.
0
corentin.bc Messages postés 389 Date d'inscription dimanche 8 février 2015 Statut Membre Dernière intervention 4 novembre 2022 8
3 mai 2017 à 14:00
Salut,
voici mon code intégral :


<?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'].'" rel="nofollow noopener noreferrer" target="_blank"><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();
?>

0