v2.1 - 06/02/2004 - Added POLICY_DISCARD option to discard messages silently instead of rejecting them. v2.0 - 04/16/2004 - Fixed bug where outgoing messages were not being determined properly when sending IP resolves in DNS. v1.9 - 04/07/2004 - Do not ignore system-generated incoming emails by default anymore (IGN_SYSGEN option) - Fixed bug where SIGCHLD can accidentally kill processes if subprocess spawns others, such as using DCC with SpamAssassin v1.8 - 08/03/2003 - SpamAssassin support now defaults to persistant object. This seems to reduce memory footprint. - Added support for KEY request (Thanks to Steven Carr ) v1.7 - 05/20/2003 - Fixed UTF-8/Unicode errors when reading in messages for SpamAssassin - Update documentation to reflect new versions of CommuniGate v1.6 - 04/27/2003 - Support for INTF query required for newer versions of CommuniGate - SpamAssassin support has been improved to add headers to messages - Removed TESTONLY parameters v1.5 - 08/10/2002 - Ignore SpamAssassin base64 decoding errors - Add test-only variables to test what would have been rejected for SA or incoming - Debugging, can dump 'bad' messages to /tmp - Default to non-persistent SpamAssassin objects for better memory usage - Added sysgen table to schema and archive_throttle.pl - Minor code cleanups - Added section to README on 'Finding Local Users With Spam Dropboxes' v1.4 - 04/29/2002 - Major redesign to allow throttling of incoming mail as well as outgoing - Added 'insert delayed' syntax to speed up MySQL inserts ($INSERT_DELAYED) - Configuration section changed to support incoming/outgoing specific settings - Can now disable generic throttling by setting THROTTLE_MSGS = 0 - Changed archive_throttle.pl to delete only 250 rows at a time to prevent long locks - Note that DB schema (schema.sql) has changed, specifically the addition of the 'incoming' table - Check and ignore system generated mails when processing incoming mail - Basic SpamAssassin support has been added - Added 'incoming' to archive_throttle.pl v1.3 - 03/28/2002 - Sometimes children didn't die on exit, causing CG to hang waiting for processes to finish. Forcing a kill now. - Added subject throttling based on number of messages without any recipient limit required ($SUBJ_LAST_MSG_STRICT_*) - Explicitly set DBI AutoCommit on - Better handling of PERL warnings. A warning could previously hang the filter. Now they are sent to the main logfile. - Child process logging to $LOGFILE.PID added if $DEBUG >= 15 - umask is set to 022 so logfiles are not world writable - Messages without subjects caused minor warnings, fixed - Added suspend_log table which spam_report.pl now logs to - Other minor bug fixes v1.2 - 03/09/2002 - Changed to 'interval' syntax in SQL - Added subject throttling feature to catch slow spammers - Split up queries instead of join - Fixed minor off-by-one comparison in the limits (>= instead of >) - Check exempt_users table before any other checks instead of after - Fixed problem in spam_report.pl when dealing with NULL subjects - Changed archive_throttle.pl script to use temporary tables for better performance - Major code cleanup and rewrite, switched to perl -w, use strict v1.1 - 02/27/2002 - Added recipient limitation as well as message limitation - Included sample archiving and spam reporting script - Optimized tables and queries, new schema.sql v1.0 - 02/08/2002 - Initial release.