Skip to content

Mailboxes: daily blocklist check - #133

Merged
ralyodio merged 1 commit into
mainfrom
feat/mailbox-blacklists
Oct 7, 2026
Merged

ralyodio merged 1 commit into
mainfrom
feat/mailbox-blacklists

Conversation

@ralyodio

@ralyodio ralyodio commented Oct 7, 2026

Copy link
Copy Markdown
Contributor

Hunter's "run the deliverability checker" step, run daily by the worker.

  • Domain lists (Spamhaus DBL, SURBL, URIBL) for every mailbox's sending domain; IP lists (Spamhaus ZEN, SpamCop, Barracuda) for self-hosted SMTP servers only — Gmail/Microsoft/Zoho/Fastmail/Forward Email IPs are shared and skipped.
  • Listing codes are explicit per list, so refusals (Spamhaus 127.255.255.x to public resolvers, URIBL 127.0.0.1) are "could not check", never "listed".
  • Hourly sweep, at most 5 mailboxes per workspace per run, each re-checked after 24h. A newly listed mailbox raises one error event; health drops 40 points with "Listed on X: request delisting" as the top issue. Sending is not paused automatically: a false positive halting a mailbox costs more than a day's warning.
  • Surfaces: blacklist in GET /mailboxes/:id/dns (also MCP check_mailbox_dns), og mailboxes dns, a Blocklists row on the Mailboxes page, blacklistedOn on each mailbox.

Migration 0056 (one new table).

Tests: providers blacklists.test.ts (4), the sweep in mailboxes.test.ts (records, alerts once, health drops). mailboxes/cli/mcp/migrate suites 72/72; web typechecks.

🤖 Generated with Claude Code

…rracuda)

The planner's monthly deliverability check, daily and automatic. Each active
mailbox's sending domain is checked against the domain lists, and a
self-hosted SMTP server's IPs against the IP lists (skipped for Gmail,
Microsoft and other shared providers, whose IPs say nothing about one
mailbox). Each list's listing codes are explicit, so a refusal such as
Spamhaus's 127.255.255.x to public resolvers reads as 'could not check',
never 'listed'. A new listing is an error in the live feed (once), costs
40 health points with the list named first, and shows in GET
/mailboxes/:id/dns, og mailboxes dns and the Mailboxes page.

Migration 0056.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@ralyodio
ralyodio merged commit a3ae48e into main Oct 7, 2026
4 checks passed
@ralyodio ralyodio mentioned this pull request Oct 7, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant