Pyzor is a collaborative, networked system to detect and block spam using digests of messages.

Using Pyzor client a short digest is generated that is likely to uniquely identify the email message. This digest is then sent to a Pyzor server to:

  • check the number of times it has been reported as spam or whitelisted as not-spam
  • report the message as spam
  • whitelist the message as not-spam

Since the entire system is released under the GPL, people are free to host their own independent servers. There is, however, a well-maintained and actively used public server available (courtesy of SpamExperts) at:

Getting the source

To clone the repository using git simply run:

git clone

Please feel free to fork us and submit your pull requests.

Running tests

The pyzor tests are split into unittest and functional tests.

Unitests perform checks against the current source code and not the installed version of pyzor. To run all the unittests suite:

env PYTHONPATH=. python tests/unit/

Functional tests perform checks against the installed version of pyzor and not the current source code. These are more extensive and generally take longer to run. They also might need special setup. To run the full suite of functional tests:

env PYTHONPATH=. python tests/functional/

There is also a helper script available that sets-up the testing enviroment, also taking into consideration the python version you are currently using:



The authentication details for the MySQL functional tests are taken from the test.conf file.


The project is licensed under the GNU GPLv2 license.