Source for file setup.php

Documentation is available at setup.php

  1. <?php
  2. /**
  3.  * Message and Spam Filter Plugin - Setup script
  4.  *
  5.  * This plugin filters your inbox into different folders based upon given
  6.  * criteria.  It is most useful for people who are subscibed to mailing lists
  7.  * to help organize their messages.  The argument stands that filtering is
  8.  * not the place of the client, which is why this has been made a plugin for
  9.  * SquirrelMail.  You may be better off using products such as Sieve or
  10.  * Procmail to do your filtering so it happens even when SquirrelMail isn't
  11.  * running.
  12.  *
  13.  * If you need help with this, or see improvements that can be made, please
  14.  * email me directly at the address above.  I definately welcome suggestions
  15.  * and comments.  This plugin, as is the case with all SquirrelMail plugins,
  16.  * is not directly supported by the developers.  Please come to me off the
  17.  * mailing list if you have trouble with it.
  18.  *
  19.  * Also view plugins/README.plugins for more information.
  20.  *
  21.  * @version $Id: setup.php 14840 2020-01-07 07:42:38Z pdontthink $
  22.  * @copyright (c) 1999-2020 The SquirrelMail Project Team
  23.  * @license http://opensource.org/licenses/gpl-license.php GNU Public License
  24.  * @package plugins
  25.  * @subpackage filters
  26.  */
  27.  
  28. /** SquirrelMail required files. */
  29. require_once(SM_PATH 'plugins/filters/filters.php');
  30.  
  31. /**
  32.  * Imap connection control
  33.  *
  34.  * Set this to true if you have problems -- check the README file
  35.  * Note:  This doesn't work all of the time (No idea why)
  36.  *        Seems to be related to UW
  37.  * @global bool $UseSeparateImapConnection 
  38.  */
  39. global $UseSeparateImapConnection;
  40. $UseSeparateImapConnection false;
  41.  
  42. /**
  43.  * User level spam filters control
  44.  *
  45.  * Set this to false if you do not want the user to be able to enable
  46.  * spam filters
  47.  * @global bool $AllowSpamFilters 
  48.  */
  49. global $AllowSpamFilters;
  50. $AllowSpamFilters true;
  51.  
  52. /**
  53.  * SpamFilters YourHop Setting
  54.  *
  55.  * Set this to a string containing something unique to the line in the
  56.  * header you want me to find IPs to scan the databases with.  For example,
  57.  * All the email coming IN from the internet to my site has a line in
  58.  * the header that looks like (all on one line):
  59.  * Received: [from usw-sf-list1.sourceforge.net (usw-sf-fw2.sourceforge.net
  60.  *    [216.136.171.252]) by firewall.persistence.com (SYSADMIN-antispam
  61.  *     0.2) with
  62.  * Since this line indicates the FIRST hop the email takes into my network,
  63.  * I set my SpamFilters_YourHop to 'by firewall.persistence.com' but any
  64.  * case-sensitive string will do.  You can set it to something found on
  65.  * every line in the header (like ' ') if you want to scan all IPs in
  66.  * the header (lots of false alarms here tho).
  67.  * @global string $SpamFilters_YourHop 
  68.  */
  69. global $SpamFilters_YourHop;
  70. $SpamFilters_YourHop ' ';
  71.  
  72. /**
  73.  * Commercial Spam Filters Control
  74.  *
  75.  * Some of the SPAM filters are COMMERCIAL and require a fee. If your users
  76.  * select them and you're not allowed to use them, it will make SPAM filtering
  77.  * very slow. If you don't want them to even be offered to the users, you
  78.  * should set SpamFilters_ShowCommercial to false.
  79.  * @global bool $SpamFilters_ShowCommercial 
  80.  */
  81. global $SpamFilters_ShowCommercial;
  82. $SpamFilters_ShowCommercial false;
  83.  
  84. /**
  85.  * SpamFiltring Cache
  86.  *
  87.  * A cache of IPs we've already checked or are known bad boys or good boys
  88.  * ie. $SpamFilters_DNScache["210.54.220.18"] = true;
  89.  * would tell filters to not even bother doing the DNS queries for that
  90.  * IP and any email coming from it are SPAM - false would mean that any
  91.  * email coming from it would NOT be SPAM
  92.  * @global array $SpamFilters_DNScache 
  93.  */
  94. global $SpamFilters_DNScache;
  95.  
  96. /**
  97.  * Path to bulkquery program
  98.  *
  99.  * Absolute path to the bulkquery program. Leave blank if you don't have
  100.  * bulkquery compiled, installed, and lwresd running. See the README file
  101.  * in the bulkquery directory for more information on using bulkquery.
  102.  * @global string $SpamFilters_BulkQuery 
  103.  */
  104. global $SpamFilters_BulkQuery;
  105. $SpamFilters_BulkQuery '';
  106.  
  107. /**
  108.  * Shared filtering cache control
  109.  *
  110.  * Do you want to use a shared file for the DNS cache or a session variable?
  111.  * Using a shared file means that every user can benefit from any queries
  112.  * made by other users. The shared file is named "dnscache" and is in the
  113.  * data directory.
  114.  * @global bool $SpamFilters_SharedCache 
  115.  */
  116. global $SpamFilters_SharedCache;
  117. $SpamFilters_SharedCache true;
  118.  
  119. /**
  120.  * DNS query TTL
  121.  *
  122.  * How long should DNS query results be cached for by default (in seconds)?
  123.  * @global integer $SpamFilters_CacheTTL 
  124.  */
  125. global $SpamFilters_CacheTTL;
  126. $SpamFilters_CacheTTL 7200;
  127.  
  128. /**
  129.  * Init plugin
  130.  * @access private
  131.  */
  132. function squirrelmail_plugin_init_filters({
  133.     global $squirrelmail_plugin_hooks;
  134.  
  135.     if (sqgetGlobalVar('mailbox',$mailbox,SQ_FORM)) {
  136.     sqgetGlobalVar('mailbox',$mailbox,SQ_FORM);
  137.     else {
  138.         $mailbox 'INBOX';
  139.     }
  140.  
  141.     $squirrelmail_plugin_hooks['left_main_before']['filters''start_filters';
  142.     if (isset($mailbox&& $mailbox == 'INBOX'{
  143.         $squirrelmail_plugin_hooks['right_main_after_header']['filters''start_filters';
  144.     }
  145.     $squirrelmail_plugin_hooks['optpage_register_block']['filters''filters_optpage_register_block';
  146.     $squirrelmail_plugin_hooks['special_mailbox']['filters''filters_special_mailbox';
  147.     $squirrelmail_plugin_hooks['rename_or_delete_folder']['filters''update_for_folder';
  148.     $squirrelmail_plugin_hooks['webmail_bottom']['filters''start_filters';
  149. }
  150.  
  151. /**
  152.  * Report spam folder as special mailbox
  153.  * @param string $mb variable used by hook
  154.  * @return string spam folder name
  155.  * @access private
  156.  */
  157. function filters_special_mailbox$mb {
  158.     global $data_dir$username;
  159.  
  160.     return$mb == getPref($data_dir$username'filters_spam_folder''na' ) );
  161.  
  162. }
  163.  
  164. /**
  165.  * Register option blocks
  166.  * @access private
  167.  */
  168. function filters_optpage_register_block({
  169.     global $optpage_blocks;
  170.     global $AllowSpamFilters;
  171.  
  172.     $optpage_blocks[array(
  173.         'name' => _("Message Filters"),
  174.         'url'  => '../plugins/filters/options.php',
  175.         'desc' => _("Filtering enables messages with different criteria to be automatically filtered into different folders for easier organization."),
  176.         'js'   => false
  177.     );
  178.  
  179.     if ($AllowSpamFilters{
  180.         $optpage_blocks[array(
  181.             'name' => _("SPAM Filters"),
  182.             'url'  => '../plugins/filters/spamoptions.php',
  183.             'desc' => _("SPAM filters allow you to select from various DNS based blacklists to detect junk email in your INBOX and move it to another folder (like Trash)."),
  184.             'js'   => false
  185.         );
  186.     }
  187. }
  188. ?>

Documentation generated on Mon, 13 Jan 2020 04:25:17 +0100 by phpDocumentor 1.4.3