Our Personal Data Server from scratch! tranquil.farm

Support HTML/styled notification emails (or configurable templates) #106

Closed oyster.cafe
Closed opened by oyster.cafe

Summary #

Right now every notification email tranquil-pds sends (welcome, password reset, signup verification, email-update) is hardcoded plain text baked into the binary — crates/tranquil-comms/src/locale.rs's STRINGS_* constants — and crates/tranquil-comms/src/email/message.rs sets Content-Type: text/plain unconditionally, with no HTML alternative part.

Running my own instance (haiku.garden, for a small poetry/music community), I'd like these emails to carry basic branding (logo, colors, a friendlier layout) instead of raw plain text. Currently that's impossible without forking and rebuilding the binary, and even then there's no way to change the wording without a fork, since the strings aren't sourced from config or an external template file.

Request #

Ideally, in rough order of usefulness-to-effort:

  1. Multipart HTML + plain-text emails, with a default HTML template that at least applies basic styling (not just a <pre>-style dump of the current plain text) — plain text stays as the fallback part for clients that want it.
  2. Instance-level branding config — e.g. a logo URL / accent color / instance display name in config.toml's [email] section, injected into the default template, so self-hosters don't need to fork just to put their own name/color on it.
  3. (Stretch) template overrides — let an instance point to its own template file(s) on disk for full control, for operators who want to go further than the built-in default.

Happy to help test against a real SMTP relay (Spacemail, in our case) if useful, and can share screenshots of what our current plain-text emails look like in the wild if that helps motivate the default template design.

Sign up or Sign in to add to the discussion.