Umbral
Back to plugin directory
UE

Umbral Email

Official by Umbral contributors

SMTP/API/console mail, HTML text, attachments, auth flows

official beta

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

cargo add umbral-email

Wire it up

use umbral::prelude::*;
use umbral_email::EmailPlugin;

let app = App::builder()
    .database("default", pool)
    .plugin(EmailPlugin)   // backend selected from the environment
    .build()?;

Target: send a verification email

Build the message and send it — the configured backend does the rest.

use umbral_email::EmailMessage;

let msg = EmailMessage::new("Verify your email", vec![user.email.clone()])
    .from("noreply@acme.dev")
    .text_body(&format!("Confirm: https://acme.dev/verify/{token}"));

msg.send().await?;   // SMTP, API, or console — same call

What you get

  • One send interface 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.

plugin setup
cargo add umbral-email

Feature tracker

Per-feature shipping status, recorded in the directory.

7 of 7 shipped
Message builder usable Beta

Compose subject, recipients, sender, text, HTML, and reply-to.

SMTP backend usable Beta

STARTTLS SMTP transport with optional credentials and timeout.

HTTP API backends usable Beta

Feature-gated Resend and SendGrid JSON delivery.

Console backend usable Beta

Dev/test backend prints rendered messages safely.

Attachments usable Beta

Multipart attachments with content-type validation.

Template rendering usable Beta

Render template bodies and map template errors into EmailError.

Production safety usable Beta

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.

Report an issue

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.