For stranger to stranger communication, both business and non-business set up a web form. With a challenge if needed.
For friend to friend communication, use email, friends' address in on a white list.
For business to consumer communication, white list is again used.
For spammer to anyone communication, including business lists that refuse to take you off, not on white list so doesn't get in. Bounce response with reason "non on white list"
It's a cultural change though: an email address won't get through unless you are unblocked, but technically easy.
An email comes in from a sender address which isn't on the whitelist, but is (in fact) a friend. What's the handling?
An email comes in from a sender address which isn't on the whitelist, but is not (in fact) a friend. What's the handling?
Do I never hear from the first friend? Or do I get bombarded with "hey, read this email and see if the sender is a friend" a bunch of times?
Joe manages his whitelist through his mail provider's web UI. Many providers already use the address book as a whitelist; the only difference is they default to filtration instead of assuming spam.
Joe's friend's mail gets routed to the spam box. Joe's friend gets a bounce notification that says "To be added to Joe's whitelist, click here (and optionally solve a captcha/enter Joe's dog's name/submit a blood sample/deposit $0.25 worth of bitcoin into Joe's wallet)." Joe's friend clicks here, and Joe's mail provider adds Joe's friend to the whitelist and promotes the email to the inbox.
Joe's spammer gets the same message and disregards it. Their email stays in spam forever.
Joe's spam box gets bombarded with "hey, read this email and see if the sender is a friend" a bunch of times. He can trawl through them for actual friends if he wishes.