| Subiectul anterior :: Subiectul următor |
| Autor |
Mesaj |
cyberdog
Data înscrierii: 26/Mar/2007
Mesaje: 68
|
| Trimis: Joi Dec 13, 2007 7:30 pm Titlul subiectului: Trimitere numar mare de emailuri din PHP |
|
|
Salut!
Intampin o problema. Un site la care lucrez necesita ca la anumite momente sa fie trimis un numar de emailuri membrilor ce se incadreaza in anumite criterii.
Fiecare email in parte este diferit pentru fiecare membru.
Ma poate sfatui cineva care e metoda optima de a trimite acest numar mare de emailuri?
Va multumesc! |
|
| Sus |
|
saitek
Data înscrierii: 23/Sep/2007
Mesaje: 437
|
| Trimis: Joi Dec 13, 2007 7:56 pm Titlul subiectului: |
|
|
| Si eu am avut problema asta...adica trebuia la un site sa trimita mass mail message la toti useri...si am folosit phpmailer+ajax,si pui si un preloader... |
|
| Sus |
|
cyberdog
Data înscrierii: 26/Mar/2007
Mesaje: 68
|
| Trimis: Joi Dec 13, 2007 10:11 pm Titlul subiectului: |
|
|
Merci pentru raspuns!
Totusi, nu se incarca prea mult serverul dintr-o data trimitand toate mailurile in acelasi moment? Cum s-ar putea face lucrul asta mai elegant?
Merci! |
|
| Sus |
|
saitek
Data înscrierii: 23/Sep/2007
Mesaje: 437
|
| Trimis: Joi Dec 13, 2007 11:30 pm Titlul subiectului: |
|
|
| tocmai de aia am spus +ajax si pui un preloader,ca sa nu ai probleme de time out etc... |
|
| Sus |
|
cyberdog
Data înscrierii: 26/Mar/2007
Mesaje: 68
|
| Trimis: Joi Dec 13, 2007 11:50 pm Titlul subiectului: |
|
|
| 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. |
|
| Sus |
|
Pirahna
Data înscrierii: 22/Aug/2004
Mesaje: 4355
Locație: la birou
|
| Trimis: Vin Dec 14, 2007 12:05 am Titlul subiectului: |
|
|
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 ... |
|
| Sus |
|
cyberdog
Data înscrierii: 26/Mar/2007
Mesaje: 68
|
| Trimis: Vin Dec 14, 2007 12:11 am Titlul subiectului: |
|
|
Merci mult pentru raspuns!
Aceasta este genul de solutie la care ma gandeam.
Alte solutii mai sunt? |
|
| Sus |
|
Pirahna
Data înscrierii: 22/Aug/2004
Mesaje: 4355
Locație: la birou
|
| Trimis: Vin Dec 14, 2007 12:16 am Titlul subiectului: |
|
|
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. |
|
| Sus |
|
cyberdog
Data înscrierii: 26/Mar/2007
Mesaje: 68
|
| Trimis: Vin Dec 14, 2007 12:20 am Titlul subiectului: |
|
|
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? |
|
| Sus |
|
carco
Data înscrierii: 27/Mai/2004
Mesaje: 2796
Locație: Bucuresti
|
| Trimis: Vin Dec 14, 2007 6:45 am Titlul subiectului: |
|
|
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) |
|
| Sus |
|
nightm
Data înscrierii: 16/Dec/2003
Mesaje: 43
Locație: Iasi
|
| Trimis: Sâm Dec 15, 2007 11:24 pm Titlul subiectului: |
|
|
Am si eu o intrebare: decat sa puna max_execution_time la 3, 4 ore nu e mai bine sa il puna 0 ? astfel nu ar fi nelimitat ?
Am citit putin mai demult ca functia sleep nu are efect sub windows. Asa este ? |
|
| Sus |
|
dechim
Data înscrierii: 10/Mai/2005
Mesaje: 550
Locație: Drobeta Turnu Severin
|
| Trimis: Dum Dec 16, 2007 3:52 am Titlul subiectului: |
|
|
Pentru @nightm:
- eu folosesc wamp si sleep functioneaza;
- pe asta-l citesti ini_get('max_execution_time') in secunde si-l setezi pentru scriptul tau cu set_time_limit (nnn); Merge si 0 dar nu aici era problema.
Intrebarile de genul asta nu se pun la PHP avansat, eu nu-s admin dar sigur deranjeaza. Fara suparari ! |
|
| Sus |
|
nightm
Data înscrierii: 16/Dec/2003
Mesaje: 43
Locație: Iasi
|
| Trimis: Dum Dec 16, 2007 11:29 pm Titlul subiectului: |
|
|
| @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. |
|
| Sus |
|
xmart2k
Data înscrierii: 08/Dec/2004
Mesaje: 30
|
| Trimis: Vin Ian 04, 2008 3:45 pm Titlul subiectului: |
|
|
| 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 |
|
| Sus |
|
gabysolomon
Data înscrierii: 09/Apr/2006
Mesaje: 741
Locație: Bacau
|
| Trimis: Dum Ian 06, 2008 8:19 pm Titlul subiectului: |
|
|
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
Newsletter Class |
|
| Sus |
|
PHPRomania Bot
Bot Member
Data înscrierii: 27/Dec/2007
Mesaje: 1
Locaţie: Server Google |
| Trimis: Mie Dec 26, 2007 7:01 pm Titlul subiectului: Ad |
|
|
|
|
|
| Sus |
|
| |