Filters 0.8.5

SERVER SIDE FILTERING NOTES

Sunil William Savkar has added code to allow server side filtering 
and in particular a module for maildrop/sql based .mailfilter files 
in virtual user home directories (which is used in Sunil's postfix+mysql+
courier imap+maildrop configuration).  This includes the use of spamassassin
which can be called within the .mailfilter.

Please test both the user side functionality and server side functionality.  
In particular, the specified "contained" strings must conform to 
maildrop style mailfilter rules.  Eventually this code can be even better
modularized (perhaps a class structure), and new modules written for
procmail and other server-side filters.

* Local user support-- support is provided through an FTP interface, and thus
  php must be compiled with ftp enabled.

* Virtual user support-- support is provided through use of sql database, and
  requires that the uid.gid of all virtual users is the same as your web server
  process user (i.e. apache or httpd).  This could be changed to another existing
  user and then modify the maildrop.php code to allow ftp's to each virtual user's
  location-- not currently implemented.

USER SIDE FILTERING NOTES

IMPORTANT: I've noticed at least one version of PHP that has bugs in the
checkdnsrr() function that the SPAM filtering code RELIES ON.  In my case,
the PHP server that comes with Mandrake 8.1 has this problem -- checkdnsrr()
NEVER finds the inaddr records, even the ones that really exist. (sigh)

NOTE!!! As of the time of this writing, there is a bug in sqimap_read_data()
in functions/imap_general.php.  I rewrote it (see sqimap_read_data.php) so
if the SPAM filters aren't filtering, make a backup copy of
functions/imap_general.php, remove the sqimap_read_data() function in there
and replace it with the contents of sqimap_read_data.php.  Hopefully, either
my replacement will be blessed by squirrelmail-devel or some other version
will come out soon.  Now back to your regularly scheduled README...  (grin)

This is a poor alternative to procmail or Elm's filter programs.  This is a
pathetic replacement for good RBL mail scanning when you get the mail.  This
is more for systems that can't/won't offer that kind of functionality and
you still require it.

This is slow.  Yep.  Slow.


To configure, you should just take a peek at setup.php and set
$SpamFilters_YourHop to some string if you want to avoid tons of false
hits on the RSS and DUL and ORBS databases.  It should also speed up the
scan somewhat.  

If you do not want to enable spam filters for all users, edit setup.php and
set the $AllowSpamFilters to false.  Spam filters can take TONS of time, so
if you don't want your users to complain and ask you tons of questions, this
is a quick and easy method.

If you use UW and if you encounter strange errors while using this plugin on 
your system, edit setup.php and set $UseSeparateImapConnection to true.  This
may not solve the problem.  One problem it might fix is if you run UW 2001
and if you don't see the number of unread messages in your left-hand folder
pane, or if you see timeouts or IMAP server error messages.  Turning on this
feature may slow down the filters a bit more since it has to open a new
connection.

Lastly, if there are some IPs that you want to refuse email from or some IPs
you want to accept email from REGARDLESS of what the DNS databases say, you
can put in overrides in the SpamFilters_DNScache[] array.  See the comments
in setup.php for more info on this.
