Envoi de mails grâce à une liste d'e-mail au format txt?

paprikarmasutra Messages postés 15 Date d'inscription vendredi 3 octobre 2003 Statut Membre Dernière intervention 5 décembre 2003 - 3 déc. 2003 à 00:00
floflotz Messages postés 240 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 6 janvier 2006 - 3 déc. 2003 à 17:49
Voilà,

je dispose d'un fichier texte qui énumère tous les e-mails de mes visiteurs, ligne par ligne, du type :

trucmuch@yahoo.fr
zozo@hotmail.com
bidule@wanadoo.fr
etc...

Je voudrais créer un script qui permettrait d'envoyer un mail à chaque e-mail du fichier texte. Je ne veux pas un mail groupé, je préfère passer par une boucle pour envoyer les mails un à un.

Comment puis-je faire une boucle de façon à ce que ça lise l'e-mail ligne par ligne dans le fichier texte, puis que ça envoie le mail, puis que ça lise la seconde ligne, puis que ça envoie le mail, etc..? Et ainsi pour toute la liste.

Voilà, merci beaucoup si vous pouviez m'aider, c'est assez urgent! Merci! =)

4 réponses

floflotz Messages postés 240 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 6 janvier 2006
3 déc. 2003 à 12:53
tu donnes la solution dans ton texte !!!
c'est juste qu'il suffit de la traduire en language informatique.
dans l'avenir, cherche un peu plus ! tu devrais trouver mais comme en ce moment je suis assez clément (je l'avoue :) )
je vais te filer un tit coup de pouce :

$sujet="coucou";
$message="hello you ;) !";
$file="email.txt";
$file = file ($file);
$res="";

foreach ($file as $num => $line) {
mail($line,$sujet,$message);
}

afin d'améliorer ce vulgaire script, je te conseille de faire une fonction qui vérifie à chaque fois $line (email valide,supprimer le \n,enlever les espaces,...)
0
paprikarmasutra Messages postés 15 Date d'inscription vendredi 3 octobre 2003 Statut Membre Dernière intervention 5 décembre 2003
3 déc. 2003 à 17:29
Wow super floflotz! Ca marche au poil! Par contre y'a un ou deux trucs que je pige pas... Déjà, qu'est-ce que vient faire la variable $res ici? Elle sert à rien nan? Ensuite, si je comprends bien, la fonction foreach ($file as $num => $line){} permet d'attribuer un chiffre à chaque ligne, c'est ça? Merci encore! =)
0
floflotz Messages postés 240 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 6 janvier 2006
3 déc. 2003 à 17:43
désolé en effet la variable $res ne sert à rien (elle m'a été utile pour tester car j'allais pas m'amuser à envoyer des mails à n'importe qui donc je stockais mes résultats dedans !)

tu as parfaitement compris le principe de la fonction foreach() ! elle sert à sélectionner une case d'un tableau à chaque tour de boucle en attribuant l'indice de la case ($num) et le contenu de cette case ($line)

pour tous problèmes sur les fonctions, n'hésite pas à aller sur www.php.net. Tu as la liste de toutes les fonctions php avec des exemples, des remarques d'utilisateurs et des liens vers d'autres fonctions similaires ou liées!

bon courage pour la suite
0
floflotz Messages postés 240 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 6 janvier 2006
3 déc. 2003 à 17:49
de plus je te conseille de stocker un peu plus dans ton fichier txt de mail parce que la, le message sera adressé à toto@toto.fr et je pense qu'il est plus sympa de l'adresser à son nom !

ton fichier txt pourrait etre :
Paul;DUPONT;paul@dupont.fr
Francois;PONTDU;francois@pontdu.fr
...
...

dans ce cas, il suffit de modifier le script en conséquence :
$sujet="coucou";
$message="hello you ;) !";
$file="email.txt";
$file = file ($file);

foreach ($file as $num => $line) {
$line=explode(";",$line);
mail("$line[0] $line[1] <$line[3]>",$sujet,$message,"From: Ton nom < moi@moi.fr>");
}
0
Rejoignez-nous