Spam is a growing problem that has not slowed down with recent laws against it. You can spend money on spam filers but there is only one sure way to eliminate spam forever; spammers will fill your mailbox with junk unless you take the following steps.
1. Create an email account specifically for junk mail, and another for personal or business mail.
2. When you register at reputable business web sites such as amazon.com or half.com, you can give them your primary email address because they will not sell your address or fill your inbox with mail, but if you register with a site that offers free downloads, or jackpot sweepstakes, or online games, free antivirus software, and just about anything else, NEVER give your primary email address, but give your spam email.
I have several email accounts, at one I literally get over 100 emails every day, but at my others I get no spam, because of following the above rule. Of course that is something I had to learn the hard way. From time to time you may actually want to cancel a spam email address and create another one, just so you don't have to keep checking it and deleting hundreds of junk emails.
If you have a Yahoo mail account it is important that you do the following: Go to Mail Options, click on my account on the far left, then click on "Edit Listing" on the far right column, then look for "Display Options" and click edit. Make sure you check the box that says "suppress" listing, otherwise your Yahoo address is published like a number in the telephone book and other people looking in Yahoo email listings will see your address and add you to their spam list. Suppressing the address means your email address is not published and you are not likely to get spam from this means.
With that done, on the same page as the "Edit Listing" click on "Edit your marketing preferences" and click no to all the options, otherwise yahoo will sell your address to spammers. Even with the above steps you will from time to time get spam, but not much.
If you are opening a new email account, you can suppress your address when Yahoo asks if you want your address made public. Just check the no box and you will not get spam unless you give your email address to a web site as mentioned above.
3. When you sign a guestbook never put in your email address because spammers crawl the web to collect email addresses and add them to their mailing list. The same goes for newsgroups, message boards, and chat rooms. If you must use an email address, use the spam address you created for that purpose.
4. Never respond to or even open unsolicited email, when you open the email a graphic inside will load which will alert the sender that your email address is valid.
5. Use the built in spam filtering that comes with Yahoo and Google mail, and with other email programs. The best one I now use is Google, gmail.com. I rarely get a spam mail in my inbox, and never get good mail in the spam box.