What's New — Matching and exceeding Robotomail
New Worker Features (server-side, no CLI update needed)
SSE Real-time Event Stream
GET /v1/events— connect once, receive email events as they happen- No public URL needed (unlike webhooks). Perfect for agents behind firewalls
- Filter by event type, replay missed events via
?since=
Message Delivery Status Tracking
- Tracks: QUEUED → SENT → DELIVERED → BOUNCED → COMPLAINED → FAILED
- Receives Resend webhook callbacks via
POST /api/resend-webhook - Fires user webhooks and SSE events for each status change
API Key Permission Scoping
scope: 'full'— all operations (default)scope: 'mailbox'— restricted to own mailbox only- Safe for multi-agent deployments (one key per agent)
Webhook Retry with Auto-Pause
- Exponential backoff: 0s, 1s, 3s, 8s (4 attempts, < 15s total)
- 10 consecutive failures → webhook auto-paused (status: 'failed')
- Success resets failure counter
Custom Domain Guided Configuration
POST /v1/domains— register domain, get required DNS recordsPOST /v1/domains/:id/verify— check DNS via Cloudflare DoH- Auto-validates MX + SPF records
Infrastructure
- Hourly cron cleanup for SSE events table (24h TTL)
- DB migration:
0002-events-domains-webhook-retry.sql - 18 new tests for all v1.8.0 features
Documentation
- Complete docs site at mails0.com/docs (10 pages)
- Quickstart, Messages API, SSE Events, Authentication, Webhooks, Custom Domains, CLI, Python SDK, MCP Server
Full Changelog: v1.7.0...v1.8.0