SlovnikTerminologie: EmailoveNotifikace |
from Wiki KIVu |
Chceme-li na nějakou akci navázat zasílání emailu uživateli, je potřeba provést několik kroků, které jsou zde popsány. V podstatě vše je již naprogramováno, takže se nejedná o náročnou proceduru.
Text a předmět emailu se nachází v lokalizačních souborech (messages_cs.properties
, messages_en.properties
). Klíč má tvar mail.něco. Je vhodné podívat se, v jakém tvaru jsou ostatní maily, a toho se držet. Vytváříme-li template (chceme-li do textu následně vložit nějaké argumenty), vložíme do textu na toto místo {číslo_argumentu}
.
Controller, který využívá lokalizační texty, potřebuje mít injektovánu beanu MessageSource?.
V souboru spot-servlet.xml
proto musí být u daného controlleru nastavena property:
<property name="messageSource" ref="messageSource" />
V samotném controlleru poté musí být nadeklarována proměnná MessageSource?
a musí k ní být setter.
Zjištění jazyka (který je používán daným uživatelem) se provede voláním metody třídy CookieUtils?:
Locale locale = new Locale(CookieUtils?.getLanguage(request));
Mají-li se do textu zprávy vložit argumenty (viz Text zprávy), je nutné vytvořit pole (indexy prvků pole odpovídají číslům v templatu):
Object[] params = {login, password};
Voláním metody getMessage()
se získá lokalizovaný text - parametry jsou klíč, pole s agrumenty zprávy, locale objekt získaný v předchozím bodě:
String emailText = messageSource.getMessage("mail.hello", params, locale);
Pro posílání mailů se používá beana mailApi a proto je opět nutné nastavit property v souboru spot-servlet.xml
:
<property name="mailAPI" ref="mailAPI" />
A následně nadeklarovat proměnnou i se setter funkcí v daném cotnrolleru.
Máme-li řetězce s emailem příjemce, předmětem zprávy a textem zprávy, provede se odeslání mailu voláním metody sendEmail()
:
mailAPI.sendMail(userEmail, emailSubject, emailText);