A perfect solution for the future against spam would be to introduce a new mail protocol. In this new mail protocol a user would have to pay to send an email (but not for receiving them). The amount of payment for each mail can be quite small (even less than a dollarcent). Because spammers always sent mails in very large quantities they will quickly get into large amounts of money. However almost all standard users only sent a limited amount of mails a year (less than a 1000).
Disadvantage is that all mail programs will have to be updated for using this protocol. And that every user will have to open an account and transfer some money to it. But I would gladly
pay a few dollars to be rid of spam forever!