script php: lisant le contenu d'un fichier externe

script php: lisant le contenu d'un fichier externe - PHP - Programmation

Marsh Posté le 15-02-2006 à 16:55:18    

bonjour,
 
je cherche a mettre en place un petit script php fesant ceci:
 
-envoyer un e-mail sous la forme d'un fichier .html
 
Donc il y aurai: - un bouton parcourir ( on sélectionne le .html )
                       - un champ pour indiquer le sujet du message
                        - et ce fameux bouton Envoyer.
 
Jusque la ça va.  
Mon problème :
 
   Quand on clique sur le bouton envoyer, le script doit allez lire un fichier externe comprenant la liste des adresses e-mails. Il prend la 1ere adresse e-mail envoie le fichier sous forme de mail ( pas en fichier joint ). ainsi de suite pour chaque adresse compris dans le fichier externe. Je vous donc déja l'utilisation d'une boucle.
 
( Exemple d'utilisation: une entreprise veut envoyer une campagne de pub a son carnet d'adresses de clients. )
 
Donc voila je suis débutant en php et je ne sais pas trop comment m'y prendre au niveau de la lecture du fichier externe. Est ce que quelqun pourrait-il me guider?  
 
merci d'avance

Reply

Marsh Posté le 15-02-2006 à 16:55:18   

Reply

Marsh Posté le 15-02-2006 à 16:59:15    

pourquoi ne pas mettre tout simplement une adresse email par ligne dans ton fichier ?
 
http://fr2.php.net/file


---------------
http://poemes.iceteapeche.com - http://www.simuland.net
Reply

Marsh Posté le 15-02-2006 à 17:05:05    

non, plutôt mettre un séparateur entre chaque adresse. du genre un ;
on obtient donc un fichier contenant :

Citation :

mail@host.com;mail@host2.com;mail2@host.com etc...


 
Ensuite le code :

Code :
  1. $liste = explode(";",file_get_contents("liste_mail.txt" ));
  2. for($i=0;$i<count($liste);$i++)
  3.     mail(-les infos à mettre dont $liste[$i] comme adresse du destinnataire-);


 
Et s'il y a beaucoup d'adresses, faire attention au timeout.


Message édité par dwogsi le 15-02-2006 à 17:07:21
Reply

Marsh Posté le 15-02-2006 à 17:17:27    

je suis plutôt parti sur la méthode de dwogsi merci à vous deux.

Reply

Marsh Posté le 15-02-2006 à 17:41:36    

Si tu dois envoyer un mail à plusieurs centaines de personnes il faut faire attention de ne pas saturer le serveur de mail :

  • certain serveurs de mails limitent le nombre d'envoie de mail par utilisateur dans un temps donnée. A mon boulot, on est limité à 100 mails par 30 secondes.
  • certains serveurs sont sur des machines qui ne sont pas capable d'envoyer plus de n mails par secondes. (une fois le nombre dépassé de tant de mail, le serveur refusera les suivant)
  • certains serveur ont une file d'attente en envoie qui est limité : si on la remplis à raz bord, les mails suivants seront refusé


De plus, l'envoie d'un mail prend un certain temps, en multipliant ce temps par le nombre de mail à envoyer, alors le script risque de dépasser le temps qui lui est impartie et donc de s'arrêter avant la fin du traitement. Si le script php est lancé en ligne de commande, il n'y aura pas ce probléme là.
 
 
Pour éviter tout ça, le mieux, c'est de penser à envoyer les mails par lot. je m'explique :

  • le navigateur demande l'envoie de mail, le script va lire les n premiére lignes du fichiers et envoyer aux adresses correspondantes.
  • une fois ces mails envoyé, le script va fermer le fichier et demander au navigateur de le rapeller à nouveau aprés tant de temps
  • a l'appel suivant le script va lire les n premiéres lignes du fichier sans les traiter et les n suivantes qu'il traitera

Reply

Marsh Posté le 15-02-2006 à 17:45:45    

je rencontre un autre petit soucis, pour la variable $message .
 
comment définir automatiquement le contenu du message en fonction de ce que l'on veut envoyer.
 
exemple si dans le code html je fais un champ qui dis entrer  l'url de la page html ( qui est en ligne ) .
 
et apres dans php si je mets  

Code :
  1. $message = $_POST ['url'];


 
il va me mettre dans le corps du message l'url et non m'afficher la page html  
 
C'est pas évident à expliquer  ^^ désolé
 
Vous avez des idées ?

Reply

Marsh Posté le 15-02-2006 à 17:50:04    

définir correctement l'entête
$corps = file_get_contents($_POST['url']);
 
ET CHERCHE UN PEU BORDEL
Je t'ais déjà donner un bon bou de code pour faire ton envois alors essais un peu!!!
Va lire LA DOC!!!!!


Message édité par dwogsi le 15-02-2006 à 17:50:59

---------------
-- Debian -- Le système d'exploitation universel | Le gras c'est la vie! | /(bb|[^b]{2})/
Reply

Marsh Posté le 15-02-2006 à 17:54:30    

si je post c'est que j'ai cherché !!!! merci quand même

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed