Current version: 1.2.23 (6 July 2025) [src]
Quick Spam Filter (QSF) is an email classification filter, designed to be small, fast, and accurate, which works to classify incoming email as either spam or non-spam.
To recognise spam, QSF strips the text out of the email (using MIME decoding and HTML stripping) and then splits it into tokens (words, word pairs, URLs, and so on). These tokens are then looked up in a database and analysed using the Bayesian technique to see whether the email should be classified as spam or not.
The database is generated by a process of training - QSF is given two mailboxes, one containing known spam, and the other containing known non-spam, to train itself on. After training, if QSF misfiles any email, the message it got wrong can be fed back into the database, allowing QSF to learn from its mistakes.
For a more in-depth look at the way in which QSF tokenises and classifies messages, please see the "Technical details" section of the manual.
QSF is designed to be run by an
MDA, such as
procmail
. See the FAQ for a quick-start
guide.
This software is distributed under the terms of the Artistic License 2.0.
- Source code: qsf-1.2.23.tar.gz [signature]
- Manual for qsf
- Git repository (at Codeberg)
- Issue tracker (at Codeberg)
To install qsf
, follow these steps:
curl -O https://ivarch.com/s/qsf-1.2.23.tar.gz tar xzf qsf-1.2.23.tar.gz cd qsf-1.2.23 sh ./configure make sudo make install
Comments, bug reports, and patches can be sent using the Issue tracker, or through the Contact Form.
News
1.2.23 - 6 July 2025
- fix: correct MD5 library compilation fault on GCC 15 (#1)
- cleanup: rewrite build system to use GNU Automake
- cleanup: reformat source consistently
- cleanup: reformat –version output to match GNU conventions
- docs: restructure manual to read better for newcomers and to follow man-pages(7) conventions
- docs: switch NEWS file to Markdown format
- docs: switch README file to Markdown format
- docs: create a separate ACKNOWLEDGEMENTS document
1.2.15 - 29 March 2021
- bugfix: correct exit status of “qsf -t” to 0 if memory limit exceeded (Zhengdao Wang)
- bugfix: correct compiler warnings and toupper() misfire (Dr. David Alan Gilbert)
- bugfix: report error if “qsf -T” is pointed at directories (Iain Calder)
- cleanup: clean up compiler warnings related to unused vars and type mismatches
1.2.11 - 3 January 2015
- bugfix: Debian #773546 - report error on malformed message (Jameson Graef Rollins)
- bugfix: Debian #651881 - X-Spam-Level corruption on non-ASCII spam (Ian Zimmerman)
- bugfix: MD5Final now correctly clears context (patch from David Binderman)
- bugfix: removed “DESTDIR” / suffix to fix Cygwin installation
- cleanup: mailbox code consolidated into single file
- cleanup: moved acknowledgements out of manual page
- cleanup: better “rpm” and “srpm” build targets