Better yet. Require proof of work where the receiver sets the challenge level. Now you can whitelist people by offering trivial challenges for them. If you really want to email me it's going to take 2 minutes of CPU time - this will be done by the new mail clients in the background, so individual personal cost is essentially zero but bulk mail will require significant resources to send.
At some point 1:N becomes prohibitively expensive for the sender, but that doesn't mean that there is wasted work.
edit: To clarify, not really promoting the idea per say, just commenting on the proof of work statement.
It would come down to numbers of course on whether it was actually a good idea, and one of those numbers would have to be "how much work needs to be done before your average spam calling scammer is no longer profitable", but as it stands if there is a number sufficient for that that still allows for regular emails, then the incentive to burn machine time on sending out mass-emails is effectively removed.