1
0
Fork
You've already forked qsf
0
Quick Spam Filter is a small, fast spam filter that works by learning to recognise the words that are more likely to appear in spam than non-spam. It is intended to be used in a procmail recipe to mark email as being possible spam. https://ivarch.com/p/qsf
  • C 88.7%
  • Shell 5.8%
  • Makefile 3.3%
  • M4 2%
  • Awk 0.2%
2025年07月08日 21:47:36 +01:00
docs Remove old unused RATS (Rough Auditing Tool for Security) markers. 2025年07月07日 18:26:56 +01:00
extra Remove old unused RATS (Rough Auditing Tool for Security) markers. 2025年07月07日 18:26:56 +01:00
src Explicitly discard the return value of fclose() as the fptr was opened for reading so no error would need further action. 2025年07月08日 21:47:36 +01:00
test Remove dependency on bash. 2025年07月06日 18:45:38 +01:00
.gitignore Draft gitignore file for the new GNU Autotools package structure. 2025年07月05日 21:10:43 +01:00
configure.ac Version bump, and commit to release date. 2025年07月06日 19:51:38 +01:00
Makefile.am Replace the cut-and-pasted release checklist in the developer docs with the QSF one. 2025年07月05日 22:11:35 +01:00
README.md Reformat "--version" output to match GNU conventions. 2025年07月06日 19:49:23 +01:00

Introduction

This is the README for qsf, a quick spam filter. QSF uses a database of "tokens" taken from previous emails to determine whether any given email is likely to be spam or not. If an email is miscategorised, simply send the email back to QSF with the appropriate parameters to modify the database and make it more accurate.

QSF works well with either its own backend databases, GDBM, SQLite, or MySQL. GDBM and SQLite are fast but the builtin database reduces dependencies on other libraries, whereas MySQL can be harder to set up.

If you use the MySQL backend, "make check" may fail. Read the documentation in the "MYSQL BACKEND" part of the manual for information on how to use qsf with MySQL. Also, it has been reported that MySQL 4.1.x works much better with QSF than 4.0.x or the 3.23.x series.

Documentation

A manual page is included in this distribution ("man qsf"). Before installation, it is in "docs/qsf.1".

Changes are listed in "docs/NEWS.md".

Developers, please see "docs/DEVELOPERS.md".

Dependencies

The internal binary tree and list databases have no dependencies.

The GDBM backend requires GDBM: https://www.gnu.org/software/gdbm/

The MySQL backend requires MySQL: https://www.mysql.com/

The SQLite backend requires SQLite: https://www.sqlite.org/ (version 2.x).

Note that if you try to compile MySQL support but the MySQL libraries cannot be found, make sure you have the MySQL development package installed. You may also need to install the zlib development package ("zlib-devel", "zlib1g-dev").

Installation

See "docs/INSTALL" for more about the configure script.

The typical process for a system-wide install is:

sh ./configure --prefix=/usr
make
sudo make install

This requires the build toolchain ("sudo apt install build-essential" on Debian or Ubuntu systems).

If this is not a packaged release, the configure script is not included. It is generated with the GNU build system tools (autoconf, aclocal, autopoint, automake); gettext is also needed. On Debian or Ubuntu, run "sudo apt install automake autopoint gettext". Once those tools are in place, call "autoreconf -is" to generate the configure script, and run it as described above.

There are some extra shell scripts in the "extra/" directory, which can help with generation of statistics. Read the scripts for full details.

Copyright, bug reporting, and acknowledgements

See "docs/ACKNOWLEDGEMENTS.md" for a list of contributors.

This package is copyright (C) 2003-2007, 2015, 2021, 2025 Andrew Wood, and is being distributed under the terms of the Artistic License 2.0. For more details, see the file "docs/COPYING".

Please report bugs or request features via the issue tracker linked from the home page.

The qsf home page is at:

https://ivarch.com/p/qsf

The latest version can always be found here.