Since a couple of people asked me in messages, here's what I've settled on, written up properly because the split is the useful bit.
The split
Not all mail is the same and treating it as one system is why this keeps failing.
- Anything a locked-out user is waiting for — password resets, login codes, receipts. This goes out through a provider with existing reputation. Full stop, no ideology. The cost of a spam-foldered reset is a human being unable to use the thing they paid for.
- Anything I'm content to have arrive eventually — digests, notifications, internal alerts. Self-hosted, my box, my range, and if Microsoft grey-lists it for a week I'll live.
That division is not a compromise, it's just accurate about what the mail is for.
Checking a range before you buy
- Ask support for the /24 in writing before ordering. Half will tell you.
- Check the range, not the IP, on Spamhaus policy lists. Individual listings are noise; a policy listing is a verdict.
- Ask how long since that address block was last reassigned. Recycled space carries its previous tenant's history and nobody volunteers this.
- Send one message to a seed address on each major provider from the box on day one, before any warm-up, and read the full headers. If you're already in a folder on day one, cancel and get a refund.
On the providers themselves
1984 has behaved well for me for the low-stakes half and their space is calm. PRQ is fine technically but at €30 you're paying for legal hardening you don't need for a digest. Anything marketed as ignoring abuse complaints is the wrong tool for outbound mail regardless of price, per byte_broker above, and that was the piece I'd been getting wrong for five attempts.
I have not tested this split under real volume yet — my digest list is four thousand people, which is nothing.
Short version: stop asking which host has clean space and start asking which of your mail can afford to be late.