Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [czas wykonania] Jak go wydłużyć?
Forum PHP.pl > Forum > PHP
ciano
Wykorzystuję klasę phpmailer to wysyłania maili z listy mailingowej. Są to stosunkowo ciężkie maile, zapisane w html.

Moja baza liczy kilka tysięcy użytkowników. Niestety nie mogę odpalić skrypt dla wszystkich rekordów z bazy, ponieważ mail wyśle się tylko do około 500 z nich.

Obecnie muszę killkanaście razy edytować zapytanie sql w skrypcie i go wykonywać, żeby wysłać maila wszystkim ...

Niestety albo stety, baza jest coraz większa, więc za kilka tygodni będę miał kupę roboty ...

Jak to zaatomatyzować?
Bastion
spam.php? mozna wiedziec w jaki sposob zdobyles tak pokazna liczbe adresow ?
Apo
Cytat
spam.php? mozna wiedziec w jaki sposob zdobyles tak pokazna liczbe adresow ?

Np ostatnio były newsy o tym jak na stronie żywca było kilka tysięcy maili w pliku txt ;]
a co do pytania to daj na początek pliku:
  1. <?php
  2. ?>

btw podzielisz sie mailami ;] questionmark.gif
mike
Cytat(Apo @ 2006-04-15 19:24:27)

Kiepskie wyjście.

Najlepiej w tej sytuacji zatroszczyć się o CRONa i skrypt, który wszystkie maile wyśle w paczkach. Powiedzmy po 100 co 30 sek.
ciano
Cytat
  spam.php? mozna wiedziec w jaki sposob zdobyles tak pokazna liczbe adresow ?


Nie rozumiem co ma spam do dużej liczby adresów ...
Seth
Ja bym to zrobil tak:

Ustawiasz limit np na 100 maili na raz.
Uruchamiasz skrypt, ktory wysyla te 100 pierwszych maili, potem robi redirect na siebie z parametrem 200 i wysyla kolejne 100 maili (zaczynajac od 101 do 200), potem redirect z parametrem 300 (kolejne 100 maili od 201 do 300) itd.

Mozesz zrobic to tez za pomoca CRONa jak pisal mike_mech, albo (uwaga reklama winksmiley.jpg) uzyc mojej klasy, do napisania swojego demona, ktory w tle powysyla wszystkie maile na raz:
http://forum.php.pl/index.php?showtopic=41548
akubiczek
Podpowiem ci jeszcze z mojego doświadczenia, że warto pomiędzy każdym listem dać krótką (10-20ms) pausę. Bez tego zdarzało mi się, że smtp się przytykał, ale różnie to było na różnych serwerach.

Mam nadzieję, że nie spamujesz dry.gif
Vogel
Cytat(Seth @ 2006-04-16 00:49:41)
Ustawiasz limit np na 100 maili na raz.
Uruchamiasz skrypt, ktory wysyla te 100 pierwszych maili, potem robi redirect na siebie z parametrem 200 i wysyla kolejne 100 maili (zaczynajac od 101 do 200), potem redirect z parametrem 300 (kolejne 100 maili od 201 do 300) itd.
http://forum.php.pl/index.php?showtopic=41548

pamietaj o kontroli (log) tego co jz wyslales aby "w razie czego" nie trzebabylo wysylac wszystkich maili od nowa
thornag
Miałem podobny problem. Robilem mailing dla znajomego prowadzacego serwisy branzowe zwiazane tam z rurami stala i wogole tongue.gif Maili razem jest hmm z 30000 smile.gif i byl problem jak nie zapchac serwera SMTP.

Rozwiazanie podsunal mi kumpel specjalista od poczty.

W phpMailerze dodajesz maile jako Black Carbon Copy, zalety tego sa takie ze po pierwsze odbiorcy nie widza adresow innych odbiorcow po drugie serwer zamiast dostac kilka tysiecy maili dostaje tylko jednego ktory pozniej wysyla w kilkutysiacach kopii. Podobno wtedy nic mu nie grozi i dziala smile.gif Poki co mailer w fazie testow co do serwera wysylam przez jego na wszelki wypadek smile.gif Na tyle jest pewny swojej teori ze dal serwer do testow wiec powinno byc ok smile.gif
legorek
Nie chciałbym bym mieć konta razem z Tobą na serwerze. Mam pewne wątpliwości co do tej teorii. Jesli tak zrobisz, to po prostu cała robota zostanie przezrucona z php na serwer poczty, który otworzy 30 000 wątków wysyłania poczty (ale mogę się mylić, nie jestem specjalistą w tej kwestii). Wydaje mi się że nie istnieje coś takiego jak magiczny zysk czasu, które sprawi że maile które wysyłały się pare minutu nagle zostaną wysłane w sekundkę.

Osobiście korzystam z kolejkowania po 500 maili z przerwami co 5 sekund.
y3ti
5.000 e-maili to nie żadna ogromna ilość. Jako przykład podam Piotra Majewskiego z cneb.pl (ponad 40.000 e-maili). Wystarczy dobra promocja, kontakty z targów, dobrze zaprojektowana strona internetowa, ciekawy newsletter i baza się powiększać.

Sam robię mailigi. Kiedyś robiłem podobnie jak Ty, jednak dodatkowo:

set_time_limit( 0 );
wysyłamy maile.

Pobieramy maila z bazy danych *, wysyłamy maila, zmieniamy w bazie danych datę wysłania listu pod ten adres. Jeśli skrypt padnie, wiesz do kogo i kiedy zostały wysłane maile.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.