Jak urychlit pripojeni k smtp serveru nette rubrika: Programování: PHP

3 Fidelio
položil/-a 27.8.2014

Zdravim, jakym zpusobem posilate newslettery na nekolik tisic adres? Je mi jasne ze se musi jednat o cron ulohu, aby to nepadalo do spamu kazdy email bude samostatny, zadne bcc... Jen mi neni jasne proc dokazu poslat pres nette jen 3-4 emaily za sekundu, existuje rychlejsi reseni? Bez mail->send se dostavam na hodnoty nekolika milisekund, s pro test vzorek 50 emailu jsem na 15 sekundach priblizne, prijde mi to neprijemne dlouhe pokud by mailu bylo potreba rozeslat nekolikaradove vice... Pripojuji se na jiny smtp ale i bez nej nejsou casy zazracne jine, kazdy mail ma okolo 25KB, rychlost testovana na 3 ruznych vpskach...

Vyzkouseno posilani i pomoci cisteho phpmaileru ale zde bylo zlepseni z 15 na 14s (dost mozna nahoda).

Mail je sestaven 1x a poslan stejna na 50 kousku

Napada nekoho neco? Takto bych se dostal na posilani na nekolik hodin, coz pokud chci informovat o vyhlaseni souteze apod, nejde, zde je rychlost odeslani klicova :(

odkaz
2 Tomas Zaruba
odpověděl/-a 5.9.2014

Osobně mám zkušenost s tím, že problém je spíš na straně SMTP serveru. Jeden SMTP server většinou nezvládne odeslat obrovské množství zpráv v krátkém čase.

Používáme k tomu Postfix a SMTP servery jedou na SSD disku + je tam nějak nastavené, aby se emailová fronta držela pouze v RAM. Nevím přesně jak je to nastavené, nejsem adminem těchto serverů. Druhý server potom bezproblémů stíhá generovat a distribuovat emaily mezi tyto menší servery rychlostí cca 2k až 3k emailů za sekundu při velikosti šablony kolem 200 KB, vše to běží na Nette.

Zrychlení lze docílit persistentním spojením mezi SMTP serverem a aplikací, tím se odešle více zpráv na jedno spojení a vše se zrychlí. Persistence se dá nastavit jednoduše přes parameter persistent

$mailer = new SmtpMailer(array(
    'host' => $server->get('ip'),
    'persistent' => true
));

Komentáře

  • FilipOL : Ha! další důvod přejít na novější nette, moje nette 2.0.3 toto nemá - smtp persistent tam nenastavím, paráda! 6.9.2014

Pro zobrazení všech 5 odpovědí se prosím přihlaste:

Rychlé přihlášení přes sociální sítě:

Nebo se přihlaste jménem a heslem:

Zadejte prosím svou e-mailovou adresu.
Zadejte své heslo.