Skip to content

Releases: psalm2517/cindermail

v0.3.0

Choose a tag to compare

@psalm2517 psalm2517 released this 07 Aug 01:50
86f9d6d

v0.3.0

Cindermail is now Cloudflare-only, and addresses are permanent by default.

Breaking

  • Self-hosted (SMTP + SQLite), Docker, and the Node mail.tm runtime are gone. Cloudflare Workers is the only target. Removes better-sqlite3 and smtp-server, and with them all 3 known dependency vulnerabilities.
  • /new is permanent by default. The permanent flag is replaced by expiry, a number of days, where 0 also means permanent. /extend still defaults to 10 days.
  • DISPOSABLE_DOMAIN and MAX_ACTIVE_ADDRESSES moved from wrangler.jsonc to secrets, so cloning the repo no longer inherits someone else's domain. Set them with wrangler secret put.
  • MailAdapter gained notify(owner, message) alongside deliver. Custom adapters need it.
  • Requires migrations 0006 and 0007. See docs/deploy-cloudflare.md.

Added

  • mail.tm runs on Workers now. Leave DISPOSABLE_DOMAIN unset for disposable addresses with no domain, no DNS and no Email Routing. Same Worker, switchable without redeploying.
  • Deploy to Cloudflare button. Provisions the database, deploys, and prompts for your own domain and credentials.
  • /note <address> [note], plus a note option on /new. Labels show up in /list.
  • /remind [enabled], opt-in DMs about a day before an address expires. One message covering everything expiring, off unless asked for.
  • Status page at the Worker root: addresses created, emails received, torched, and people holding an active address. Same numbers as JSON at /counters.
  • 85 tests, run in CI. Node's built-in runner against real SQLite, no new dependencies.

Fixed

  • Email content was rendered as Discord markdown unescaped, so a message could arrive as a link reading yourbank.com while pointing elsewhere. Bodies, subjects, senders and anchor labels are all escaped now, and mentions can't ping.
  • /torch, /extend and /note rejected addresses typed with different capitalisation or stray whitespace, reporting "Not found or not yours". Phone keyboards autocapitalise, so this was easy to hit.
  • A missing counters table threw from core, dropping inbound mail entirely. Counter failures are contained.
  • npm run setup could discard the domain you entered, or create a Worker in your account without asking.
  • Expiry reminders can't take down the cleanup that runs alongside them.

Under Consideration (contingent on demand)

  • Telegram delivery adapter
  • Publicly hosted instance

v.0.2.0

Choose a tag to compare

@psalm2517 psalm2517 released this 05 Aug 08:50
50fc568

v0.2.0

  • npm run setup: interactive wizard for all three receivers, writes .env/wrangler.jsonc and creates the D1 database for you
  • mail.tm reframed as the default quick-start path (no domain/DNS/server), Cloudflare and self-hosted documented as the bring-your-own-domain options
  • Permanent addresses: permanent option on /new and /extend, never expire, good until torched
  • Public status page (Cloudflare only): live created/received/torched counts at the Worker's root, /counters JSON endpoint
  • wrangler.jsonc replaces wrangler.toml.example as the Cloudflare config path — committed (no secrets in it), since Workers Builds needs the D1 binding present at build time and dashboard-only bindings weren't surviving into new versions
  • Counter failures no longer able to affect address creation or mail delivery
  • Status page for hosted instance: https://cindermail.vsvn.net/

Planned: Telegram delivery adapter.

v0.1.0

Choose a tag to compare

@psalm2517 psalm2517 released this 02 Aug 01:32

v0.1.0

Initial release.

  • Three receivers: Cloudflare Workers (Email Routing + D1), self-hosted (SMTP + SQLite), mail.tm (no domain or server)
  • Discord delivery adapter: /new /list /extend /torch, ephemeral replies
  • HTML to readable text conversion, links preserved, attachments forwarded up to 25MB
  • 10 day address expiry, 5 active per owner, both configurable
  • Daily cleanup of expired/torched addresses and stale rate-limit rows
  • MIT licensed

Planned: Telegram delivery adapter.