>Newsletter aux membres d'une Base de Données

Fermé
Sosthen Messages postés 57 Date d'inscription mardi 20 septembre 2011 Statut Membre Dernière intervention 8 août 2013 - 30 nov. 2011 à 19:30
Sosthen Messages postés 57 Date d'inscription mardi 20 septembre 2011 Statut Membre Dernière intervention 8 août 2013 - 2 déc. 2011 à 18:29
Bonjour,

je viens d'installer sur mon site, un script pour l'envoi de newsletter.
Celui-ci me permet d'envoyer une newsletter mise en forme (html).
J'ai un formulaire (sur une autre page) qui permet de s'inscrire à cette newsletter, une fois fait, cela ajoute des données dans ma BDD (phpMyAdmin) > id & mail.
Tout ça ça marche c'est super mais maintenance, je peux envoyer mon mail à une personne (pour le test c'est moi) mais comment faire pour l'envoyer à tous les e-mail de la table concernée ?
Voici mon script:

<?php
if(isset($_POST['email']) and isset($_POST['sujet']) and isset($_POST['message']))
{
        $destinataire = $destinataires; // C'est ici, il manque le script qui dira ce qu'il faut faire...
        $email = 'noreply@sos10.com';
        if(preg_match('#^(([a-z0-9!\#$%&\\\'*+/=?^_'{|}~-]+\.?)*[a-z0-9!\#$%&\\\'*+/=?^_'{|}~-]+)@(([a-z0-9-_]+\.?)*[a-z0-9-_]+)\.[a-z]{2,}$#i',str_replace('&amp;','&',$email)))
        {
                $sujet = 'Newsletter: '.stripslashes($_POST['sujet']);
                $message = '<html><head><title>SOS10 - Newsletter</title></head><body>'.stripslashes($_POST['message']).'</body></html>';
                $headers  = 'MIME-Version: 1.0' . "\r\n";
                $headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
                $headers .= "From: <SOS10>\n";
                $headers .= "Reply-To: ".$email."\n";
                
                if(mail($destinataire,$sujet,$message,$headers))
                {
                        echo'<p class="info" id="success"><span class="info_inner">Newsletter envoyée !</span></p>';
                }
                else
                {
                        echo'<p class="info" id="error"><span class="info_inner">Erreur lors de l\'envoi du message...</span></p>';
                }
        }
}
else
{
?>


(Ce n'est que le script php, il y a un formulaire aussi)

Voilà ce qu'il me manque c'est le code qui me permettra d'envoyer le mail à tous les inscrits, quelqu'un pourrait-il venir en aide à un petit débutant ^^ ?

En vous remerciant d'avance, Sosthen.

2 réponses

persol Messages postés 53 Date d'inscription vendredi 2 octobre 2009 Statut Membre Dernière intervention 2 décembre 2011 9
2 déc. 2011 à 01:43
Bonjour,

Il faut que tu fasses une boucle. pour qu'a chaque fois qu'il y a un e-mail dans ta db tu envois un email. Regarde un peut la doc de while ou foreach. Ensuite, il faut aussi que tu extrait tes données de la base. un truc du genre:

while ($d = mysql_fetch_array($query))
{
 // ta boucle d'envoi de mail 
}


Cette solution est bonne si ta base de mail n'est pas trop lourde. Sinon il faudrait passer par un système de mailing list.

++
Gabriel
0
Sosthen Messages postés 57 Date d'inscription mardi 20 septembre 2011 Statut Membre Dernière intervention 8 août 2013 9
2 déc. 2011 à 18:29
Ouais c'est assez galère, en fait y'a personne dans ma DB je code une zone d'administration pour des amis et de la famille, un truc simple d'utilisation mais complet.
Ce que j'aurai aimer c'est permettre l'envoi depuis la zone mais bon...
Le truc que je comprend pas c'est comment faire, faut faire une boucle par mail à envoyer ??
Parce que c'est impossible comme ça, vu que des gens peuvent s'inscrire à tout moment, faudrait que je modifie le fichier à chaque nouvel inscrit, autant envoyer le mail via MSN quoi ^^

Merci de ta réponse.
0