Bonjour à Tous,
Je suis en train de faire un système de newsletter pour envoyer aux clients abonnés.
Mon template mailing est un fichier php et non html car je récupère le contenu de mon fichier dynamiquement.
Certains d'entre vous me diront d'aller chercher il y a plusieurs exemples sur internet. Rassurer-vous j'ai déjà fait de recherche mais je ne trouve pas un exemple adapté à mon cas. Je vous montre un exemple de mon code pour bien comprendre. Mais avant cela je rappelle que l'envoi de mail marche bien et je reçois belle et bien le contenu de mon mail (template). Seulement le problème est que mon template ne s'affiche pas correctement vu que je récupère le contenu dynamiquement il m'affiche tout le code des requêtes dans le mailing. Le contenu de mon fichier php est du html classique comme on fait pour les newsletters. C'est juste à la place des textes je mets des variables. Pour bien préciser j'ai fait un test avec un fichier (.html) et ça s'affiche correctement. Donc c'est le bout de code php qui cause problème ou bien le fichier (.php) lui même. Ce sont des hypothèses je n'en sais rien encore. C'est ma première expérience des listes de diffusion en php donc je ne maîtrise pas encore ce côté.
J'ai besoin de votre expérience pour m'aiguiller et m'aider peut être à résoudre ce problème. Merci par avance !
Code:
Et le fichier newsletter.php qui contient le contenu du mail dynamique.
Cdlt,
Je suis en train de faire un système de newsletter pour envoyer aux clients abonnés.
Mon template mailing est un fichier php et non html car je récupère le contenu de mon fichier dynamiquement.
Certains d'entre vous me diront d'aller chercher il y a plusieurs exemples sur internet. Rassurer-vous j'ai déjà fait de recherche mais je ne trouve pas un exemple adapté à mon cas. Je vous montre un exemple de mon code pour bien comprendre. Mais avant cela je rappelle que l'envoi de mail marche bien et je reçois belle et bien le contenu de mon mail (template). Seulement le problème est que mon template ne s'affiche pas correctement vu que je récupère le contenu dynamiquement il m'affiche tout le code des requêtes dans le mailing. Le contenu de mon fichier php est du html classique comme on fait pour les newsletters. C'est juste à la place des textes je mets des variables. Pour bien préciser j'ai fait un test avec un fichier (.html) et ça s'affiche correctement. Donc c'est le bout de code php qui cause problème ou bien le fichier (.php) lui même. Ce sont des hypothèses je n'en sais rien encore. C'est ma première expérience des listes de diffusion en php donc je ne maîtrise pas encore ce côté.
J'ai besoin de votre expérience pour m'aiguiller et m'aider peut être à résoudre ce problème. Merci par avance !
Code:
// fichier qui fait le traitement d'envoi de mail : envoi_mail.php
$now = gmdate('D, d M Y H:i:s') . ' GMT';
header("Expires: $now");
header("Last-Modified: $now");
header("Cache-Control: no-cache, must-revalidate");
header("Pragma: no-cache");
include "connect.php";
$req = $db->prepare('SELECT email FROM newsletter WHERE envoye = '0' LIMIT 100');
$req->execute() or die(print_r($req->errorInfo()));
foreach ($req->fetchAll() as $row) {
$sujet_mail = "Newsletter Nov 2016";
$dest = $row["email"];
$mail = "newsletter@domaine.com";
$envoyeur = "XXX Newsletter <$mailbox>";
$text_mail = "";
//fichier template mailing
$fp = fopen("newsletter.php", "r");
while (!feof($fp)) {
$text_mail .= fgets($fp, 1024);
}
fclose($fp);
$header = "Content-Type: text/html\n";
$header .= "From: $envoyeur\n";
$header .= "Reply-To: $mail\n";
$header .= "X-Mailer: PHP/".phpversion()."\n";
$header .= "X-Sender: $mail\n";
$header .= "Return-Path: $mail\n";
$header .= "Errors-To: $mail\n";
$header .= "Date: ".date("r")."\n";
$header .= "MIME-Version: 1.0\n";
$mailval = mail("$dest", $sujet_mail, $text_mail, $header);
if ($mailval == true) {
$q = array('email'=>$dest);
$sql = "UPDATE newsletter SET envoye = '1' WHERE email = :email";
$req = $db->prepare($sql);
$req->execute($q) or die(print_r($req->errorInfo()));
echo '<p class="success">Votre mail a bien été envoyé avec success !</p>';
} else {
echo '<p class="error">Votre mail n\'a pas pu être envoyé.</p>';
}
}
Et le fichier newsletter.php qui contient le contenu du mail dynamique.
Cdlt,