This is impractical because micropayments are impractical.
I have a better idea; split the problem into two. First, require all messages to include an `Automated: 0|1` header; eventually downranking / banning providers that don't include it, like we now do with DKIM, SPF, DMARC and such.
For messages with `Automated: 1`, require informed consent, mediated and verified through the recipient's provider.
It's impractical to require pre-approvals on every message, because many people genuinely want human-to-human contact from semi-strangers. On the other hand, requiring consent without verification is ineffective, because it is too easy to pretend consent. This design splits the spam problem into two much more tractable su-problems, detecting lying senders that mark automated messages as non-automated (easy with modern AI + basic statistical analysis), and verifying consent for honest automated senders (just requires a protocol).
> This is impractical because micropayments are impractical.
Well, one can dream :-)
Micropayments may be impractical, but email as it is currently used is also impractical for personal use cases. Outside of the tech world, how many people do you know how primarily communicate via email?
Most have switched to texting, or to closed systems (WhatsApp, etc). Some of these closed systems make it easy for you to block others, and also can tightly control spam.
> First, require all messages to include an `Automated: 0|1` header; eventually downranking / banning providers that don't include it
How do you handle bad actors who set it to 0?
> It's impractical to require pre-approvals on every message, because many people genuinely want human-to-human contact from semi-strangers.
You pre-approve the person, not the message. Once approved, no further approvals are needed.
And human-to-human contact, for me, means more or less 1:1 (or at most 5:1). If a semistranger wants to talk to me, by all means, I'll approve him. What's the concern?
> On the other hand, requiring consent without verification is ineffective, because it is too easy to pretend consent.
Right now I do it by whitelisting the email address. Obviously, it's fragile. In practice, it's never a problem. The only failures are when I get spam with a From address that is mine. No company ever impersonates a friend's email address to get to me.
(Not saying your solution is unworkable, but would need more details).
Today, Gmail and other major providers do this by tracking sender reputation at the domain level. If users mark your emails as spam, that hurts your domain's reputation. If a domain's reputation gets low enough, Gmail won't deliver mail from that domain.
It's better than nothing (much better than nothing, IMO), but but spam will continue to be an issue as long as we want/expect to receive incoming mail from strangers, and as long as we plan not to have a centralized authority for email identities.