Odeslání e-mailu z pohledu
Total.js posílá poštu přes SMTP. Server a odesílatel se nastavují v souboru config: mail_smtp je server, mail_smtp_options objekt se zbytkem nastavení spojení (port, user, password, secure...) a mail_from / mail_from_name odesílatel. mail_reply, mail_cc a mail_bcc přidají tytéž hlavičky ke každé zprávě.
MAIL(email, subject, view, model, [language], [callback]) vykreslí views/view.html s modelem (tytéž pohledy jako pro stránky včetně lokalizace @(...)) a výsledek odešle jako tělo HTML. email může být jedna adresa nebo více adres oddělených čárkami. HTMLMAIL(email, subject, html, [language], [callback]) odešle řetězec, který jste si připravili sami. Obě vracejí zprávu; callback(err) se provede, když ji server přijal nebo odmítl, a err je při úspěchu null.
Zprávy se zařadí do fronty a odešlou se hned po aktuálním ticku, takže MAIL() nikdy neblokuje požadavek. Na callback čekejte, jen když uživatel musí vědět, zda to proběhlo.
name : Mail example
mail_smtp : 127.0.0.1
mail_smtp_options : { port: 2526 }
mail_from : hello@example.com
mail_from_name : ExamplePohled se vykresluje s layoutem jako každá stránka, proto musí existovat views/layout.html (jinak požadavek selže s chybou ENOENT). Layout pro e-mail může být tak malý jako ten níže, nebo můžete použít layout svých stránek.
<!DOCTYPE html>
<html>
<head><meta charset="utf-8" /></head>
<body style="font-family:Arial">@{body}</body>
</html><h1>Welcome, @{model.name}!</h1>
<p>Your account is ready.</p>exports.install = function() {
ROUTE('POST /welcome/ @json', welcome);
ROUTE('POST /note/ @json', note);
};
function welcome($) {
MAIL($.body.email, 'Welcome aboard', 'welcome', { name: $.body.name }, function(err) {
$.json({ sent: !err, error: err ? err.toString() : null });
});
}
function note($) {
HTMLMAIL($.body.email, 'A short note', '<p>Plain <b>HTML</b> message</p>', function(err) {
$.json({ sent: !err, error: err ? err.toString() : null });
});
}