Pomale odosielanie mailov

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
tomolas
Člen | 66
+
0
-

Zdravím,
mám skôr takú všeobecnú otázku.

Vo viacerých funkciách v modeloch odosielam maily. V poslednej dobe sa mi stáva, že aj pri jednoduchších akciách, v ktorých sa ale odosiela aj mail, trvá zbehnutie scriptu a načítanie stránky moc dlho (rádovo niekoľko sekúnd – aj 5 povedzme). Používam SMTP server na hostingu.

Domyslel som si, že mi to brzdí ten mail.. môže to byť spôsobené týmto?
Dá sa toto v princípe nejak obísť? Ako to robíte?

Díki za názory!

Filip Procházka
Moderator | 4668
+
0
-

První řešení co mě napadá, tak maily si ukládat do databáze a pak načítat v nějakém démonu a postupně odesílat.

Honza Kuchař
Člen | 1662
+
0
-

Přesně jak píše HosipLan. A nebo vyměnit hosting… ;-)

tomolas
Člen | 66
+
0
-

Díki za názory,
nad niečim takým s databázou som rozmýšlal aj ja, len som ešte neštudoval, čo potom, keď už to v tej DB bude :)
..ale tak nejak by to hádam šlo :)

Vyki
Člen | 388
+
0
-

Můžeš si udělat skript spouštěný přes CRON, který ty emaily z DB vytáhne a hromadně odešle. CRONU je jedno, že to bude trvat déle. Jedno to asi nebude uživateli, pokud jde například o registrační nebo potvrzující mail. Sám jsem vždy velmi netrpělivý a do schránky koukám hned.

Petr Motejlek
Člen | 293
+
0
-

Odesílat e-maily hned, když dojde k nějaké události (např. vytvoření objednávky), není úplně dobré. Jak píšeš, je to pomalé. Ale taky se u toho může stát hodně podivných chyb. Proto odesílání e-mailů vždycky řešit jako asynchronní operaci. Tzn. do nějaké tabulky v databázi, nebo třeba souboru na disku, si hodit tělo e-mailu, příjemce, potom to periodicky (třeba každé 3 minuty) procházet cronem a zkoušet posílat.

tomolas
Člen | 66
+
0
-

No vypadá to rozumne :)
Už len to spraviť..

Ešte raz díki.