Spam filtering is one way to reduce the impact of the problem on the individual user (though it does nothing to reduce the effect of the network traffic generated by spam). In its simplest form, a spam filter is a mechanism for classifying a message as either spam or not spam. There are many techniques for classifying a message. It can be examined for “spam-markers” such as common spam subjects, known spammer addresses, known mail forwarding machines, or simply common spam phrases. The header and/or the body can be examined for these markers. Another method is to classify all messages not from known addresses as spam. Another is to compare with messages that others have received, and find common spam messages. A popular spam filter is SpamAssassin. It’s an extensible email filter that is used to identify spam. Once identified, you can optionally tag it as spam for later filtering. It also provides a command line tool to perform filtering, a client-server system for larger volumes and Mail::SpamAssassin, a set of Perl modules allowing SpamAssassin to be used in a wide variety of email system. It’s also become much easier to blacklist and whitelist messages than before. SpamAssassin also comes equipped with Bayesian filters that can identify spam and non-spam (called “ham”) based on certain keywords or “tokens” that appear frequently in spam messages. The more spam (and ham) you filter, the better it gets at detecting spam. If you can’t use a filter, what then? The most common solution is to have multiple email addresses. One approach is to select one to be your “private” guarded email address - much like an unlisted phone number - that you never use in situations where the email address would be harvested for spam mailing lists. The other approach is to generate “throw-away” email addresses that you use only for a limited time (say when registering a product), and can safely ignore thereafter. And of course both approaches can be used at the same time.