PHP INITIÉ - Envoyer une newsletter

PHP INITIÉ - Envoyer une newsletter

Voici un tuto indispensable !! La newsletter est un outil qui offre des possibilités fantastiques de mise en relation. Certain site sur le Net on créé des buz en montant des newsletters torrides !! Je vous explique plus bas le principe d'une newsletter ou d'un masse mailing. Tutoriel pour tout niveau à consommer rapidement pour ceux qui veulent créer de la vie sur leur site et amener du trafic naturellement.!!

Sommaire :

PHP INITIÉ - Envoyer une newsletter

Création de la table.
Rendez vous sur votre admin MYSQL de phpMyAdmin et installez la table newsletters qui sera la base de données de toute vos références avec le nom, l'email et la date. La date sert à connaitre la date à laquelle l'utilisateur s'est inscrit. C'est à partir de cette table que nous ferons l'envoi des mails.

Installez et remplissez la table :

.01
.02
.03
.04
.05
.06
.07
.08
.09
.10
.11
.12
 
<?php

CREATE TABLE newsletters
(
 
id int(100) NOT NULL auto_increment,
 
email varchar(150) NOT NULL default '',
 
nom varchar(150) NOT NULL default '',
 
date date NOT NULL default '0000-00-00',
 
PRIMARY KEY  (id)
)
ENGINE=MyISAM;

?>


Voici la requête pour insérer des éléments dans votre table newsletters :
.01
.02
.03
.04
.05
.06
.07
.08
.09
.10
.11
 
<?php

$em
= ''; // email
$nom = ''; // Nom ou auteur ou pseudo ou ...

// insertion de la news dans sa table:
$q = "INSERT INTO newsletters (email,nom,date) VALUES('$em','$nom',NOW())";
$conn->query($q);

?>




L'envoie de la newsletter.
Une fois la table installée et remplie, passons maintenant aux choses sérieuses. L'envoie de la newsletter !! Pour faire cela, commençons par une lecture de la table dans une boucle (while), ce qui va lister tout le contenu de la table !! Nous allons donc récupérer l'adresse email venant de la table + le nom et mettre tout ça dans des variables. Ensuite nous placerons la commande mail() qui sert à envoyer le mail et à chaque tour de boucle.
L'adresse mail + le nom + un message sera ainsi envoyé aux destinataires. Le message du mail est fabriqué ici à part, mais il peut très bien venir de votre table !! A vous de rajouter un champ dans la table.

Pour avoir une impression écran du déroulement de l'opération, vous avez un compteur qui compte et un print pour afficher les mails envoyés.

Le code de "newsletters.php" :
.01
.02
.03
.04
.05
.06
.07
.08
.09
.10
.11
.12
.13
.14
.15
.16
.17
.18
.19
.20
.21
.22
.23
.24
.25
.26
.27
.28
.29
.30
.31
.32
.33
.34
.35
.36
.37
.38
.39
.40
.41
.42
.43
.44
.45
.46
.47
 
<?php

 
// Vous pouvez appeler ce fichier newsletters.php
  // OU
  // lui donner le nom que vous voulez

   
$servername  = "localhost";
   
$username  = "username";
   
$password  = "password";
   
$DBname    = "DBname";

   
// Créer une connexion
   
$conn = mysqli_connect($servername, $username, $password, $DBname);

   
// Vérifier la connexion
   
if (!$conn) {
        die(
"La connexion a échoué: " . mysqli_connect_error());
    }

 
// envoie du mail

  // titre du mail
 
$titre = 'Newletters';


 
$q = $conn->query("SELECT email FROM newsletters"); // requete
 
$compteur=1; // variable pour compter les mails
 
while ($r = mysqli_fetch_array($q)) {
 
$e_mail = $r['email']; //prend l'email de la table

  // 1 exemple de contenu du mail
 
$contenu = 'Bonjour! <br />Email : '.$e_mail.'<br />';
 
$contenu .= 'Voici la dernière newletters::';
 
$contenu .= 'Au revoir <br /><br />';

 
// envoi du mail HTML
 
$from = "From: hello <newsletter@monsite.ext>\nMime-Version:";
 
$from .= " 1.0\nContent-Type: text/html; charset=ISO-8859-1\n";
 
// envoie du mail
 
mail($e_mail,$titre,$contenu,$from);

        echo
'N° '.$compteur.' - '.$e_mail.' : envoyé avec succès!<br />';
       
$compteur++; // ajoute 1 à la variable du compteur
       
// fin du while

?>




Pourquoi ma commande mail() ne marche pas ?
Si vous avez des problèmes d'envois, regardez si votre hébergeur accepte la fonction mail().
Les avantages du PHP et des newsletters
Inclure du code HTML dans le mail !! ...que le logiciel de messagerie va interpréter est un avantage formidable !! Le code du tuto permet d'envoyer le mail en HTML, car dans la commande mail() vous avez le type du document et le charset qui sont spécifié. Créer une newsletter qui soit par exemple une page de votre site est possible. Considérer votre logiciel de messagerie comme un navigateur et le tour est joué !!
Les heures où il ne faut pas envoyer une newsletter.
Envoyer vos newsletter aux heures creusent des serveurs. Les heures de pointe sont en générale entre 8-9h / 12-14h / 17h-20h