Forum Katalogu Ciekawych Stron Strona Główna  Forum Katalogu Ciekawych Stron Strona Główna  
 
FAQ  FAQ   Szukaj  Szukaj   Użytkownicy  Użytkownicy   Ranking systemów  Ranking systemów   Grupy  Grupy  
 
Rejestracja  ::  Zaloguj Zaloguj się, by sprawdzić wiadomości
 
Forum Katalogu Ciekawych Stron Strona Główna » Tutoriale » jak wysłać maila do wszystkich z bazy

Napisz nowy temat  Odpowiedz do tematu
 jak wysłać maila do wszystkich z bazy « Zobacz poprzedni temat :: Zobacz następny temat » 
Autor Wiadomość
Martin
PostWysłany: 17 Lip 2005, 19:39    Temat postu: jak wysłać maila do wszystkich z bazy Odpowiedz z cytatem Zacytuj zaznaczone

KCS_Admin
KCS_Admin

Dołączył: 17 Cze 2005
Posty: 5566

Skąd: Piaseczno

Już kilka osób zadawało mi to pytanie w mailach. Jak wysłać maila do wszystkich z bazy, ale przy okazji aby mieć pewność że mail do wszystkich doszedł..

To o czym na pewno trzeba pamiętać przy wysyłaniu maili do większej ilości adresatów z bazy np: 10 000 userów to to, że każdy skrypt PHP ma określony czas działania, np. 30 sekund. Po tym czasie jego wykonywanie zostaje natychmiast przerwane. Wysłanie 10 000 maili z pewnością trwa dłużej niż 30 sekund, więc musisz zadbać, aby czas wykonywania skryptu był dostosowany do Twoich potrzeb.

Aby zmienić czas wykonywania skryptu skorzystaj z polecenia set_time_limit().

Kod:
<?
set_time_limit(360);
?>


a kod do wysyłania i pbierania adresów z bazy to:

PHP:

<?php
if (mysql_connect($sql_serwer$sql_login$sql_haslo
and 
mysql_select_db($sql_baza)) 
{
$wynik mysql_query("SELECT mail FROM user");
$rekordow mysql_result(mysql_query("SELECT FOUND_ROWS()"),0);
set_time_limit($rekordow*5);
while(
$dane mysql_fetch_array($wynik)) 
{
$mail $dane["mail"];
mail($mail,"tytul","tresc","nadawca@serwer.pl");
echo 
"wyslano maila do: $mail<br />";
}
mysql_close();

else 
echo 
"Nie można połączyć się z bazą danych";
?>



Bezpiecznie jest założyć, że czas wysyłania jednego e-maila trwa ok. 5 sekund. Możesz więc użyc konstrukcji, która pomnoży ilość odbiorców * 5:
Kod:
set_time_limit($rekordow*5);

_________________
Martin
- Prywatny Katalog Stron
- pizzeria La Nostra zaprasza
- e-Piaseczno i okolice, to najlepsze miejsce dla e-mieszkanca powiatu piaseczynskiego
- najlepsze prywatne przedszkole w Piasecznie
- moj prywatny fotoblog ze zdj?ciami
Powrót do góry
Zobacz profil autora Wyślij prywatną wiadomość Odwiedź stronę autora
KCS
Wysłany:     Temat postu: Reklama w KCS







Pozycjonusz.pl - Reklama Twojej firmy !
Oferujemy szereg usług reklamujących Państwa witrynę w wyszukiwarce Google. Dzięki nam strona zdobędzie wartościowe linki i poprawi swoją pozycję w wynikach wyszukiwania !

Powrót do góry
PIKSAR
PostWysłany: 01 Cze 2006, 22:27    Temat postu: Odpowiedz z cytatem Zacytuj zaznaczone

Bywalec
Bywalec

Dołączył: 19 Sie 2005
Posty: 148

Skąd: Cz?stochowa

Wersja Marcina coś nie chciała mi smigać więc wprowadziłem kilka zmian i zamieszczam zmodyfikowana aplikacje do wysylania masowych wiadomosci pobierajac adresy z bazy:

PHP:

<? if (mysql_connect($sql_serwer$sql_login$sql_haslo
and 
mysql_select_db($sql_baza)) 
{
$zapytanie="SELECT * FROM user";
$wynik mysql_query($zapytanie);
while (
$dane mysql_fetch_array($wynik))
{
$mail $dane['mail'];
mail($mail,"tytul","$data_rejestracji","nadawca@serwer.pl");
echo 
"wyslano maila do: $mail<br />";
}
mysql_close();

else 
echo 
"Nie można połączyć się z bazą danych";
?>


_________________
Pozdrawiam
Powrót do góry
Zobacz profil autora Wyślij prywatną wiadomość Wyślij email Numer GG
Martin
PostWysłany: 02 Cze 2006, 08:05    Temat postu: Odpowiedz z cytatem Zacytuj zaznaczone

KCS_Admin
KCS_Admin

Dołączył: 17 Cze 2005
Posty: 5566

Skąd: Piaseczno

Jedyną zmianą jaką zrobiłeś to wywaliłeś bardzo ważną linię z kodu:
Kod:
set_time_limit($rekordow*5);

Powiedz mi co zrobisz jak będziesz musiał wysłać maila do 10 000 userów w bazie? Przy kodzie bez tej lini mail nie zostanie wysłany do wszystkich. Bez tej lini jest OK, ale tylko przy małej bazie adresów e-mail.
_________________
Martin
- Prywatny Katalog Stron
- pizzeria La Nostra zaprasza
- e-Piaseczno i okolice, to najlepsze miejsce dla e-mieszkanca powiatu piaseczynskiego
- najlepsze prywatne przedszkole w Piasecznie
- moj prywatny fotoblog ze zdj?ciami
Powrót do góry
Zobacz profil autora Wyślij prywatną wiadomość Odwiedź stronę autora
PIKSAR
PostWysłany: 02 Cze 2006, 13:26    Temat postu: Odpowiedz z cytatem Zacytuj zaznaczone

Bywalec
Bywalec

Dołączył: 19 Sie 2005
Posty: 148

Skąd: Cz?stochowa

No tak, można to dodać, ale głównie chodziło mi o:
Kod:
(mysql_query("SELECT FOUND_ROWS()"),0)

_________________
Pozdrawiam
Powrót do góry
Zobacz profil autora Wyślij prywatną wiadomość Wyślij email Numer GG
Martin
PostWysłany: 02 Cze 2006, 13:54    Temat postu: Odpowiedz z cytatem Zacytuj zaznaczone

KCS_Admin
KCS_Admin

Dołączył: 17 Cze 2005
Posty: 5566

Skąd: Piaseczno

To jest zapytanie SQL o zliczanie rekordów w tabeli z mailami, aby później tą liczbę wykorzystać w set_time_limit();, jeżeli konfiguracja na serwerze MySQL, lub wersja nie pozwala Ci zastosować tego zapytania to warto zastosować pytanie o ilość w PHP, aby nie rezygnować z manewrowania set_time_limit:
Kod:
$rekordow=mysql_num_rows($wynik);
set_time_limit($rekordow*5);


tj efekt końcowy:
PHP:

<?php
if (mysql_connect($sql_serwer$sql_login$sql_haslo
and 
mysql_select_db($sql_baza)) 
{
$wynik mysql_query("SELECT mail FROM user");
$rekordow=mysql_num_rows($wynik);
set_time_limit($rekordow*5);
while(
$dane mysql_fetch_array($wynik)) 
{
$mail $dane["mail"];
mail($mail,"tytul","tresc","nadawca@serwer.pl");
echo 
"wyslano maila do: $mail<br />";
}
mysql_close();

else 
echo 
"Nie można połączyć się z bazą danych";
?>


_________________
Martin
- Prywatny Katalog Stron
- pizzeria La Nostra zaprasza
- e-Piaseczno i okolice, to najlepsze miejsce dla e-mieszkanca powiatu piaseczynskiego
- najlepsze prywatne przedszkole w Piasecznie
- moj prywatny fotoblog ze zdj?ciami
Powrót do góry
Zobacz profil autora Wyślij prywatną wiadomość Odwiedź stronę autora
kidler
PostWysłany: 21 Wrz 2008, 09:55    Temat postu: Odpowiedz z cytatem Zacytuj zaznaczone

Nowicjusz
Nowicjusz

Dołączył: 21 Wrz 2008
Posty: 1


a da się jakoś wprowadzić nadawcę wiadomości, żeby nie było "nieznany nadawca" tylko email, który wprowadzę?
Powrót do góry
Zobacz profil autora Wyślij prywatną wiadomość
Wyświetl posty z ostatnich:   
Napisz nowy temat  Odpowiedz do tematu Strona 1 z 1


Forum Katalogu Ciekawych Stron Strona Główna » Tutoriale » jak wysłać maila do wszystkich z bazy
Skocz do:  



Nie możesz pisać nowych tematów
Nie możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach


katalog stron | forum
Powered by phpBB © 2005 phpBB Group