Filters Plugin
-This plugin filters your inbox into different folders based upon given criteria.
-It is most useful for people who are subscibed to mailing lists to help organize
-their messages. The argument stands that filtering is not the place of the
-client, which is why this has been made a plugin for SquirrelMail. You may be
-better off using products such as Sieve or Procmail to do your filtering so it
-happens even when SquirrelMail isn't running.
+ABOUT PLUGIN
+------------
+This plugin sorts messages in your inbox into different folders based upon
+given criteria. It is most useful for people who are subscribed to mailing
+lists to help organize their messages. The argument stands that filtering is
+not the place of the client, which is why this has been made a plugin for
+SquirrelMail. You may be better off using products such as Sieve, Maildrop or
+Procmail to do your filtering so it happens even when SquirrelMail isn't
+running.
IMPORTANT: At least one version of PHP has bugs in the checkdnsrr() function
that the SPAM filtering code RELIES ON. The PHP server that comes with Mandrake
8.1 has this problem -- checkdnsrr() NEVER finds the inaddr records, even the
ones that really exist.
-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.
+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, first you need to rename config.sample.php to config.php. You
-should then just take a peek at config.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 config.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.
+INSTALLATION
+------------
+Plugin is installed by enabling it in SquirrelMail configuration script.
+Plugin configuration can be changed with configuration files stored in
+config/filters_config.php or plugins/filters/config.php. Default configuration
+values can be found in plugins/filters/config_default.php. If both
+configuration files are present, plugin uses file from config directory.
+
+Main configuration option that must be changed is $SpamFilters_YourHop setting.
+See comments about it in config_default.php. If $SpamFilters_YourHop uses
+default value, plugin will be unable to use RBL filtering correctly and
+warning message will is displayed to end user. If you don't want to use RBL
+filtering, you can disable it by setting $AllowSpamFilters option to false. If
+you can control your incoming SMTP server, it is recommended to turn RBL
+filtering on server.
If you use UW and if you encounter strange errors while using this plugin on
-your system, edit config.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 config.php
-for more info on this.
+your system, edit configuration file 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
+config_default.php for more info on this.
* Seems to be related to UW
* @global bool $UseSeparateImapConnection
*/
-
-global $UseSeparateImapConnection;
$UseSeparateImapConnection = false;
/**
* spam filters
* @global bool $AllowSpamFilters
*/
-
-global $AllowSpamFilters;
$AllowSpamFilters = true;
/**
* the header (lots of false alarms here tho).
* @global string $SpamFilters_YourHop
*/
-
-global $SpamFilters_YourHop;
$SpamFilters_YourHop = ' ';
/**
* should set SpamFilters_ShowCommercial to false.
* @global bool $SpamFilters_ShowCommercial
*/
-
-global $SpamFilters_ShowCommercial;
$SpamFilters_ShowCommercial = false;
/**
- * SpamFiltring Cache
+ * SpamFiltering Cache
*
* A cache of IPs we've already checked or are known bad boys or good boys
* ie. $SpamFilters_DNScache["210.54.220.18"] = true;
* email coming from it would NOT be SPAM
* @global array $SpamFilters_DNScache
*/
-
-global $SpamFilters_DNScache;
+$SpamFilters_DNScache=array();
/**
* Path to bulkquery program
* in the bulkquery directory for more information on using bulkquery.
* @global string $SpamFilters_BulkQuery
*/
-
-global $SpamFilters_BulkQuery;
$SpamFilters_BulkQuery = '';
/**
* data directory.
* @global bool $SpamFilters_SharedCache
*/
-
-global $SpamFilters_SharedCache;
$SpamFilters_SharedCache = true;
/**
* How long should DNS query results be cached for by default (in seconds)?
* @global integer $SpamFilters_CacheTTL
*/
-
-global $SpamFilters_CacheTTL;
$SpamFilters_CacheTTL = 7200;
?>
\ No newline at end of file
* @subpackage filters
*/
-/** load config */
-if (file_exists(SM_PATH . 'plugins/filters/config.php'))
+/** @ignore */
+if (! defined('SM_PATH')) define('SM_PATH','../../');
+
+/** load globals */
+global $UseSeparateImapConnection,
+ $AllowSpamFilters, $SpamFilters_YourHop, $SpamFilters_ShowCommercial,
+ $SpamFilters_DNScache, $SpamFilters_BulkQuery, $SpamFilters_SharedCache,
+ $SpamFilters_CacheTTL;
+
+/** load default config */
+if (file_exists(SM_PATH . 'plugins/filters/config_default.php')) {
+ include_once (SM_PATH . 'plugins/filters/config_default.php');
+} else {
+ // default config was removed.
+ $UseSeparateImapConnection = false;
+ $AllowSpamFilters = true;
+ $SpamFilters_YourHop = ' ';
+ $SpamFilters_ShowCommercial = false;
+ $SpamFilters_DNScache = array();
+ $SpamFilters_BulkQuery = '';
+ $SpamFilters_SharedCache = true;
+ $SpamFilters_CacheTTL = 7200;
+}
+
+if (file_exists(SM_PATH . 'config/filters_config.php')) {
+ include_once (SM_PATH . 'config/filters_config.php');
+} elseif (file_exists(SM_PATH . 'plugins/filters/config.php')) {
include_once (SM_PATH . 'plugins/filters/config.php');
+}
/**
* Init Hooks
*/
function filters_init_hooks () {
global $squirrelmail_plugin_hooks;
- if (!file_exists(SM_PATH . 'plugins/filters/config.php')) return;
- if (sqgetGlobalVar('mailbox',$mailbox,SQ_FORM)) {
- sqgetGlobalVar('mailbox',$mailbox,SQ_FORM);
- } else {
+
+ if (! sqgetGlobalVar('mailbox',$mailbox,SQ_FORM)) {
$mailbox = 'INBOX';
}
*/
function filters_optpage_register_block() {
global $optpage_blocks, $AllowSpamFilters;
- if (!file_exists(SM_PATH . 'plugins/filters/config.php')) return;
$optpage_blocks[] = array(
'name' => _("Message Filters"),
global $imapServerAddress, $imapPort, $imap_stream, $imapConnection,
$UseSeparateImapConnection, $AllowSpamFilters;
- if (!file_exists(SM_PATH . 'plugins/filters/config.php')) return;
-
sqgetGlobalVar('username', $username, SQ_SESSION);
sqgetGlobalVar('key', $key, SQ_COOKIE);
*/
function update_for_folder ($args) {
- if (!file_exists(SM_PATH . 'plugins/filters/config.php')) return;
-
$old_folder = $args[0];
$new_folder = $args[2];
$action = $args[1];
/* SquirrelMail required files. */
require_once(SM_PATH . 'include/validate.php');
-require_once(SM_PATH . 'functions/imap.php');
-require_once(SM_PATH . 'plugins/filters/filters.php');
-
-if (!file_exists(SM_PATH . 'plugins/filters/config.php')) return;
-include_once (SM_PATH . 'plugins/filters/config.php');
-
-global $AllowSpamFilters;
+include_once(SM_PATH . 'functions/imap.php');
+include_once(SM_PATH . 'plugins/filters/filters.php');
displayPageHeader($color, 'None');
/* SquirrelMail required files. */
require_once(SM_PATH . 'include/validate.php');
-require_once(SM_PATH . 'functions/page_header.php');
-require_once(SM_PATH . 'functions/imap.php');
-require_once(SM_PATH . 'include/load_prefs.php');
-require_once(SM_PATH . 'functions/html.php');
-require_once(SM_PATH . 'plugins/filters/filters.php');
-global $AllowSpamFilters;
+include_once(SM_PATH . 'functions/imap.php');
+include_once(SM_PATH . 'plugins/filters/filters.php');
/* get globals */
sqgetGlobalVar('username', $username, SQ_SESSION);