Give out x7k2p9qzrm@yourdomain.com instead of your real address. Whatever gets sent to it is parsed, cleaned up, and delivered to you. Torch it when you're done.
A core that generates addresses, tracks who owns them, parses incoming mail, and doesn't care where any of it came from or where it's going. Two things plug into it:
- Where mail comes from. Cloudflare (Email Routing + D1), your own server (SMTP + SQLite), or mail.tm (no domain, no server).
- Where mail goes. Discord.
- Cloudflare Workers: no server to run, just a Cloudflare account and a domain.
- Self-hosted: your own machine, your own domain, your own uptime.
- mail.tm: no domain or server at all. Read the caveat in that guide first, mail.tm's domain is a known temp-mail domain and some signup forms block it.
- Discord setup: same steps regardless of which of the above you picked. Commands (
/new/list/extend/torch) are documented there.
/newgenerates a random address and ties it to whoever ran the command.- Give that address to whatever's asking for an email, a signup form, a newsletter, whatever. Mail sent to it always comes back to you, not wherever you gave it out.
- Mail arrives. The receiver looks up the owner. Missing, expired, or torched: dropped, no bounce, nothing logged.
- Valid: the mail gets parsed (HTML to readable text, links intact, attachments forwarded) and delivered.
Daily cleanup clears expired/torched addresses and stale rate-limit rows, on every path.
- 5 active addresses per owner, 10 day expiry. Both configurable.
- Message bodies cap at 1500 characters inline, longer gets attached as
message.txt. - Inbound HTML caps at 256KB before parsing (parsing cost scales quadratically with input, and addresses are reachable by anyone who learns one).
- Attachments forward individually up to 25MB combined per email. Over budget gets dropped with a note, not the whole batch.
Code layout and how to add an adapter or backend: docs/architecture.md.
MIT. See LICENSE.
