I wanted to share a small project I’ve been working on: JMAP Screener, a lightweight daemon for Stalwart/JMAP that turns mailbox moves into learned sender rules.
The basic idea is simple: unknown mail lands in a Screener folder. When you move a message from Screener to Family, Work, Newsletters, or wherever else, the daemon learns that sender-to-folder mapping and updates a per-account Sieve script. Future mail from that sender goes straight to the right folder automatically.
It uses JMAP WebSocket push when available, falls back to polling, stores learned routes in SQLite, and keeps the generated Sieve script in sync.
The goal is to get the benefit of mail rules without constantly writing or maintaining rules by hand: just file mail the way you normally would, and let the server learn from that.