EMAIL: calternal sends its own email (share/invite notices, sign-in alerts) via SMTP (MXRoute), admin-configured (grill) #575

Open
opened 2026-10-01 05:18:07 +00:00 by kayg · 0 comments
Owner

Owner request (2026-10-01, sharing grill)

calternal needs to send email for its own notices. The owner has an MXRoute subscription to use as the outgoing mail service: "We can configure email super easily."
Uses (first set):

  • share and invite notices (#479: "X shared Y with you", with the invite link);
  • per-person invite links (one-time, sent to an address);
  • sign-in and recovery notices (new device, password/passkey change, recovery used);
  • an optional digest of the in-app inbox;
  • admin alerts (storage, failed backups, update available).
    Design to grill (OPEN; do not build until answered):
  • Server config: an admin screen (Settings → Server → Email) with SMTP host/port/TLS, a from-address and a reply-to, plus a "Send test email" button. Credentials are stored like other server secrets (never in the repo, logs or issues). The owner's MXRoute credentials live in the 1Password vault Calternal and are loaded into the server env at deploy.
  • Deliverability: SPF/DKIM/DMARC for the sending domain. MXRoute signs DKIM. A check in the admin screen shows whether DNS is right.
  • Per-User preferences: which notices arrive by email vs. only in the inbox; unsubscribe links; quiet hours.
  • Templates: plain text + simple HTML, in the User's language, with no tracking pixels.
  • Reliability: an outbox queue with retries, rate limits, bounce handling, and a "sent log" for admins.
  • Relation to the Mail tab's SMTP (sending as the User's own Connected Accounts, still open) and to the CalternalDAV proxy's sending (#486, postponed). Keep the app's notification mail separate from the User's own mail.
## Owner request (2026-10-01, sharing grill) calternal needs to **send email** for its own notices. The owner has an **MXRoute** subscription to use as the outgoing mail service: "We can configure email super easily." **Uses (first set):** - share and invite notices (#479: "X shared Y with you", with the invite link); - per-person invite links (one-time, sent to an address); - sign-in and recovery notices (new device, password/passkey change, recovery used); - an optional digest of the in-app inbox; - admin alerts (storage, failed backups, update available). **Design to grill (OPEN; do not build until answered):** - **Server config:** an admin screen (Settings → Server → Email) with SMTP host/port/TLS, a from-address and a reply-to, plus a "Send test email" button. Credentials are stored like other server secrets (never in the repo, logs or issues). The owner's MXRoute credentials live in the 1Password vault `Calternal` and are loaded into the server env at deploy. - **Deliverability:** SPF/DKIM/DMARC for the sending domain. MXRoute signs DKIM. A check in the admin screen shows whether DNS is right. - **Per-User preferences:** which notices arrive by email vs. only in the inbox; unsubscribe links; quiet hours. - **Templates:** plain text + simple HTML, in the User's language, with no tracking pixels. - **Reliability:** an outbox queue with retries, rate limits, bounce handling, and a "sent log" for admins. - **Relation to the Mail tab's SMTP** (sending as the User's own Connected Accounts, still open) and to the CalternalDAV proxy's sending (#486, postponed). Keep the app's notification mail separate from the User's own mail.
Sign in to join this conversation.
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
kayg/calternal#575
No description provided.