Project

General

Profile

Actions

Sub-Task #195

open

Epic #188: Notification System

Feature #189: Email Notifications

User Story #193: As a system, I want to send emails on long-term events, so that users receive batch digests

Integrate SMTP provider

Sub-Task #195: Integrate SMTP provider

Added by Bricklou 6 months ago. Updated 18 days ago.

Status:
Done
Priority:
Normal
Assigned To:
Target version:
Start date:
09/07/2026
Due date:
% Done:

100%

Estimated time:

Description

The instance sends transactional emails (verification, password reset, notifications). The pipeline has two separate stages:

  1. Template rendering (see #194): the email body is authored in MJML and compiled to HTML via mrml, a pure-Rust MJML→HTML renderer. mrml only compiles static markup — it has no variable/conditional syntax of its own — so dynamic values (name, verification link, etc.) are injected by running the compiled HTML through Tera on top of it.
  2. Sending (this issue): the rendered HTML is handed to lettre, a Rust SMTP client crate, which delivers it over SMTP.

Scope of this issue is stage 2 only:

  • SMTP connection is configured entirely via environment variables: host, port, credentials, sender address, and encryption/TLS mode.
  • If no SMTP environment variables are set, sending is a no-op — callers must treat "no mail configured" as a valid state (e.g. accounts auto-verify at registration when no mail server is available, see #166).
  • For local development, a self-hosted mail-catching tool (Mailpit, replacing the now-deprecated MailHog) is provided so anyone can inspect sent emails without a real mailbox, deployed as a k3d manifest in the local dev environment.

Related issues 1 (1 open — 0 closed)

Blocks Server - Sub-Task #166: Send invitation email with tokenPlannedBricklou

Actions

Updated by Bricklou 18 days ago Author Actions #1

  • Description updated (diff)

Updated by Bricklou 18 days ago Author Actions #2

Updated by Bricklou 18 days ago Author Actions #3

  • Description updated (diff)

Updated by Bricklou 18 days ago Author Actions #4

  • Status changed from Draft to To Do

Updated by Bricklou 18 days ago Author Actions #5

  • Status changed from To Do to Planned
  • Assigned To set to Bricklou
  • Target version set to Server 0.1.0
  • Start date deleted (03/29/2026)

Updated by Bricklou 18 days ago Author Actions #6

  • Status changed from Planned to In Progress
  • Start date set to 09/07/2026

Updated by Anonymous 18 days ago Actions #7

Commit referenced this issue: @4ef1bf7d@

https://codeberg.org/Bricklou/kubestro/commit/4ef1bf7dad1900297a8d532ea0e37d286fbf6313

feat: implement mail sending capability to the server api (#195)

Updated by Bricklou 18 days ago Author Actions #8

  • Status changed from In Progress to In Review
  • % Done changed from 0 to 100

Updated by Anonymous 18 days ago Actions #9

Commit referenced this issue: @4ef1bf7d@

https://codeberg.org/Bricklou/kubestro/commit/4ef1bf7dad1900297a8d532ea0e37d286fbf6313

feat: implement mail sending capability to the server api (#195)

Updated by Bricklou 18 days ago Author Actions #10

  • Status changed from In Review to Done
Actions

Also available in: PDF Atom