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

  FORUM HardWare.fr
  Programmation
  PHP

  php massmailing

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

php massmailing

n°351778
djobidjoba
Posté le 03-04-2003 à 16:36:26  profilanswer
 

hello, je souhaite envoyer une newsletter depuis php.
Le pb, c'est que chaque mail est different en fct du client, je ne peux donc pas envoyer 1 seul mail pour tous les clients (en CCI par ex.)
sur php.net, kk1 propose de lancer le script php de mail dans un autre thread, directement en ligne de commande :

Solution to massmailing timeout:
Unsafe solution is to change the timeout properties in php.ini
The better solution is to create separate email object run through window command prompt (in windows) or separate shell function (in unix) that will run itself separately until termination


3 question :
1 - en cherchant je peut trouver comment lancer une commande sys (php.exe massmail.php) mais ce type de fonction est-il supporté par les hébergeurs courant (payant) ?
2 - le fait de la lancer en ligne de cmd, permet-il de passer outre le timeout ?
3 - kk1 a-t-il une autre solution un peu moins bourrin ?

mood
Publicité
Posté le 03-04-2003 à 16:36:26  profilanswer
 

n°351788
djobidjoba
Posté le 03-04-2003 à 16:39:32  profilanswer
 

ya aussi une autre solution : generer le mail sur le site, le recuperer en locale, puis l'envoyer au soft "mailbomber" mais ca complique la chose (2-3 etapes en+)

n°351789
Sh@rdar
Ex-PhPéteur
Posté le 03-04-2003 à 16:39:38  profilanswer
 

pour le sys, oublie, faudrait tomber sur un hébergeur un peu taré de proposer ça...
 
combien t'as de mails à envoyer ??
 
faudrait peut être "tronconner" par paquet de 50/100 adresses et faire tourner en boucle le script en déplacant un pointeur de bdd par exemple...


---------------
La musique c'est comme la bouffe, tu te souviens du restaurant dans lequel t'as bien mangé 20 ans plus tôt, mais pas du sandwich d'il y a 5 minutes :o - Plugin pour winamp ©Harkonnen : http://harko.free.fr/soft
n°351802
djobidjoba
Posté le 03-04-2003 à 16:44:49  profilanswer
 

Sh@rdar a écrit :

pour le sys, oublie, faudrait tomber sur un hébergeur un peu taré de proposer ça...
 
combien t'as de mails à envoyer ??
 
faudrait peut être "tronconner" par paquet de 50/100 adresses et faire tourner en boucle le script en déplacant un pointeur de bdd par exemple...


 
merci, tu propose d'envoyer les mails par paquets,mais là aussi ca va rajouter kks etapes.
pour l'instant ya 20 clients, mais quand y'en aura 800 ?
 
en fait je pensait que c t le seveur mail qui gerais ca (une espece de file d'attente)

n°351806
Sh@rdar
Ex-PhPéteur
Posté le 03-04-2003 à 16:49:14  profilanswer
 

avec php tu es confronté à 2 problèmes liès à la configuration du serveur (que tu peux donc rarement modifier)
 
le max_execution_time (par défaut 30s) c'est le temps maximum alloué à l'exécution de ton script, au dela il sera tué sans sommation
 
le max_memory_consumption, c'est la quantité de mémoire que ton script peut bouffer sur le serveur
 
en gros quand tu arriveras à l'une des 2 limites, faudra t'arranger pour tricher, donc une solution sera de tronconner comme je l'ai écrit
 
avec tes 20 adresses, la fonction mail suffit amplement, (par contre impossible de te dire à combien ça va commencer à ramer / dépasser la limite)
 
 
pour ma solution : il s'agit uniquement de coder un script somme toute pas trop compliqué
 
tu envoies les 50 premiers mails aux adresses de ta BDD, tu marque le 50 ème avec un flag histoire de le retrouver et ensuite tu rafraichis la page avec un header, ensuite tu recommence à partir du flag et ainsi de suite, (gaffe aux boucles infinies quand même)


Message édité par Sh@rdar le 03-04-2003 à 16:51:19

---------------
La musique c'est comme la bouffe, tu te souviens du restaurant dans lequel t'as bien mangé 20 ans plus tôt, mais pas du sandwich d'il y a 5 minutes :o - Plugin pour winamp ©Harkonnen : http://harko.free.fr/soft
n°351809
ethernal
Chercheur de vérité...
Posté le 03-04-2003 à 16:50:05  profilanswer
 

balance de l'html.
le mail ira chercher les infos propre au client (ou la page) sur le site.
moi, j'aime pas ça, mais bon... c'est de plus en plus courant.


---------------
...oups kernel error...
n°351812
djobidjoba
Posté le 03-04-2003 à 16:51:51  profilanswer
 

j'vais sans doute executer ma fonction de massmailing dans un fork
http://www.php.net/manual/fr/function.pcntl-fork.php

n°351818
djobidjoba
Posté le 03-04-2003 à 16:55:08  profilanswer
 

ethernal a écrit :

balance de l'html.
le mail ira chercher les infos propre au client (ou la page) sur le site.
moi, j'aime pas ça, mais bon... c'est de plus en plus courant.


 
héhé pas bête comme idée, mais en fait la difference entre les mails est faîte sur les prix quis ont diff en fonction du client.
un client bidouilleur pourrait facilement avoir les tarifs d'un autre en trafiquant la page html reçue ;)

n°351822
djobidjoba
Posté le 03-04-2003 à 16:57:15  profilanswer
 

Sh@rdar a écrit :

avec php tu es confronté à 2 problèmes liès à la configuration du serveur (que tu peux donc rarement modifier)
 
le max_execution_time (par défaut 30s) c'est le temps maximum alloué à l'exécution de ton script, au dela il sera tué sans sommation
 
le max_memory_consumption, c'est la quantité de mémoire que ton script peut bouffer sur le serveur
 
en gros quand tu arriveras à l'une des 2 limites, faudra t'arranger pour tricher, donc une solution sera de tronconner comme je l'ai écrit
 
avec tes 20 adresses, la fonction mail suffit amplement, (par contre impossible de te dire à combien ça va commencer à ramer / dépasser la limite)
 
 
pour ma solution : il s'agit uniquement de coder un script somme toute pas trop compliqué
 
tu envoies les 50 premiers mails aux adresses de ta BDD, tu marque le 50 ème avec un flag histoire de le retrouver et ensuite tu rafraichis la page avec un header, ensuite tu recommence à partir du flag et ainsi de suite, (gaffe aux boucles infinies quand même)


 
j'ai compris, ca m'a l'air d'être une bonne solution
merci

n°351825
antp
Champion des excuses bidons
Posté le 03-04-2003 à 16:58:53  profilanswer
 

Sh@rdar a écrit :

pour le sys, oublie, faudrait tomber sur un hébergeur un peu taré de proposer ça...


 
sur OVH on a droit à exec( ) :o

mood
Publicité
Posté le 03-04-2003 à 16:58:53  profilanswer
 

n°351829
djobidjoba
Posté le 03-04-2003 à 16:59:52  profilanswer
 

j'me demandais comment faisait les scripts php style (vbulletin, phpbb, etc...) pour envoyer des mails à tous leur abonné ?
kk1 sait ? (g pas envie d'en installer un rien que pour voir)

n°351831
antp
Champion des excuses bidons
Posté le 03-04-2003 à 17:00:31  profilanswer
 

DjobiDjoba a écrit :

un client bidouilleur pourrait facilement avoir les tarifs d'un autre en trafiquant la page html reçue ;)


 
en plus de l'ID tu mets un champ dans la BD contenant un nombre aléatoire.
dans le mail, dans l'url qui appelle les infos, tu mets l'ID + ce nombre aléatoire : pas moyen d'aller consulter les infos d'un autre ID à moins d'avoir bcp de bol :D

n°351837
djobidjoba
Posté le 03-04-2003 à 17:05:10  profilanswer
 

antp a écrit :


 
en plus de l'ID tu mets un champ dans la BD contenant un nombre aléatoire.
dans le mail, dans l'url qui appelle les infos, tu mets l'ID + ce nombre aléatoire : pas moyen d'aller consulter les infos d'un autre ID à moins d'avoir bcp de bol :D


 
ha vi merci,dans ce cas là c'est faisiable.
pour resumer les solution ds l'ordre de simplicité :
- envoyer de l'html
- la methode par paquet
- mailbombing :D depuis le client
- le fork j'oublie : a mon avis j'vais retrouver mon timeout

n°351850
ethernal
Chercheur de vérité...
Posté le 03-04-2003 à 17:15:08  profilanswer
 

en y réfléchissant, je pense que la méthode par html n'est pas vallable...  
ça équivaudrait à balancer du code html différent pour chaque user et donc on en revient au point de départ.


---------------
...oups kernel error...
n°351865
antp
Champion des excuses bidons
Posté le 03-04-2003 à 17:29:27  profilanswer
 

ha bhen oui, c'est con en effet :D

n°351871
djobidjoba
Posté le 03-04-2003 à 17:32:51  profilanswer
 

oué j'ai faillis de poser la question mais sur le coups, moi aussi de mon coté j'ai réfléchis et j'en est déduis que commme il y avait 5 type de tarifs dans mon catlaogue, cela se resume a envoyer 5 mails differents seuleument (avec la methode du CC) ;)
 
voila a+, merci de votre aide
 
 
 

n°351879
djobidjoba
Posté le 03-04-2003 à 17:38:12  profilanswer
 

.... reste a verifier qu'envoyer 1 mail avec 200 personnes en CC ne revient pas à en envoyer 200  le serveur smtp  :??:  
je crois que sendmail attend en fait la reponse du serveur :/

n°351926
ethernal
Chercheur de vérité...
Posté le 03-04-2003 à 18:10:40  profilanswer
 

hummm...  :??:  
ps fais le en bcc plutôt qu'en cc.


---------------
...oups kernel error...
n°352004
Kyle_Katar​n
Posté le 03-04-2003 à 20:04:30  profilanswer
 

On va encore dire que je ramène tout à moi mais K-ML (dispo sur mon site) convient pour ce genre de tâche ...

n°352007
antp
Champion des excuses bidons
Posté le 03-04-2003 à 20:14:09  profilanswer
 

pas si la BD est sur le site et non accessible depuis l'extérieur :D
 
Reste la possiblité d'importer une liste d'adresses qu'une page PHP renverrait... (idée de fonction à ajouter si ça n'existe pas encore :D)


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°352196
ethernal
Chercheur de vérité...
Posté le 04-04-2003 à 00:11:29  profilanswer
 

antp a écrit :

Reste la possiblité d'importer une liste d'adresses qu'une page PHP renverrait... (idée de fonction à ajouter si ça n'existe pas encore :D)


 
oui sans compter que ça pourrait faire le bonheur des spammeurs :lol:


---------------
...oups kernel error...
n°352197
antp
Champion des excuses bidons
Posté le 04-04-2003 à 00:16:01  profilanswer
 

:??: C'est juste par exemple pour ceux qui ont leur liste d'adresse dans une base mySQL que je pensais à ça (par ex provenant des gens s'inscrivant sur le site)


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°352203
ethernal
Chercheur de vérité...
Posté le 04-04-2003 à 00:31:25  profilanswer
 

je rigole :)
l'idée n'est pas mauvaise  :jap:  
j'imagine bien qu'une personne sensée ne mettrait pas un lien vers cette page sur son site ;)


---------------
...oups kernel error...
n°352205
zion
Plop
Posté le 04-04-2003 à 01:01:22  profilanswer
 


et si on faisait plutot un http://www.php.net/manual/en/funct [...] -limit.php
 
t'as jamais dit que ton hébergeur t'émpechait de changer le temps limite  :D


---------------
Informaticien.be - Lancez des défis à vos amis
n°354789
djobidjoba
Posté le 07-04-2003 à 14:56:06  profilanswer
 

pout info:pas la peine d'essayer de lancer des mail avec des BCC depuis php 4.2 sous win32 (ex: easyphp)
par contre no-problem avec php 4.3.1 !

n°355375
Sygma
Posté le 08-04-2003 à 08:35:08  profilanswer
 

zion a écrit :


et si on faisait plutot un http://www.php.net/manual/en/funct [...] -limit.php
 
t'as jamais dit que ton hébergeur t'émpechait de changer le temps limite  :D  


 
Bien sur que c la solution tu le regle a 720

set_time_limit(720);

et là tu peux en envoyer des emails !
 
voila.

n°355966
six_dfx
Well I'm the Lord of Time.
Posté le 08-04-2003 à 17:32:23  profilanswer
 

DjobiDjoba a écrit :

j'vais sans doute executer ma fonction de massmailing dans un fork
http://www.php.net/manual/fr/function.pcntl-fork.php


 
Impossible sauf si tu utilises php en standalone (pas en module apache quoi)


---------------
Don't blink. Don't even blink. Blink and you're dead. They are fast, faster than you could believe, don't turn your back, don't look away, and DON'T BLINK. Good luck.
mood
Publicité
Posté le   profilanswer
 


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

  php massmailing

 

Sujets relatifs
Plus de sujets relatifs à : php massmailing


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)