The easiest way to avoid spam is to disclose your email address as little as possible. Unfortunately, this is not an easy task. You'd have to let go of many useful and legitimate services that require your true email address.

An alternative is to filter out your incoming mail, discarding everything that looks like spam. A problem remains though: How to tell the spam from legitimate mail?

For the sake of this discussion, I'm supposing you have some means of filtering your incoming mail. Some mail agents will allow you to do that. You can also use procmail (Unix/Linux) to do the filtering.

A good thing to do is to always filter out messages that do not have your email address or any of your mailing lists on the To: field. Many of the so-called bulk-mailers will only put the destination email addresses on the message envelope, not on the headers. This rule itself should filter out around 90% of your spam mails.

Also, filter out messages without a "From:" field or containing the "X-UIDL:" header.

It's a good idea not to delete the messages caught by the filters immediately. Just send them to a separate folder/mailbox for later visual inspection. You'll find some legitimate cases classified by your filters as spam. The most common ones are people who have personal distribution lists and put something bogus in the "To:" field. Also, some POP3 servers insert the "X-UIDL" header on all messages. If that's the case, just add an exception to your filter rules, like, "If the message is coming from (a specific person known to use these features) then do not filter".

These simple steps minimized my spam to 10% of what it was. A true relief.

And last but not least, always keep in mind that you should never reply to a spammer. Some spam mails have something like "If you wish to be removed from our mailing list, reply saying ....". If you reply, the spammer will be sure that your email address represents an active and valid email account. And, of course, you won't believe the word or a spammer will you?