Umbral Email
Official by Umbral contributorsSMTP/API/console mail, HTML text, attachments, auth flows
About
Password resets, email verification, receipts — half your flows dead-end without somewhere to send mail. Umbral Email gives them that destination behind one interface: compose a message, call send, and whether it goes out over SMTP or a provider API is a config choice, not a rewrite. In dev it falls back to a console backend that prints to stderr, so you can build the whole flow before you own a single API key.
Install
Wire it up
use *;
use EmailPlugin;
let app = builder
.database
.plugin // backend selected from the environment
.build?;
Target: send a verification email
Build the message and send it — the configured backend does the rest.
use EmailMessage;
let msg = new
.from
.text_body;
msg.send.await?; // SMTP, API, or console — same call
What you get
- One
sendinterface over SMTP, provider API, or console - Swap providers with a config change, not a code change
- Console backend in dev — build the flow before you have keys
- Attachments and HTML / text bodies
- The delivery layer umbral-auth's password reset plugs into
Usage
Register `EmailPlugin`; the backend (SMTP, provider API, or the dev console) is chosen from the environment. Compose with `EmailMessage::new(subject, recipients)` and `.send().await` — swapping providers is a config change, never a code change.
cargo add umbral-email
Feature tracker
Per-feature shipping status, recorded in the directory.
Compose subject, recipients, sender, text, HTML, and reply-to.
STARTTLS SMTP transport with optional credentials and timeout.
Feature-gated Resend and SendGrid JSON delivery.
Dev/test backend prints rendered messages safely.
Multipart attachments with content-type validation.
Render template bodies and map template errors into EmailError.
Console backend refuses non-dev delivery unless explicitly forced.
Compatibility
Declared support per Umbral version and database backend.
No compatibility rows declared yet.
Community notes
0 notes in the discussion thread.
No notes yet. Be the first to share how this plugin works for you.
Reported issues
Bugs and abuse reports filed against this plugin.
No open issues
No issues have been reported against this plugin. Track upstream bugs on the maintainer's tracker, or report a directory problem to the Umbral team.