Příloha mailu = Maximum execution time
- pe.havel
- Člen | 14
Zdravím,
pomocí Nette\Mail\Message a Nette\Mail\SmtpMailer zasílám přes SMTP účet maily s přílohami. Problémem je, když má příloha třeba 2 MB, tak se příloha nestihne přes smtp odeslat dříve, než vyprší 20s PHP Maximum execution time.
Není to nějakým způsobem řešitelný? (nemohu hýbat ani s rychlostí připojení ani s Maximum execution time – hosting)
Díky za nápady
- iguana007
- Člen | 970
*no buďto to můžeš dočasně vypnout ten limit (pomocí
set_time_limit s hodnotou 0) nebo si to udělat jako CLI skript (ty mají
nastaveno set_time_limit defaultně na 0) a spouštět si jej třeba cronem,
čímž se i nabízí, že by si ty zprávy mohl rozesílat hromadně po
dávkách (rozumných, aby si nespadl do blacklistu).
*přehlédl jsem to o tom hostingu, tak se zkus zeptat na to CLI, jestli by ti jej povolili, to by mohlo být řešení
Editoval iguana007 (17. 7. 2014 1:15)
- Filip Procházka
- Moderator | 4668
Když to nejde, tak to nejde. Tohle je otázka na hosting. Pokud s tím nechtějí nic dělat, tak změň hosting. Určitě najdeš nějaký, který má kvalitnější služby a je i levnější než ten co používáš.
- Duch.Veliky
- Člen | 68
Ono taky záleží jak je nastavený a přetížený SMTP server. Já musel dělat dávky po 50 a max_execution_time dát na 600 vteřin, protože se SMTP autorizoval jménem a heslem a teď jsem si radši na to pronajal virtuální server kde pojede jenom ten můj script na rozesílání newsletterů a pak v pohodě vygeneruji několik tisíc e-mailů a ono si to samo zpracuje. Nepojede to už přes SMTP(), ale přes klasickou funkci mail() takže to není problém.
SMTP musí každý jednotlivý požadavek autorizovat a to je hrozně pomalé a rozhodně nevhodné řešení pro hromadný mailing např na několik tisíc adres.