Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL][PHP]Php mail() - limit wiadomości na serwerze
darney
post
Post #1





Grupa: Zarejestrowani
Postów: 124
Pomógł: 0
Dołączył: 21.08.2010
Skąd: Gdynia

Ostrzeżenie: (0%)
-----


Witam. Posiadam swoją grupę mailingową. Z chwilą jej wielkości kiedy dobiłem do ponad 150 pojawił się problem z wysyłaniem hurtem jednej wiadomości. Na serwerze jest limit 100 maili na godzinę. Jak przebudować skrypt aby przygotował paczki odbiorców. 100 maili do jednej części osób i kolejne 100 do drugiej. Chciał bym także po wykonaniu skryptu nie martwić się już nim i zamknąć okno po ukazaniu się komunikatu o powodzeniu operacji. Czy jest to możliwe ?.

Mój skrypt to stary przebudowany książkowy.
  1. while ($row = mysqli_fetch_array($result)){
  2. $to = $row['mailer_email'];
  3. $mailer_imie = $row['mailer_imie'];
  4. $mailer_nazwisko = $row['mailer_nazwisko'];
  5. $msg = "Drogi $mailer_imie $mailer_nazwisko,\n$text";
  6. $from = 'From: "xxx@xxx.pl" <xxx@xxx.pl>' . PHP_EOL .
  7. //'Cc: "CC Display Name" <xxx@xxx.pl>' . PHP_EOL .
  8. 'X-Mailer: PHP-' . phpversion() . PHP_EOL;
  9. $from .= "Content-type: text/html; charset=utf-8\n";
  10. //$from .= "Content-Transfer-Encoding: 8bit\n";
  11.  
  12. mail($to, $subject, $txt_mail, $from);
  13. echo 'Wysłano wiadomość pod adres: ' . $to . '<br />';
  14.  
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
thek
post
Post #2





Grupa: Moderatorzy
Postów: 4 362
Pomógł: 714
Dołączył: 12.02.2009
Skąd: Jak się położę tak leżę :D




Też kiedyś się zmagałem z tym problemem i rozwiązalem podobnie do Wilu88. Pisze mailing i ustalam mu datę wysyłki (dziś lub przyszłość). Jeśli przyszłość to działa skrypt, ktory raz na dobę, przed północa sprawdza daty wysyłek maili i jeśli napotka taki, który ma wysyłke na dzień kolejny, dodaje maile dla jego adresatów do kolejki. Jesli wysyłka na dziś, to od razu wrzucam do kolejki. Skrytp wysyłający odpalany z crona co kilka minut. W konfigu ustalam wielkość paczki jako:
( limit_serwera - margines_bezpieczeństwa ) / ilość uruchomień_na_godzinę
czyli dla przypuśćmy 100/h dałbym 90-95/h (trzeba zostawić margines na rejestracje, odzyskiwanie haseł, zapytania mailowe itp). Jeśli odpalanie co 6 minut to 90/10 = 9 i tyle wynosiła by wielkość paczki u mnie by było OK. Poza tym przemyśl jeszcze możliwość zatrzymania i/lub wznowienia mailingu lub co zrobić jeśli mailing ruszył, a Ty aktualizowałeś treść mailingu po zauważeniu błędów. Do tego kontrola działania mailingu (ilość wysłanych, ilość prób błędnych) czy jego statystyki. Wiele osób o takich rzeczach nawet nie myśli lub nie wie jak zaimplementować, choć przynajmniej część powinna być.

I uwierz, że się da to czego chcesz, ale trzeba nieraz pokombinować z cronem lub uruchamianiem skryptu w CLI jesli serwis to umożliwia i nieskończone wywoływanie skryptu przez samego siebie, z dobrze napisanym warunkiem stop. To drugie to nie tak pewna metoda i nie zawsze możliwa do zastosowania. Nie polecam jednak jej nikomu, kto nie ma większej wiedzy bo można serwer załatwić.
Go to the top of the page
+Quote Post

Posty w temacie
- darney   [MySQL][PHP]Php mail() - limit wiadomości na serwerze   27.07.2011, 09:10:22
- - Wilu88   Sam właśnie piszę taki moduł do swojego cms'a ...   27.07.2011, 09:50:16
- - peter13135   można ewentualnie zamiast crona użyć wejścia useró...   27.07.2011, 10:01:17
- - thek   Też kiedyś się zmagałem z tym problemem i rozwiąza...   27.07.2011, 10:31:38
- - Wilu88   Jeśli chodzi o zmianę treści maili w czasie wysyłk...   27.07.2011, 11:58:04
- - thek   Zebyś Ty widział jak niektórzy piszą systemy mail...   27.07.2011, 12:37:02
- - Wilu88   Zgodzę się z Tobą że to nie jest prosta sprawa. Z ...   27.07.2011, 13:23:32
- - thek   Ja także nie pisze kolosów najwieksze mailingi, k...   27.07.2011, 13:52:07
- - darney   co myślicie o tym może to by miało jakieś zastosow...   28.07.2011, 12:05:47
- - thek   CRON to unixowy demon chodzący w tle i co określon...   28.07.2011, 12:21:52
- - darney   hehehe Wtedy hulaj dusza admin netart piekła niem...   28.07.2011, 12:26:48
- - Wilu88   Coś nie chce mi się wierzyć ale to thek jest tutaj...   28.07.2011, 12:40:15
- - thek   Można tak rozwiązywać, ale różne SMTP też mają swo...   28.07.2011, 12:42:30
- - darney   Zgadza się jak narazie mój mailing liczy 150 osób ...   28.07.2011, 12:49:46
- - Wilu88   No nie możesz iść po id i założyć że od 1-50 od 50...   28.07.2011, 12:59:58
- - darney   a drugie powtórzenie skryptu wywołanego CRONEM ? J...   28.07.2011, 13:04:53
- - Wilu88   Po prostu ich już w bazie nei będzie. Powiedzmy ma...   28.07.2011, 13:14:01
- - thek   Wilu... Zależy od tego jak podejdzie do problemu m...   28.07.2011, 14:09:30
- - Wilu88   Cytat(thek @ 28.07.2011, 15:09:30 ) W...   28.07.2011, 14:14:59
- - darney   Cytat(darney @ 27.07.2011, 10:10:22 )...   28.07.2011, 15:51:19


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 15.10.2025 - 09:45