Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailem Emailový systém v MVC - spring

Zdar!

Aplikace posílá emaily přes GMAIL - například uživatel se přihlásí na svůj účet a přijde mu email že se přihlásil.

Jde o to, že pokud se to vykonává v kódu, tak on musí čekat než se email odešle - to samozřejmě je vidět že se mu chvilku točí kolečko.

Jak se takové věci řeší?

Napadlo mě založit přímo v apce vlákno, které by každých X sekund kontrolovalo frontu emailů a pokud by se ve frontě něco nacházelo tak by to odeslalo.

Místo aby uživatel čekal na odeslání emailu, by apka hodila email jen do fronty a druhé vlákno by se o to postaralo, co myslíte, je to dobrý? Nebo je lepší řešení?

Žádný mailserver nemám. Chci to jednoduše,.

Předmět Autor Datum
Dobrý řešení to je, ale ještě musíš zajistit, aby se k uživateli dostala informace o (ne)úspěchu.
Wikan 17.07.2016 12:15
Wikan
Co tím neúspěchem myslíš? To že se nepřihlásil (to mu kdyžtak vypíše přímo loginovací stránka), neb…
MašinkaTomáš 17.07.2016 13:00
MašinkaTomáš
Ano, zejména neúspěšné odeslání. Ale i o úspěchu by bylo vhodné informovat.
Wikan 17.07.2016 13:18
Wikan
No, tak s neúspěšným odesláním emailu se nepočítá, proč by se to nemělo povést? Leda že by byl mail…
MašinkaTomáš 17.07.2016 13:26
MašinkaTomáš
No jak myslíš. Já říct testerům, že s neúspěchem nepočítám, tak mě asi utlučou.
Wikan 17.07.2016 13:31
Wikan
No a já dělám testera juniora 3 měsíc :-D No, chápu co tím myslíš, dík za ujištění.
MašinkaTomáš 17.07.2016 14:00
MašinkaTomáš
Podle mých zkušeností smtp server v drtivé většině případů zprávu převezme a vrátí aplikaci true. Sa…
hynajs 17.07.2016 14:26
hynajs
Na poslani emailu pouzijes executorService a metodu oznacis @Async. Vyrob si nejakej FixedThreadPool…
MaSo 17.07.2016 15:35
MaSo
Dik poslední
MašinkaTomáš 17.07.2016 16:39
MašinkaTomáš

Podle mých zkušeností smtp server v drtivé většině případů zprávu převezme a vrátí aplikaci true.
Samozřejmě pokud je správně port, jméno, heslo atd.
Zdali zpráva opravdu doputovala, se už aplikace nedozví.
Jenom chci poznamenat, že pokud zobrazíme uživateli hlášení o úspěšném odeslání (i já tak činívám), můžeme jej někdy naplňovat falešným optimismem :-D .

Na poslani emailu pouzijes executorService a metodu oznacis @Async. Vyrob si nejakej FixedThreadPool treba o deseti vlaknech jen pro to posilani emailu (zalezi to na tom kolik emailu budes chtit posilat najednou). Examplu jak to nastavit je na netu asi milion (googluj spring send email async).

Zpět do poradny Odpovědět na původní otázku Nahoru