Autor Zpráva
MilanJ
Profil
Dostal jsem zakázku na větším projektu a potřeboval bych poradit. Používám PHP a MySQL.

Musím zajistit, aby se každý den odeslalo cca 30.000 emailů, každý obsahuje jen text, odhaduji 3-5kB. Nejde o spam, emaily se budou rozesílat registrovaným uživatelům. Údaje o uživatelích jsou zapsány v db MySQL, vše by mělo běžet na Linuxovém serveru.

Jakým způsobem mohu tohle udělat?
souki
Profil
jsou všechny maily stejné?
MilanJ
Profil
Ano, emaily jsou všechny stejné.
souki
Profil
ěněěkteré smtp servery dovolují jednodušše odděělit přříjemce středníkem. Místo fce mail by pak staččilo použít
$fd = fsockopen ("smtp.server.cz", 25, $errno, $errstr, 30);

fputs($fd, "HELO server.czn");
fputs($fd, "MAIL FROM: mail@server.czn");
fputs($fd, "RCPT TO: " . $to . "n");
fputs($fd, "DATAn");
fputs($fd, $header . "n");
fputs($fd, "n.nQUITn");
sleep(1);
pclose($fd);

a nebo to dát prostěě docyklu a každých (třřeba) 100 mailů udělat reload a pokraččovat
MilanJ
Profil
Takže použití f-ce Mail není vhodné?

Ten Tvůj kód moc nechápu...
souki
Profil
mail() se můůžže klidněě použžít, ale 30 000 mailůů se asi běěhem 30 sekund odeslat nestihne, takžže by se musela stránka reloadovat...
ten kód je alternativa k mail() - přřímé napojení na SMTP server...

P.S.: omlouvám se za diakritiku. Asi mi tu řřádí něějaký keylogger
djlj
Profil
Takže použití f-ce Mail není vhodné?
Rozhodně ne. Nedávno jsem posílal cca 10000 mailů a párkrát se mi přitom podařilo zahltit i server, kde jinak jede jen jeden web :).
MilanJ
Profil
S přímým napojením na SMTP nemám žádný zkušennosti.:-/
Hosting mám u Active 24, nevím, jestli takovou věc přímo umožňují...
*Čvachta*
Profil *
MilanJ

Každý slušný webhoster nabízí SMTP server.
souki
Profil
*Čvachta*
ale ne každý vydrží nápor 30 000 mailů odeslaných v jednu chvíli
*Čvachta*
Profil *
souki

Jeho chyba :)
mila
Profil
Tohle by asi chtělo řešit nějakou aplikací, ne v php. Vsadil bych se, že jich spousta existuje.

Nejlepší by asi bylo zavolat na hotline hostingu a dohodnout se s nimi. Pokud jsou solidní, měli by sami nabídnout řešení, otázka je, za jakou cenu.

Případně obvolat další, myslím, že jak se k tomuto postaví, dost napoví, jak bude člověk spokojen dále...
thingwath
Profil
Tady bude hodně záležet taky jak si s tím poradí SMTP server, když se mu najednou předhodí 30 000 mailů, nemusí mít radost. A taky si myslím, že nejlepší by to bylo řešit ve spolupráci s ním a ne kdesi jako php skript.
Hugo
Profil
IMHO bude opravdu lepsi toto resit primo pres sendmail nez to bastlit v php, zkus se domluvit s adminama.

ad sutr

Snad sem nenaleze vic takovych lidi, tato diskuze byla zatim docela klidna.
Dero
Profil
sutr: Pětačtyřicet minut.
sutr
Profil *
Dero no myslím, že na můj příspěvek v této diskuzi šlo zareagovat i jinak a celé by se to pak mohlo vyvíjet jiným směrem. Když to zlehka přeženu, vyvolal jsi to ty. Ty jsi chtěl abych zareagoval nepřiměřeně a pak si mohl machrovat.

ad 45min .. to nechápu, myslím, že je to blbost a , ale vysvětli mi to pleas
Acci
Profil
sutr
A ty jsi také mohl zareagovat jinak, o OT odpovědi v této diskusi nestojíme. Vydávání se za někoho jiného je taky pěkně hnusná věc. A neříkej, že jsi to nebyl ty, IP adresy se shodují.
BTW: Četl jsi pravidla?
Acci
Profil
30 000 mailůů se asi běěhem 30 sekund odeslat nestihne, takžže by se musela stránka reloadovat...
V PHP jde nastavit time limit i na jinou hodnotu nebo ho dokonce zrušit.

Jinak je možné řešení, pokud by nestíhal SMTP server, použít CRON a třeba každou minutu odeslat 100 mailů někdy ve tři hodiny ráno, kdy jsou servery na internetu nejméně zatíženy.
souki
Profil
Acci
V PHP jde nastavit time limit i na jinou hodnotu nebo ho dokonce zrušit.
ano jde. Ale většinou jede hosting v safe-mode a tam to jde těžko... ten Cron mě taky napadl.. škoda, že si byl rychlejší =)
MilanJ
Profil
Acci
O CRONU jsem taky uvažoval, chtěl jsem hlavně zjistit, jestli má někdo zkušennosti a jestli třeba neexistuje jiná, elegantnější a rychlejší cesta.
Hugo
Profil
MilanJ

Domluv se s adminama sreveru, ti budou vedet nejlip (snad) co tam muzes pouzit. Rozhodne bych toto neprovozoval bez jejich souhlasu, protoze je to celkem dobra zatez na server.
Toto téma je uzamčeno. Odpověď nelze zaslat.