Expand description
Outbound email for Sova (Express/Nodemailer-simple API on lettre).
With feature templates, render MiniJinja views into the body (Laravel-style):
ⓘ
req.mail()
.to(user)
.subject("Welcome")
.view("mail/welcome.html", json!({ "name": name }))
.send()
.await?;
// Mailable
req.mail().to(user).send_mail(WelcomeMail { name }).await?;
// Markdown body (feature `markdown`)
req.mail().to(user).subject("Hi").markdown("# Hello\n\nWorld").send().await?;Layouts use Jinja {% extends "mail/layout.html" %} in the template file.
Structs§
- Content
- Body of a
Mailable(html / text / view / markdown). - Fluent outbound message (Nodemailer / Laravel-style).
- Email
Snapshot - Built message metadata (fake transport / asserts).
- Envelope
- Message metadata (subject / from / cc / bcc). Recipients stay on
Email::to. - Fake
Mail - Shared inbox of emails sent through a fake transport.
- Plugin installer — call
Self::clientbeforeapp.installto share the handle (e.g. tasks). - Mail
Client - Shared outbound mail handle (
app.state/ clone into tasks). - Mail
Sent - Fired after a message is accepted by the transport (fake/smtp/file).
- Smtp
Builder - Fluent SMTP configuration →
Mail.
Traits§
- MailExt
req.mail()— start anEmailwith the installed client’s defaultFrom.- Mailable
- Laravel-style mailable: describe envelope + content, send via
Email::send_mail.