1. A method for classifying a message, the method comprising: maintaining a table of message features in memory, wherein each message feature corresponds to a good count and a spam count, and wherein the good count is based on a number of times the message feature is associated with a previously received message determined not to be unsolicited and the spam count is based on a number of times the message feature is associated with a previously received message determined to be unsolicited; receiving a message for analysis; determining that a sender address of the received message is not in a database of known sender addresses; identifying one or more message features in the received message; tracking user classification of previously received messages, wherein the user classification indicates whether the previously received messages are junk or unjunk, the user classification maintained in a table stored in memory; computing a score for each message feature identified in the received message based on the good count and spam count associated with the identified message feature and user classification of received messages associated with the identified message feature; determining that the received message is an unsolicited message based on the computed score; and processing the received message according to the score derived from analysis of the identified message features in the received message.