Newsletter

Nouveau WRInaute
Bonjour à tous

Voilà je viens de préparé ma newsletter avec formulaire , base de données ,

Voici la structure de ma table
`mail` (
`id`
`nomprenom`
`email`
`cp`
`date`

En fait maintenant j'aimerai pouvoir envoyer un mail à toutes les personnes qui vont s'inscrire ! et pouvoir aussi selectionné l'envoie par département
ps : les départements sont déja prédéfini avec un menu déroulant.

Pouvez vous m'aider là dessus ?? car je flanche !! :(

Merci
 
WRInaute discret
ben si tu as déjà ta table, il te reste à lire son contenu puis à généré l'envoi des mails via la fonction mail() de php...

plusieurs possibilité soit tu boucles et tu génères un mail() par abonné, soit tu te prépare une chaine contenant tous les destinataires que tu mets en Cci de ta newsletter. ça dépend un peu de si tu as besoin de "personnaliser" l'envoi ou pas.

pour les filtres, ça passe par l'instruction WHERE de mysql qui te permettras de filtrer ta requête...

Pour être plus précis, je crois qu'il faudrais plus de précisions sur l'endroit où tu coinces en particulier... Car si tu es déjà arrivé là (faire remplir la base de donnée avec ton form, y'a pas de raison que ça coince ici ;) )
 
Nouveau WRInaute
En fait mon petit soucis est que :

j'ai les mails, pseudo etc .. stocké donc dans ma base de donnée


Quel commande faire pour que je puisse déja faire rien qu'un formulaire ou j'ecri mon message et que ca l'envoie a toutes les personnes qui sont dans ma base ??
 
WRInaute accro
Greg84 a dit:
Quel commande faire pour que je puisse déja faire rien qu'un formulaire ou j'ecri mon message et que ca l'envoie a toutes les personnes qui sont dans ma base ??
smrhp t'as déjà donné une bonne piste.
Que désires-tu en fait ? la procédure, des bouts de codes ?

Je pars pour un genre de mix des 2...

Si tu veux ouvrir une page web où tu ne fais que saisir le texte de ta newsletter, il te faut d'abord créer cette page de saisie.
Cette page est une page php que toi seul peut voir.

Pour cela, il faut
a/ créer une table "superadmin" dans la base de données où tu stockeras les login+pass du super administrateur (tu peux crypter les données avec la fonction md5 si tu veux).

b/ Ensuite tu crées la page "identification.php", où le super admin doit se connecter via un formualire qui lui demande login+pass.
Ce formulaire renvoie à la page de contrôle "auth.php".

c/ Tu crées la page auth.php qui contrôlera que les données saisies dans le formulaire sont bonnes.
Pour cela tu récupères le login+pass du formulaire, tu récupères le login+pass du super admin depuis la bdd et puis tu compares les deux
Si les données sont les mêmes, tu le rediriges vers la page de saisie de la newsletter (sinon tu affiches un message d'erreur)...

d/ Ensuite tu crées la page de saisie de la newsletter avec un champ "contenu" et un bouton "Envoyer"
(tu pourrais prévoir de rentrer du texte html dans le champ contenu pour mettre en forme la newsletter...)
(Les paramètres de ce formulaire seront envoyés (action="") à la page qui envoit la newsletter "envoyer.php".)

e/ Tu crées la page "envoyer.php", dans laquelle tu récupères les données du formulaire ($contenu).
Ensuite tu récupères dans un tableau les emails des destinataires dans une boucle while (cf message de smrhp) à l'aide d'une requête sql
exemple de code (incomplet)
Code:
$q = "select email from mail where email<>""";
//...mettre ici code de connexion à la base de données... 
$connexion =...
$res = @mysql_query($q,$connexion)
//fermeture de la connexion à la bdd
@mysql_close();

while(@mysql_num_rows($res)>0){
  $un_res = $res["email"];
  //création de la chaîne Cci en concaténant $un_res
  $emails .= $un_res.",";
...
}

f/ Ensuite, tu as maintenant le $contenu et la liste des $emails_cci.
Il ne te reste plus qu'à rédiger la fonction mail
Code:
mail($emails,$sujet,$contenu);
et à l'agrémenter selon tes choix (envoyer en cci; ajouter des headers, quel fonction mail est employée par ton hébergeur ?, etc.)

Plus d'infos : http://www.commentcamarche.net/php/phpmail.php3
 
WRInaute discret
ben y'a pas vraiment "une" commande magique ;)

ton formulaire se poste à ta page, ta page fait une requête mysql pour récupérer tout les detinataires et hop on envoit...

Très (très) shématiquement :

Code:
$req=mysql_query("SELECT mail FROM table_mails");
while($enr = mysql_fetch_array($req)) {
  $mesdestinatires .= $enr['mail'].";";
}
$header = "Cci: ".$mesdestinataires."\n";
mail("monadr@ndd.tld",$_POST['sujet'],$_POST['msg'],$header);

en gros on récupère les mails de table_mails on les regroupe dans $mesdestinataires et on envoit le mail via mail()...
Après faut afiner pour filtrer comme tu le souhaites par CP par exemple avec du WHERE et du LIKE dans ta reuête SELECT.
Puis il faut travailler sûrement aussi un peu le header

en gros il faut voir l'aide MYSQL sur les requêtes SELECT puis l'aide PHP sur les fonctions permettant les requêtes mysql et le parcours des résultats. Puis la fonction mail()...

bon courage ;)
 
WRInaute accro
oui c'est vrai :wink:
(mais cela dit je préfère ta version moi j'avais la flemme c'est dimanche :lol:)
 
Discussions similaires
Haut