POPFile is an abandoned free, open-source, cross-platform mail filter originally written in Perl by John Graham-Cumming and maintained by a team of volunteers. It uses a naive Bayes classifier to filter mail. This allows the filter to "learn" and classify mail according to the user's preferences. Typically it is used to filter spam mail. It can also be used to sort mail into other user defined "buckets" or categories - for example, the user may define a bucket into which work email is sorted.
The program works in several different modes. In the most popular mode, it sets itself up as a proxy between the email client and the POP3 server. As mail is downloaded via POP3, the filter identifies and classifies mail and makes a user defined modification to the subject line, appending the name of the appropriate bucket. The user then sets up rules in the mail client to sort the mail based on the subject line modification. An HTML based interface can be used to instruct POPFile, allowing users to correct errors in classifications and thus train the system to be sensitive to the user's specific requirements.
As an alternative to the subject-line modification (or as a supplement to it), the system can also be configured to use custom mail headers instead.
In another possible mode, POPFile can work as an IMAP client that monitors an IMAP server for incoming mail and also for messages moved by the user. Incoming emails are categorized and then immediately moved to the folder corresponding to the categorization. To train POPFile in this mode, the user only needs to move the message to the correct folder, i.e. to the folder where POPFile should have moved the message.