Trimitere numar mare de emailuri din PHP

PEAR, Smarty, ADOdb, OOP, PHP 5, XML, UML, Şabloane de proiectare, PHP-GTK.

Moderatori: coditza, Emil, Moderatori


Avatar utilizator
saitek
Senior Member
Mesaje: 454
Membru din: Dum Sep 23, 2007 6:40 am

Mesajde saitek » Joi Dec 13, 2007 7:56 pm

|
GOOGLE = un mare prost

cyberdog
Average Member
Mesaje: 69
Membru din: Lun Mar 26, 2007 12:06 pm

Mesajde cyberdog » Joi Dec 13, 2007 10:11 pm


Avatar utilizator
saitek
Senior Member
Mesaje: 454
Membru din: Dum Sep 23, 2007 6:40 am

Mesajde saitek » Joi Dec 13, 2007 11:30 pm

tocmai de aia am spus +ajax si pui un preloader,ca sa nu ai probleme de time out etc...
|

GOOGLE = un mare prost

cyberdog
Average Member
Mesaje: 69
Membru din: Lun Mar 26, 2007 12:06 pm

Mesajde cyberdog » Joi Dec 13, 2007 11:50 pm

Nu la asta ma refeream, intrucat pot trimite emailurile si printr-un cron job, dar ma ingrijoreaza sa nu supraincarc serverul dintr-o data trimitand poate mii de emailuri simultan.

Pirahna
Senior Member
Mesaje: 5985
Membru din: Dum Aug 22, 2004 2:04 am
Localitate: la birou
Contact:

Mesajde Pirahna » Vin Dec 14, 2007 12:05 am

mail = server side
nu ai nevoie de ajax

dai mail, bagi un sleep random de la 1 la 45 de secunde intre mail-uri, si lasi scriptul sa mearga, poate ii pui si un max_execution_time la inceput de vreo 3-4 ore ca sa fii sigur.

adica
ini_set(max_execution_time,7200)
while -> mail, sleep(random)
exit

asa poti sa zicem sa trimiti 15 mailuri pe minut (asta ca sa nu fii blacklisted, daca te simti in forma poti sa incerci 3000 de mailuri pe minut) si scriptul oricum lucreaza singur, deci cam asta ar fi metoda optima.

succes.

ps: saitek, omul a cerut o solutie optima ...
|

cyberdog
Average Member
Mesaje: 69
Membru din: Lun Mar 26, 2007 12:06 pm

Mesajde cyberdog » Vin Dec 14, 2007 12:11 am

Merci mult pentru raspuns!

Aceasta este genul de solutie la care ma gandeam.
Alte solutii mai sunt?

Pirahna
Senior Member
Mesaje: 5985
Membru din: Dum Aug 22, 2004 2:04 am
Localitate: la birou
Contact:

Mesajde Pirahna » Vin Dec 14, 2007 12:16 am

Evident, poti de exemplu sa folosesti mai multe servere de mail ...
5 mesaje la unul, apoi 5 la urmatorul, apoi 5 la urmatorul, si pauza 2 secunde, si din nou reiei.

Foloseste-ti imaginatia.
|

cyberdog
Average Member
Mesaje: 69
Membru din: Lun Mar 26, 2007 12:06 pm

Mesajde cyberdog » Vin Dec 14, 2007 12:20 am

Ar fi mai greu sa fac asta... Eu ma gandeam sa rulez cron job-ul la fiecare ora de exemplu , si la fiecare rulara sa mai trimita un set de emailuri.
Suna logic?

carco
Senior Member
Mesaje: 2799
Membru din: Joi Mai 27, 2004 4:36 pm
Localitate: Bucuresti
Contact:

Mesajde carco » Vin Dec 14, 2007 6:45 am

da, suna logic (e mai bine ca mailurile sa stea in coada serverului de mail (e proiectata pt. asa ceva) decat sa rulezi nspe ore acel script)

Trimiti 3-500mailuri (eventual, daca ti-e mila de server, dupa fiecare mail poti pune un usleep de o juma' de secunda, eu ultima data foloseam usleep(200000);) si iei o pauza de 30-60 minute (desi un server de mail liber va scapa de ele aproape instant, nu are nevoie de 1 ora). Cel mai bine ar fi sa monitorizezi coada si sa ajustezi pe parcurs nr. de mailuri (daca nu ai acces la coada serverului poti, de ex., dupa fiecare set sa iti trimiti si tie un mail si vezi dupa cat timp ajunge)
Programator cu experienta in Magento/ZF, Typo3/Flow3, Symfony, B2B, CRM, ERP, SMB... vand betoniera

nightm
Junior Member
Mesaje: 43
Membru din: Mar Dec 16, 2003 11:04 pm
Localitate: Iasi
Contact:

Mesajde nightm » Sâm Dec 15, 2007 11:24 pm


dechim
Senior Member
Mesaje: 1486
Membru din: Mar Mai 10, 2005 11:53 pm
Localitate: Drobeta Turnu Severin

Mesajde dechim » Dum Dec 16, 2007 3:52 am


nightm
Junior Member
Mesaje: 43
Membru din: Mar Dec 16, 2003 11:04 pm
Localitate: Iasi
Contact:

Mesajde nightm » Dum Dec 16, 2007 11:29 pm

@dechim ms pt raspuns, stiu ca nu trebuia sa postez aici dar era exact pe problema ca si eu fac un script de genul si nu am vrut sa mai deschid un topic nou doar pt asta.

xmart2k
Junior Member
Mesaje: 32
Membru din: Mie Dec 08, 2004 11:02 pm

Mesajde xmart2k » Vin Ian 04, 2008 3:45 pm

poti eventual sa mai adaugi un camp in tabela de useri, ceva gen "mail sent", care sa ia valori 1 sau 0, dupa ce trimit un mail il faci 1, iar la final le faci pe toate 0, daca se intampla ceva sa se supra incarce si sa moara, cand mai dai odata cronu la o ora, sa verifice daca exista mailuri care nu au 1, si doar la alea sa mai trimita, daca nu mai exista nimic cu 0, le faci pe toate iar 0....si mai departe ziua urmatoare, sau cand trebuie

Avatar utilizator
gabysolomon
Senior Member
Mesaje: 743
Membru din: Dum Apr 09, 2006 11:39 am
Localitate: Bacau
Contact:

Mesajde gabysolomon » Dum Ian 06, 2008 8:19 pm

daca te ajuta uite o clasa la care am lucrat eu un pic pt altcineva ....
nu a mai avut nevoie de ea ... asa ca e inca in stare BETA

| | |

|


Înapoi la “PHP Avansat”

Cine este conectat

Utilizatori ce ce navighează pe acest forum: Niciun utilizator înregistrat și 14 vizitatori