Bogofilter is a mail filter that classifies e-mail as spam or ham (non-spam) by a statistical analysis of the message’s header and content (body). The program is able to learn from the user’s classifications and corrections. It was originally written by Eric S. Raymond, and is now maintained together with a group of contributors including but not limited to Adrian Otto, Matthias Andree, Matt Martini and David Relson.
The statistical technique used is known as Bayesian filtering and its use for spam was first described by Paul Graham in his article A Plan For Spam. Gary Robinson, in his weblog Rants, suggests some refinements for improved discrimination between spam and ham. Bogofilter’s primary algorithm uses the f(w) parameter and the Fisher inverse chi-square technique that he describes.
Bogofilter is run by an MDA script to classify an incoming message as spam or ham (using wordlists stored by BerkeleyDB). Bogofilter provides processing for plain text and HTML. It supports multi-part MIME message with decoding of base64, quoted-printable, and uuencoded text and ignores attachments, such as images.
Bogofilter is written in C, and runs on Linux, FreeBSD, Solaris, Mac OS X, HP-UX, AIX and other platforms.