Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1220 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  Envoyer 20 000 mails en 1 seule fois

 


 Mot :   Pseudo :  
 
 Page :   1  2
Page Précédente
Auteur Sujet :

Envoyer 20 000 mails en 1 seule fois

n°1224168
imcdb
Posté le 16-10-2005 à 23:47:17  profilanswer
 

bonjour a tous,
 
je souhaite écrire un script qui enverra un mail à 20 000 adresses déjà inscrite dans une table mailing_liste, contenant un champ unique "email"
 
pour chaque enregistrement, je recupere dans une boucle le mail auquel j'envoi le message, mais pour 20 000 adresses je me tape un timeout, forcement. d'autant qu'en utilisant le SMTP de free, mon FAI, je me tape une interdiction d'envoi dès 400 mails envoyés.
 
voici mon code :  

Code :
  1. $req = mysql_query("SELECT email FROM table WHERE email like '%@%' " );
  2. while($tab = mysql_fetch_array($req))
  3. {
  4. $mail_body = "bla bla bla";
  5.  mail($tab[0],$sujet,$mail_body,$opt);
  6. }


 
J'aimerais trouver une combine pour envoyer mes 20 000 mails en une fois sans me taper de timeout...
une idée ??

Message cité 1 fois
Message édité par imcdb le 16-10-2005 à 23:48:05

---------------
Réagissez et commentez mes dessins sur snut.fr
mood
Publicité
Posté le 16-10-2005 à 23:47:17  profilanswer
 

n°1224170
flo850
moi je
Posté le 16-10-2005 à 23:51:09  profilanswer
 

installe un serveur de mail chez toi  
 
mais forcement, c'est plus compliqué  
 
sinon, c'est pas un peu du spam ?  
 
le serveur apache est il chez toi ou pas ?

n°1224173
imcdb
Posté le 16-10-2005 à 23:55:49  profilanswer
 

oui il est chez moi
en fait, je veux tenir informés les gens inscrits sur mon jeu, ceux qui m'ont donné leur mail à cet effet. Donc hors spam, avec evidemment le petit message de desinscription qui va bien ;)


---------------
Réagissez et commentez mes dessins sur snut.fr
n°1224174
imcdb
Posté le 16-10-2005 à 23:56:11  profilanswer
 

sinon, quel serveur SMTP gratuit me conseillez-vous pour cette charge d'envoi ?


---------------
Réagissez et commentez mes dessins sur snut.fr
n°1224175
gm_superst​ar
Appelez-moi Super
Posté le 17-10-2005 à 00:07:21  profilanswer
 
n°1224179
imcdb
Posté le 17-10-2005 à 00:23:31  profilanswer
 

cool... merci pour le lien
question : peux-tu y importer un carnet d'adresses deja constitué ?


---------------
Réagissez et commentez mes dessins sur snut.fr
n°1224306
FlorentG
Unité de Masse
Posté le 17-10-2005 à 11:27:57  profilanswer
 

imcdb a écrit :

bonjour a tous,
 
je souhaite écrire un script qui enverra un mail à 20 000 adresses déjà inscrite dans une table mailing_liste, contenant un champ unique "email"
 
pour chaque enregistrement, je recupere dans une boucle le mail auquel j'envoi le message, mais pour 20 000 adresses je me tape un timeout, forcement. d'autant qu'en utilisant le SMTP de free, mon FAI, je me tape une interdiction d'envoi dès 400 mails envoyés.
 
voici mon code :  

Code :
  1. $req = mysql_query("SELECT email FROM table WHERE email like '%@%' " );
  2. while($tab = mysql_fetch_array($req))
  3. {
  4. $mail_body = "bla bla bla";
  5.  mail($tab[0],$sujet,$mail_body,$opt);
  6. }


 
J'aimerais trouver une combine pour envoyer mes 20 000 mails en une fois sans me taper de timeout...
une idée ??


Ah ouais forcément. Dans la doc de PHP, ils expliquent que c'est pas bien de faire ça, vu qu'un socket est ouvert à chaque appel de la fonction mail... Et en mettant dans le premier argument de mail un tableau avec tous les mails, ça marche pas ? [:dawa] (ou plutot en champ Bcc)

n°1224312
imcdb
Posté le 17-10-2005 à 11:32:39  profilanswer
 

tu écrirais ca comment ? avec 20 000 mails, c'est pas un peu chaud ?


---------------
Réagissez et commentez mes dessins sur snut.fr
n°1224315
FlorentG
Unité de Masse
Posté le 17-10-2005 à 11:33:41  profilanswer
 

Ch'ais pas, faut essayer...

n°1224318
imcdb
Posté le 17-10-2005 à 11:35:36  profilanswer
 

récupérer les adresses de la bdd sous forme de tableau, tu ferais comment ?
 

Code :
  1. $req = mysql_query("SELECT email FROM ad_joueurs WHERE email like '%@%' limit $debut, 100" );
  2. echo "mails = array(";
  3. while($tab = mysql_fetch_array($req))
  4. {
  5. echo "'".$tab[0]."',\n";
  6. }
  7. echo " );";


Message édité par imcdb le 17-10-2005 à 11:40:56

---------------
Réagissez et commentez mes dessins sur snut.fr
mood
Publicité
Posté le 17-10-2005 à 11:35:36  profilanswer
 

n°1224321
FlorentG
Unité de Masse
Posté le 17-10-2005 à 11:37:05  profilanswer
 

Gné ? [:johneh]

n°1224330
imcdb
Posté le 17-10-2005 à 11:41:33  profilanswer
 

avec ca j'obtiens
 
mail = array('mail1',...,'mailX');
 
 
auquel je rajoute un $
 
et j'ai mon tableau

Code :
  1. $mails = array('............');


 
Apres, je mets ce tableau en 1er arg dans la commande mail ?


Message édité par imcdb le 17-10-2005 à 11:45:24

---------------
Réagissez et commentez mes dessins sur snut.fr
n°1224332
sircam
I Like Trains
Posté le 17-10-2005 à 11:42:35  profilanswer
 

imcdb>
 
Tu vas encore faire disparaître ton topic comme la dernière fois ? [:itm]
 
Après avoir été supsecté par certains de spamming sur ce forum - ce qui est fondé ou pas, je n'en sais rien -, voilà que tu demandes une méthode pour envoyer des emails à la pelle...
 
Hmmm...
 
Tout cela soulève bien des questions.
 
[:pingouino]


Message édité par sircam le 17-10-2005 à 11:42:49

---------------
Now Playing: {SYNTAX ERROR AT LINE 1210}
n°1224334
imcdb
Posté le 17-10-2005 à 11:44:19  profilanswer
 


je vois pas en quoi c'est suspect de vouloir envoyer des mails en masses aux joueurs inscrits sur mon jeu  :??:  :??:  
 
faut aps etre parano, non plus  :D  
Quant a l'autre topic, je l'ai viré car ca faisait en effet vraiment pub...


---------------
Réagissez et commentez mes dessins sur snut.fr
n°1224365
imcdb
Posté le 17-10-2005 à 12:03:49  profilanswer
 

je suppose qu'ne faisant ca
 

Code :
  1. require('addrs.php'); // tableau $addr_mail comprenant les addresses mail
  2. foreach($addr_mail as $mail)
  3. {
  4. mail($mail,"xxxxxx, Test Newsletter","test","From: xxxxx@gmail.com" );
  5. }


 
un nouveau socket est aussi ouvert a chaque envoi de mail, non ?


Message édité par imcdb le 17-10-2005 à 12:04:13

---------------
Réagissez et commentez mes dessins sur snut.fr
n°1224369
sircam
I Like Trains
Posté le 17-10-2005 à 12:07:27  profilanswer
 

Enfin bref:
 
- Fais ça impérativement en "local";
- Le code pour envoyer 10 emails est semblable à celui pour en envoyer 1 million;
- Prends du "checkpoints persistents" -> Si ça plante en cours de route, tu ne reprends que là où ça s'est arrêté.
- Une mailing list : heu... Un peu lourd l'admin ML de free pour 20.000 personnes, hein. [:pingouino]
- Clause WHERE email like '%@%' => gné ? [:mlc]
- Sois bien sûr de ton coup : si tu fais ça en local, sur 20.000, le risque de plainte devient assez important (0,1%, ça ferait encore 20 mécontents potentiels) => ton FAI risque de ne pas apprécier...


---------------
Now Playing: {SYNTAX ERROR AT LINE 1210}
n°1224389
imcdb
Posté le 17-10-2005 à 12:21:16  profilanswer
 

sircam a écrit :

Enfin bref:
 
- Fais ça impérativement en "local"; c'est fait
- Le code pour envoyer 10 emails est semblable à celui pour en envoyer 1 million; c'est a dire ?
- Prends du "checkpoints persistents" -> Si ça plante en cours de route, tu ne reprends que là où ça s'est arrêté. comment on fait ?
- Une mailing list : heu... Un peu lourd l'admin ML de free pour 20.000 personnes, hein. [:pingouino]
- Clause WHERE email like '%@%' => gné ? [:mlc] pour verifier la validite de l'addresse dest
- Sois bien sûr de ton coup : si tu fais ça en local, sur 20.000, le risque de plainte devient assez important (0,1%, ça ferait encore 20 mécontents potentiels) => ton FAI risque de ne pas apprécier...



---------------
Réagissez et commentez mes dessins sur snut.fr
n°1224402
flo850
moi je
Posté le 17-10-2005 à 12:50:14  profilanswer
 

imcdb a écrit :

sinon, quel serveur SMTP gratuit me conseillez-vous pour cette charge d'envoi ?


 
perso ,j'utilise postfix pour mes mailing ( sous linux )  
sous winodw s, j'utilise power emailer ( qui est payant )


---------------

n°1224403
skeye
Posté le 17-10-2005 à 12:50:36  profilanswer
 

imcdb a écrit :

pour verifier la validite de l'addresse dest


Avec where email like '%@%'?[:ktulu]
 
[:rofl2]


---------------
Can't buy what I want because it's free -
n°1224409
sircam
I Like Trains
Posté le 17-10-2005 à 12:58:52  profilanswer
 

Citation :

c'est a dire ?


Que ça ne change rien, entre 10 et 100.000. [:pingouino]

Citation :

comment on fait ?


On réfléchit sommairement et on pisse le code qui va bien. [:pingouino]

Citation :

pour verifier la validite de l'addresse dest


Ca vaut un coup de pelle à clous ! [:mlc]
 
Skoi ce bricolage ? Garbage in, garbage out. On vérifie la validité de l'adresse AVANT de la stocker dans la DB, pas au moment de l'utiliser !


---------------
Now Playing: {SYNTAX ERROR AT LINE 1210}
n°1224508
imcdb
Posté le 17-10-2005 à 14:00:08  profilanswer
 

disons que j'ai oublié de faire le test avant... donc, tenons pas compte de cette vérification, et que toutes les addr sont valides.
 
on va pas se compliquer la vie.
donc Cpas possible, c'est ca ?


---------------
Réagissez et commentez mes dessins sur snut.fr
n°1224552
sircam
I Like Trains
Posté le 17-10-2005 à 14:23:47  profilanswer
 

imcdb a écrit :

donc Cpas possible, c'est ca ?


Qu'est-ce qui n'est pas possible ??? Envoyer 20.000 emails ? Beh ouais, c'est possible.    [:pingouino]  


---------------
Now Playing: {SYNTAX ERROR AT LINE 1210}
n°1224569
imcdb
Posté le 17-10-2005 à 14:30:41  profilanswer
 

mais en reprenant ca  

Code :
  1. require('addrs.php'); // tableau $addr_mail comprenant les addresses mail  
  2. foreach($addr_mail as $mail)
  3. {
  4.     mail($mail,"xxxxxx, Test Newsletter","test","From: xxxxx@gmail.com" );
  5. }


 
je vais me taper un beau timeout de chez free...


---------------
Réagissez et commentez mes dessins sur snut.fr
n°1224576
sircam
I Like Trains
Posté le 17-10-2005 à 14:33:12  profilanswer
 

Sklair.
 
On a bien dit EN LOCAL, et tu m'as bien dit "c'est fait". Alors, quel est le rapport avec un timeout chez Free ?


---------------
Now Playing: {SYNTAX ERROR AT LINE 1210}
n°1224628
imcdb
Posté le 17-10-2005 à 15:16:17  profilanswer
 

je me suis mal exprimé. En fait, le SMTP de free emp^che d'envoyer plus de 400 mails en un seul bloc... après, il faut attendre une heure puor ré-envoyer d'autres mails...


---------------
Réagissez et commentez mes dessins sur snut.fr
n°1224630
Roane
Pingouino's fan
Posté le 17-10-2005 à 15:19:53  profilanswer
 

Et c'est pour cette raison qu'on t'explique d'envoyer les mails de TON pc (en local donc) avec un serveur mail que tu installes sur ton pc ...


---------------
http://www.alsacreations.com, http://www.openweb.eu.org. Mon CV : http://cv.roane-irkana.net. A ne surtout pas prendre en exemple : http://www.worldinternet.be
n°1224633
sircam
I Like Trains
Posté le 17-10-2005 à 15:23:40  profilanswer
 

imcdb a écrit :

je me suis mal exprimé. En fait, le SMTP de free emp^che d'envoyer plus de 400 mails en un seul bloc... après, il faut attendre une heure puor ré-envoyer d'autres mails...


Ca, tu laisses tomber. Free permet d'envoyer des emails p.e. pour confirmer un enregistrement. Si c'est pour faire du mailing, ça devient rapidement limite. Vu la masse que tu demandes, c'est hors de question.
 
Tu passes en local, ou avec une offre d'hosting plus professionnelle - encore une fois, vu la masse, ça ma paraît être de rigueur.


---------------
Now Playing: {SYNTAX ERROR AT LINE 1210}
n°1224937
gm_superst​ar
Appelez-moi Super
Posté le 17-10-2005 à 21:31:57  profilanswer
 

imcdb a écrit :

cool... merci pour le lien
question : peux-tu y importer un carnet d'adresses deja constitué ?


Mmm non [:petrus75]
 
Faudra que tu envoies 20000 mails à tes utilisateurs pour leur dire de s'inscrire à la mailing-list [:petrus75]
 
 
Il aurait fallu l'utiliser dès le départ... Donc je rejoins sircam, vu le volume de mails en envoyer il faut que tu prennes un service spécialisé...


---------------
Incongru : une FAQ abandonnée sur les Standards du Web - FAQ périmée de blabla@Prog
n°1225003
belette33
Posté le 17-10-2005 à 23:52:30  profilanswer
 

Pour faire plus simple, tu fais mets juste tous tes mails en copie caché..
C rapide a l'envoi et plus simple...


---------------
création de site internet pour mairie | Le blog de Manu
n°1225092
sircam
I Like Trains
Posté le 18-10-2005 à 09:15:02  profilanswer
 

belette33 a écrit :

Pour faire plus simple, tu fais mets juste tous tes mails en copie caché..
C rapide a l'envoi et plus simple...


 :non: Mauvaise idée. Ca fait très impersonnel, ça fait "chipotage", comme on dit chez nous. Perso, je suis à deux doigts de filtrer les emails dans lesquelles aucune de mes adresses n'apparaît. Ca fout à néant les règles de filtrage d'email du destinataire, p.e. s'il utilise des adresses adhoc auprès de chaque site où il s'enregistre (c'est ce que je fais).
 
Un peu comme si on t'envoyait un courrier papier, mais dont tu n'est pas le destinataire annoncé sur l'enveloppe et sur la lettre : qu'est-ce que tu ferais face à un tel courrier ?   [:pingouino]


---------------
Now Playing: {SYNTAX ERROR AT LINE 1210}
n°1225367
outdial
Posté le 18-10-2005 à 14:20:28  profilanswer
 

Jettes un oeil la dessus.
http://pear.php.net/package/Net_SMTP
 
Tu peux utiliser une classe qui fait office de mini daemon SMTP pour envoyer tes mails (plus d'utilisation de mail()) et tu peux le faire de chez toi plutôt que de chez free.

n°1225396
FlorentG
Unité de Masse
Posté le 18-10-2005 à 14:49:27  profilanswer
 

sircam a écrit :

:non: Mauvaise idée. Ca fait très impersonnel, ça fait "chipotage", comme on dit chez nous. Perso, je suis à deux doigts de filtrer les emails dans lesquelles aucune de mes adresses n'apparaît. Ca fout à néant les règles de filtrage d'email du destinataire, p.e. s'il utilise des adresses adhoc auprès de chaque site où il s'enregistre (c'est ce que je fais).


Hein :??: En copie cachée, tu reçois bien le mail, à ton adresse, sans voir les adresses des autres, ce qui est obligatoire pour une mailing list :??:

n°1225428
sircam
I Like Trains
Posté le 18-10-2005 à 15:10:55  profilanswer
 

FlorentG a écrit :

Hein :??: En copie cachée, tu reçois bien le mail, à ton adresse, sans voir les adresses des autres, ce qui est obligatoire pour une mailing list :??:


Beh tu n'es pas dans le champs "To". Tu reçois l'email, mais il est adressé à "undisclosed recipients" ou à un tiers. Une hérésie, mais c'est comme ça.   [:pingouino]
 
Et si tu as un nombre infini d'adresses qui pointent sur ta mailbox, parce que tu utilises des adresses adhoc à chaque fois que tu t'enregistres sur un site, tu l'as un peu dans l'os.   [:pingouino]


---------------
Now Playing: {SYNTAX ERROR AT LINE 1210}
n°1225465
imcdb
Posté le 18-10-2005 à 15:30:36  profilanswer
 

outdial a écrit :

Jettes un oeil la dessus.
http://pear.php.net/package/Net_SMTP
 
Tu peux utiliser une classe qui fait office de mini daemon SMTP pour envoyer tes mails (plus d'utilisation de mail()) et tu peux le faire de chez toi plutôt que de chez free.


on a un equivalent sous apache windows ?


---------------
Réagissez et commentez mes dessins sur snut.fr
n°1225473
multani
Dépressionnisé
Posté le 18-10-2005 à 15:37:10  profilanswer
 

imcdb a écrit :

on a un equivalent sous apache windows ?


[:pingouino]

n°1225500
imcdb
Posté le 18-10-2005 à 15:58:20  profilanswer
 

installation OK, mais je sais pas comment appeler les fonctions inclues dans le package PEAR pour utiliser le module net_SMTP
 
comment l'appelle-t-on dans le script d'envoi de mail ?


Message édité par imcdb le 18-10-2005 à 16:06:46

---------------
Réagissez et commentez mes dessins sur snut.fr
n°1225534
imcdb
Posté le 18-10-2005 à 16:31:59  profilanswer
 

Voila un script proposé sur le site officiel de PEAR
 

Code :
  1. <?php
  2. include('Mail.php');
  3. $destinataires = array('To' => 'jules@exemple.com',
  4.                     'Bcc' => 'jeanne@exemple.com');
  5. $entete['From']    = 'eric@exemple.com';
  6. $entete['To']      = 'jean@exemple.com';
  7. $entete['Subject'] = 'Message de test';
  8. $contenu = 'Message de test';
  9. $parametres['sendmail_path'] = '/usr/lib/sendmail';
  10. // Creer l'objet mail avec la methode Mail::factory  
  11. $mail_object =& Mail::factory('sendmail', $parametres);
  12. $mail_object->send($destinataires, $entete, $contenu);
  13. ?>


 
Mais bon, c'est evident que le premier require va planter, vu que le Mail.php n'est pas à la racine de mon WWW mais dans le rep c:\php\pear\ de mon DD...  
 
Question, ou positionner ce script, et comment y faire appel (en modifiant le httpd d'Apache) ?


---------------
Réagissez et commentez mes dessins sur snut.fr
n°1225537
skeye
Posté le 18-10-2005 à 16:34:48  profilanswer
 

[:mlc]
Ajouter le rep de PEAR dans le include_dir?[:pingouino]


---------------
Can't buy what I want because it's free -
n°1225570
imcdb
Posté le 18-10-2005 à 17:20:03  profilanswer
 

dans le php.ini ou httpd.conf ?


---------------
Réagissez et commentez mes dessins sur snut.fr
n°1225644
skeye
Posté le 18-10-2005 à 18:43:22  profilanswer
 

php.ini, triple buse, c'est une option de php, apache a rien à voir là-dedans!:o


---------------
Can't buy what I want because it's free -
mood
Publicité
Posté le   profilanswer
 

 Page :   1  2
Page Précédente

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  Envoyer 20 000 mails en 1 seule fois

 

Sujets relatifs
comment envoyer un objet avec des entrees/sorties(java)Envoyer des mails avec images intégrées
lire 2 touches a la fois sur le clavier & codec mp3Assembler le résultat de deux requetes sur une seule ligne
? envoyer un sms depuis un portable par un PocketPCComment (dans un swf) envoyer une valeur à une variable php ?
envoyer image de userfrom vers feuille de calculenvoyer un message a un utilisateur
copier-coller plusieurs fois une sélection 
Plus de sujets relatifs à : Envoyer 20 000 mails en 1 seule fois


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR