Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] newsletter - timeout
Forum PHP.pl > Forum > Przedszkole
bulion
Witam serdecznie.

Zainstalowałem na swoim serwerze (home.pl) skrypt newslettera.
skrypt zowie się txtList. Sam w sobie - prosty i działa genialnie.

W bazie mam 4000 tyś. e-maili. Gdy rozpoczynam wysyłkę, skrypt "mieli"
po czym wyświetla się pusta biała strona. W bazie podałem dla testów swojego e-maila.
Newsletter otrzymałem, ale skrypt nie wyświetlił potwierdzenia - co za tym idzie, nie ma żadnej pewności
że wszyscy adresaci otrzymali newsletter.

Po skontaktowaniu się z administracją serwera została mi udzielona informacja:

Sytuacja, ktora Pan opisuje moze byc spowodowana nie tyle sama iloscia adresatow co czasem trwania procesu. Kazdy serwer w home.pl posiada ograniczenie czasu wykonywania skryptu. Skrypt moze sie wykonywac przez 300 sekund. Podejrzewam, ze liczba 4000 maili do wyslania moze nie zmiescic sie w tym czasie a to oznacza, ze wysylana jest tylko ta "mieszczaca sie" ilosc.

W miare mozliwosci proponujemy taka modyfikacje ustawien zeby maile wysylane byly kilku mniejszych paczkach.

Zajrzałem więc w mój skrypt choć nie mam pojęcia co zrobić.

W pliku konfiguracyjnym znalazłem takie oto linijki. Czy zmiana parametrów może pomóc?

  1. <?php
  2. // When sending, txtList will pause every pauseinterval'th email, for pausetime seconds.
  3. $cfg['pauseinterval'] = 100;
  4.  
  5. // Number of seconds to pause at each pauseinterval.
  6. $cfg['pausetime'] = 3;
  7. ?>


a może powinienm zmienić coś w skrypcie odpowiadającym za wysyłkę newslettera.
BY wysyłał np. po 1000 maili, przerwa i kolejne 1000, itd.

Zawartość pliku "admin_email.inc.php" chciałem tutaj wkleić, jednak post nie chciał się dodać (za długi).

proszę o pomoc
1010
Cytat
a może powinienm zmienić coś w skrypcie odpowiadającym za wysyłkę newslettera.
BY wysyłał np. po 1000 maili, przerwa i kolejne 1000, itd.


Dokładnie tak musiałbyś to zrobić. Jednak według mnie 1000 to i tak za dużo.
bulion
a mogę prosić o jakieś instrukcje?
jak to skleić?
1010
Ja to robie tak smile.gif

Na starcie zapisuje wszystkie e-maile do których mam wysłać newsletter do pliku txt, po czym mam skrypt który wyciąga pierwsze 100 e-maili, wysyła newsletter, i te 100 e-maili wysyła. I dodatkowo jest ustawione odświeżanie co 30 sekund.

Potem dodatkowo mam dorobiony pasek postępu itp.

Sprawdza się genialnie smile.gif
guitarnet.pl
sztywne ustawienie odswiezania na 30 sekund moze nastapic w trakcie wysylania maila a przed usunieciem go z puli co sprawi ze email zostanie wyslany dwukrotnie do tej samej osoby

alternatywnie mozna badac czas wykonywania skryptu w kazdej petli i jak zblizy sie do (timeout-5sekund) to wyslac header i przerwac petle po zakonczeniu operacji, daje to 100% kontrole nad poprawnoscia - sposob wymaga otwartej przegladarki

kilka dni temu na fourum pokazalemtez sposob z uzyciem respawn ktory uzywa np system mailingowy pommo, ten sposob nie wymaga nawet otwartej przegladarki
1010
ja to mam na tej zasadzie że czas daje duża rezerwę w stosunku do ilości wysyłanych e-maili.
guitarnet.pl
nie wyborazam sobie takiego rozwiazania dla 100tys maili aczkolwiek dla 4000 pewnie bez roznicy..
rafalskula
Witam , odświeżę temat.
Serwer gdzie mam mailing zmienia swoje parametry i za parę dni będę mógł wysłac do użytkowników
Liczba maili na godzinę 100
Liczba maili na dobę 1.000

Użytkowników mam około 2000.
Może ktoś mi podpowie jak to ugryść.

Zmiana parametrów w config.inc.php coś pomoże ?
/ When sending, txtList will pause every pauseinterval'th email, for pausetime seconds.
$cfg['pauseinterval'] = 100;

// Number of seconds to pause at each pauseinterval.
$cfg['pausetime'] = 3;

Pozdrawiam
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.