GPL About Home

Other Project

Project SpamStats  (SPAM Statistics Report)


Web-based SPAM Statistics Report :: To provide a Web-based SPAM report for users of PHP powered Web servers, particularly those clients under the ISPConfig control, panel that is both reasonably secure and reasonably simple to operate.

Project output should include PHP code and pre-built packages ready to deploy, and instructional operating documentation (if necessary).


In November 2006, after furnishing an email server with a number of third-party SpamAssassin rules, I was actively seeking out a way to measure SpamAssassin's effectiveness at reducing SPAM levels. There wasn't anything that was both visually representative and simple to install and run. Thus came the beginnings of SpamStats.

SpamStats is dependant upon two other Open Source projects; It utilises the StatsPlugin for SpamAssassin, authored by James Keating. This is a simple plugin that observes the system username and the assessment of a given email message, by SpamAssassin, and then tallies that result in a MySQL database, with each user accumulating one table row per day of email activity. SpamStats also utilises the PHP/SWF Charts library, authored by Maani. The various Maani Charts libraries make it very easy to create high quality graphical representations of multiple data-sets, from dynamic sources.

By December 2006 a stand-alone PHP/MySQL application had been developed, based on those two projects, and was able to generate a live report of a user's SPAM -vs- email results. That program has run successfully for more than twelve months (as at January 2008), demonstrating that out of around 115,000 messages received in that year, SpamAssassin had dropped almost 100,000 messages (or about 87%) as SPAM. This figure is higher than many commercial, enterprise grade, solutions - and not one report or indication of a false positive.

Having helped to deploy an ISPConfig based control-panel driven ISP in November 2007, which included a solid SpamAssassin build, it came to pass that an integrated reporting system was needed. In January 2008, the original SpamStats code was updated (to provide more user-friendly error states - such as zeroed report figures in case the user hadn't received mail, as opposed to a data error) and then altered so that it integrated into the ISPConfig database and libraries for its session authentication and user configuration, as well as its user interface. See; Tools -> Reports -> Spam Statistics

From a public code view-point, there is only the ISPConfig version of Project SpamStats available. There may, one day, be a stand-alone version re-made. Presumably someone will try to port this module to the commercial CPanel system (why don't they have something like this already?).

The SpamStats ISPConfig package can be downloaded below. It is designed to install (and uninstall, when ISPConfig implements it) the Midnight Code Project SpamStats software, including the PHP/SWF library, cleanly via the ISPConfig management interface (Management -> Update Manager -> Update). While this package does not install James' StatsPlugin software, if you unzip the package you will find a web/install/README.txt file that explains how to install the StatsPlugin software (also supplied in the web/install directory), correctly.

All user input is checked and only valid or correctly defaulted values are passed on. As with all Midnight Code software, vulnerabilities reported to Midnight Code will be patched.

Screen Shots:

The following screen shots show the software or hardware developed for this project, in action;
Original SpamStats Month/Tally graph
Original SpamStats Month/Tally graph
Original SpamStats Month/Percentage graph
Original SpamStats Month/Percentage graph
ISPConfig SpamStats integration
ISPConfig SpamStats integration
ISPConfig SpamStats Annum/Percentage graph
ISPConfig SpamStats Annum/Percentage graph


The following code (source, binaries, patches, etc) have been developed or mirrored for this project;


The following links have been identified as relevant to this project;


This project was initiated on Sunday, the 12th of November 2006. Its last recorded activity stamp is Saturday, the 1st of March 2008.