php massmailing - PHP - Programmation
Marsh Posté le 03-04-2003 à 16:39:32
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+)
Marsh Posté le 03-04-2003 à 16:39:38
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...
Marsh Posté le 03-04-2003 à 16:44:49
Sh@rdar a écrit : pour le sys, oublie, faudrait tomber sur un hébergeur un peu taré de proposer ça... |
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)
Marsh Posté le 03-04-2003 à 16:49:14
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)
Marsh Posté le 03-04-2003 à 16:50:05
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.
Marsh Posté le 03-04-2003 à 16:51:51
j'vais sans doute executer ma fonction de massmailing dans un fork
http://www.php.net/manual/fr/function.pcntl-fork.php
Marsh Posté le 03-04-2003 à 16:55:08
ethernal a écrit : balance de l'html. |
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
Marsh Posté le 03-04-2003 à 16:57:15
Sh@rdar a écrit : avec php tu es confronté à 2 problèmes liès à la configuration du serveur (que tu peux donc rarement modifier) |
j'ai compris, ca m'a l'air d'être une bonne solution
merci
Marsh Posté le 03-04-2003 à 16:58:53
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( )
Marsh Posté le 03-04-2003 à 16:59:52
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)
Marsh Posté le 03-04-2003 à 17:00:31
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
Marsh Posté le 03-04-2003 à 17:05:10
antp a écrit : |
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 depuis le client
- le fork j'oublie : a mon avis j'vais retrouver mon timeout
Marsh Posté le 03-04-2003 à 17:15:08
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.
Marsh Posté le 03-04-2003 à 17:32:51
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
Marsh Posté le 03-04-2003 à 17:38:12
.... 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
Marsh Posté le 03-04-2003 à 18:10:40
hummm...
ps fais le en bcc plutôt qu'en cc.
Marsh Posté le 03-04-2003 à 20:04:30
On va encore dire que je ramène tout à moi mais K-ML (dispo sur mon site) convient pour ce genre de tâche ...
Marsh Posté le 03-04-2003 à 20:14:09
pas si la BD est sur le site et non accessible depuis l'extérieur
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 )
Marsh Posté le 04-04-2003 à 00:11:29
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 |
oui sans compter que ça pourrait faire le bonheur des spammeurs
Marsh Posté le 04-04-2003 à 00:16:01
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)
Marsh Posté le 04-04-2003 à 00:31:25
je rigole
l'idée n'est pas mauvaise
j'imagine bien qu'une personne sensée ne mettrait pas un lien vers cette page sur son site
Marsh Posté le 04-04-2003 à 01:01:22
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
Marsh Posté le 07-04-2003 à 14:56:06
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 !
Marsh Posté le 08-04-2003 à 08:35:08
zion a écrit : |
Bien sur que c la solution tu le regle a 720
set_time_limit(720); |
et là tu peux en envoyer des emails !
voila.
Marsh Posté le 08-04-2003 à 17:32:23
DjobiDjoba a écrit : j'vais sans doute executer ma fonction de massmailing dans un fork |
Impossible sauf si tu utilises php en standalone (pas en module apache quoi)
Marsh Posté le 03-04-2003 à 16:36:26
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 ?