Bonjour,

Quelqu'un saurait comment créer une newsletter ?

J'imagine qu'il faut créer une base de donnée avec les emails et ensuite envoyer en mail les newsletters.

Mais peut être y'a mieux ?
Et comment écrire les messages pour qu'ils soient lisibles par les boites mails et non mis en spam ?

Merci d'avance pour votre aide.

15 réponses


Nouchi35
Auteur

Merci,
et comment écrire le texte ?
je sais qu'il faut aire des tables etc ...
Mais comment faire pour que ça s'affiche bien partout.

En gros par envois mail simple ça marche niquel mais dès que j'utilise la technique d'openclass room ça veut plus marcher.
Il m'affiche les mails en texte brute html.

Peut être sais tu d'ou ça vient ?

Nouchi35
Auteur

Merci, j'ai essayer mais avec le code de open class ça ne veut toujours pas )=
pourtant en envoi mail simple ça marche niquel du coup je ne comprends pas

Salut,

j'ai essayer mais avec le code de open class ça ne veut toujours pas )=

Ouais mais... Je ne vais pas dire qu'on s'en fiche d'OCR mais,
tu as regardé le lien d'Anthony au moins ??

Moi qui avait le même problème que toi, ce tutoriel a parfaitement répondu à mes attentes.

Nouchi35
Auteur

Oui SLK j'ai regarder.
J'ai même dis que sans la technique d'OCR quand j'envois en simple mail ça fonctionne parfaitement.
Quand j'ouvre le mail tout s'affiche avec les couleurs etc ...
Donc je vois comment on écrit un mail mais pourquoi quand je l'intègre dans la newslettter d'OCR ça ne marche pas ?

En plus dans le code d'OCR la newsletter ne s'envoi pas à la liste si je la mets pas dans destinataire.
Et "Bcc" ne marche pas car il m'affiche tout les destinataires.

Du coup j'ai beau le lire et relire je ne vois pas ou est la faille )=

Oui SLK j'ai regarder.
J'ai même dis que sans la technique d'OCR quand j'envois en simple mail ça fonctionne parfaitement

Ah pardon, j'avais mal compris.

Donc je vois comment on écrit un mail

OK super.

mais pourquoi quand je l'intègre dans la newslettter d'OCR ça ne marche pas ?

Ah ouais, mais là moi si je veux t'aider je dois lire tout l'article d'OCR pour comprendre ce que tu as fais...
Désolé c'est trop long...

Nouchi35
Auteur

Y'a pas besoin de lire tout l'article.
Faut juste regarde autour du message.

En gros :
$news = mysql_query('SELECT contenu,timestamp FROM news ORDER BY id DESC LIMIT 0, 5');

$fichier_message = '<html>
<head>
<title>Newsletter de MonSite.fr</title>
</head>
<body bgcolor="black">
<font face="verdana"><font color="white"><font size="5"><p align="center"><font color="red"><u>Balzac61</u></font></p></font>
<font size="3">
<p align="left">Voici les dernières news de MonSite.fr :<br /><ul>'; //On définit le message.

while($donnee = mysql_fetch_assoc($news)) 
{
$fichier_message .= '<li>'.$donnee["contenu"].'(le'.date("D, d M Y H:i:s",$donnee["timestamp"]).')</li>'; //On ajoute les news au message.
}

$fichier_message .= '</ul></body>
</html>'; // On termine le message.

// On récupère de la table newsletter les personnes inscrites.
$liste_vrac = mysql_query("SELECT email FROM newsletteur");

// On définit la liste des inscrits.
$liste = 'cdbf.communication@cdbf.fr';
while ($donnees = mysql_fetch_assoc($liste_vrac))
{
$liste .= ','; //On sépare les adresses par une virgule.
$liste .= $donnees['email'];
}
$message = $fichier_message;
$destinataire = $liste;

$date = date("d/m/Y");

$objet = "Newsletter de MonSite.fr du $date"; // On définit l'objet qui contient la date.

// On définit le reste des paramètres.
$headers = 'MIME-Version: 1.0' . '\r\n';
$headers .= 'Content-type: text/html; charset=iso-8859-1' . '\r\n';
$headers .= 'From: cdbf.communication@cdbf.fr' . '\r\n'; // On définit l'expéditeur.
$headers .= 'Bcc:' . $liste . '' . '\r\n'; // On définit les destinataires en copie cachée pour qu'ils ne puissent pas voir les adresses des autres inscrits.

// On envoie l'e-mail.
if ( mail($destinataire, $objet, $fichier_message, $headers) ) 
{

?>
Envoi de la newsletter réussi.
<?php
}
else
{
?>
Échec de l'envoi de la newsletter.
<?php
}
?>

Apparemment tu n'utilises pas PDO ici, et moi je ne connais que ça,
alors je ne pourrai pas vérifier s'il y a des erreurs pour le code qui y correspond à ce "non-PDO".

Mais j'ai quand même lu le reste et ça me parait correct,
sauf ici :

$liste_vrac = mysql_query("SELECT email FROM newsletteur");

Il ne devrait pas y avoir de "u" à "newsletteur",
alors si tu as fais une faute ici, et que tu as bien écrit le nom de ta table : "newsletter",
ça va coïncer.

Non de dieu, le code est quand même DÉGUEULASSEMENT présenté... Ça vient d'OCR ça ?

Nouchi35
Auteur

Non non c'est bien le nom de la table.
Elle a bien un "u" c'est pour un test.

Tu le ferais comment en PDO ?

Ou simplement comment as tu fais la tienne car si je comprend bien t'as pas utilisé celle d''OCR.

Bonjour.
Concernant l'extension mysql:

Cette extension est obsolète depuis PHP 5.5.0 et a été supprimée depuis PHP 7.0.0. A la place, soit l'extension mysqli ou PDO_MySQL devrait être utilisée.

Source : PHP.NET » MySQL » Introduction.

Ou simplement comment as tu fais la tienne car si je comprend bien t'as pas utilisé celle d''OCR.

Que ce soit sur OCR ou ici, les tutoriels sont fait pour être adaptés et non reproduits tel quel, ce ne sont que des exemples dans un objectif pédagogique.
Donc dire quelque chose comme tu l'as dit : t'as pas utilisé celle d''OCR, est totalement inexact, surtout que ça m'étonnerait que leur système de newsletter soit codé de cette manière.

Nouchi35
Auteur

Ok ok je ne savais pas.
OCR devrait se mettre à jour alors :p

Non non c'est bien le nom de la table.

Ah zut...

Tu le ferais comment en PDO ?

Oh ben je vais pas tout réécrire hein.

Ou simplement comment as tu fais la tienne car si je comprend bien t'as pas utilisé celle d''OCR.

Ah non moi en fait je n'ai pas de newsletter ^^

En fait je crois que je ne comprend pas ton problème :

En plus dans le code d'OCR la newsletter ne s'envoi pas à la liste si je la mets pas dans destinataire.

Quest-ce que tu as voulu dire ?

Et "Bcc" ne marche pas car il m'affiche tout les destinataires.

Je n'en sais rien du tout mais,
dans le 'manual' il y a un espace après les ":",
est-ce que cet espace est important ? Mets le pour voir si ça change quelque chose.
remplaces ça :

$headers .= 'Bcc:' . $liste . '' . '\r\n';

par ça :

$headers .= 'Bcc: ' . $liste . '' . '\r\n';

Je suis allé voir le manuel de mysql_query pour essayer de comprendre un truc et j'ai vu :
Avertissement : Cette extension était obsolète en PHP 5.5.0, et a été supprimée en PHP 7.0.0.

Effecivement, laisse tomber mysql_query, et commence à apprendre PDO,
Grafikart a fait un très bon tuto dessus :
https://www.grafikart.fr/tutoriels/php/pdo-php-111

Nouchi35
Auteur

Merci je vais me documenter sur PDO.

Sinon destinataire enfaite ça marche quand je mets mon adresse pour m'envoyer une copie.
Mais Bcc ça doit contenir ma "$liste" mais ça ne marche pas.
Pourtant quand je mets ma "$liste" dans destinataire ça marche très bien.

Du coup ma question était, est Bcc qui bug ou "$liste" qui passe pas avec Bcc ?

Voici une version que j'ai fais vite fait de la page newsletter.php en prenant comme base le code du tutoriel mais en utilisant PDO pour les requêtes SQL.

Nouchi35
Auteur

Super sympa de ta part =)
Tu l'as tester ?

De mon côté ça bloque toujours au niveau du message ...

Comme je dis plus haut, quand je l'envois en méthode "mail" simple ça marche niquel.
Les coulaures, tableaux etc s'affichent parfaitement.

Mais avec ta technique avec PDO et d'OCR ça veut pas )=