initial commit of file from CVS for e-smith-ingo on Wed 12 Jul 08:57:44 BST 2023

This commit is contained in:
Brian Read
2023-07-12 08:57:44 +01:00
parent a4bbd1a04a
commit cd0a45b0f2
39 changed files with 1378 additions and 2 deletions

View File

@@ -0,0 +1,5 @@
{
my $IngoMenu = $ingo{MenuArray} || "enabled"; return "" unless ($IngoMenu eq "enabled");
$apps{ingo} = 1;
$OUT = '';
}

View File

@@ -0,0 +1,10 @@
// 130AppRegistryIngo
$this->applications['ingo'] = array(
'fileroot' => dirname(__FILE__) . '/../ingo',
'webroot' => $this->applications['horde']['webroot'] . '/ingo',
'name' => _("Filters"),
'status' => 'active',
'provides' => array('filter', 'mail/blacklistFrom', 'mail/showBlacklist', 'mail/whitelistFrom', 'mail/showWhitelist', 'mail/applyFilters', 'mail/canApplyFilters', 'mail/showFilters'),
'menu_parent' => 'imp'
);

View File

@@ -0,0 +1,43 @@
//100header
/**
* $Horde: ingo/config/backends.php.dist,v 1.20.8.14 2009/12/21 18:29:08 jan Exp $
*
* Ingo works purely on a preferred mechanism for server selection. There are
* a number of properties that you can set for each backend:
*
* driver: The Ingo_Driver driver to use to store the script on the
* backend server. Valid options:
* 'null' -- No backend server
* 'timsieved' -- Cyrus timsieved server
* 'vfs' -- Use Horde VFS
* 'ldap' -- LDAP server
*
* preferred: This is the field that is used to choose which server is
* used. The value for this field may be a single string or an
* array of strings containing the hostnames to use with this
* server.
*
* hordeauth: Ingo uses the current logged in username and password. If
* you want the full username@realm to be used to connect then
* set this to 'full' otherwise set this to true and just the
* username will be used to connect to the driver.
*
* params: An array containing any additional information that the
* Ingo_Driver class needs.
*
* script: The type of Ingo_Script driver this server uses.
* Valid options:
* 'imap' -- IMAP client side filtering
* 'maildrop' -- Maildrop scripts
* 'procmail' -- Procmail scripts
* 'sieve' -- Sieve scripts
*
* scriptparams: An array containing any additional information that the
* Ingo_Script driver needs.
*
* shares: Some drivers support sharing filter rules with other users.
* Users can then configure filters for each other if they
* give them permissions to do so. If you want to enable this
* feature, you need to set this parameter to true.
*/

View File

@@ -0,0 +1,12 @@
//120imap
/* IMAP Example */
$backends['imap'] = array(
'driver' => 'null',
'preferred' => 'mail.{ $DomainName }',
'hordeauth' => true,
'params' => array(),
'script' => 'imap',
'scriptparams' => array(),
'shares' => false
);

View File

@@ -0,0 +1,59 @@
//130maildrop
//* Maildrop Example */
//$backends['maildrop'] = array(
// 'driver' => 'vfs',
// 'preferred' => 'example.com',
// 'hordeauth' => true,
// 'params' => array(
// // Hostname of the VFS server
// 'hostspec' => 'ftp.example.com',
// // Name of the maildrop config file to write
// 'filename' => '.mailfilter',
// // The VFS username to use, defaults to current user. If you want to
// // use a different user, you also need to disable 'hordeauth' above.
// // 'username' => 'user',
// // The VFS password to use, defaults to current user's password
// // 'password' => 'secret',
// // The path to the .mailfilter filter file, defaults to the filters'
// // owner's home directory.
// // You can use the following variables:
// // %u = name of the filters' owner
// // %d = domain name of the filters' owner
// // %U = the 'username' from above
// // Example:
// // '/data/maildrop/filters/%d/%u'
// // This would be translated into:
// // '/data/maildrop/filters/<filter_owners_domainname>/<filter_owners_username>/.mailfilter'
// // 'vfs_path' => '/path/to/maildrop',
//
// // VFS: FTP example
// // The VFS driver to use
// 'vfstype' => 'ftp',
// // Port of the VFS server
// 'port' => 21,
// // Specify permissions for uploaded files if necessary:
// // 'file_perms' => '0640',
//
// // VFS: SSH2 example
// // The VFS driver to use
// // 'vfstype' => 'ssh2',
// // Port of the VFS server
// // 'port' => 22,
// ),
// 'script' => 'maildrop',
// 'scriptparams' => array(
// // What path style does the IMAP server use ['mbox'|'maildir']?
// 'path_style' => 'mbox',
// // Strip 'INBOX.' from the beginning of folder names in generated
// // scripts?
// 'strip_inbox' => false,
// // An array of variables to append to every generated script.
// // Use if you need to set up specific environment variables.
// 'variables' => array(
// // Example for the $PATH variable
// // 'PATH' => '/usr/bin'
// )
// ),
// 'shares' => false
//);

View File

@@ -0,0 +1,74 @@
//140procmail
///* Procmail Example */
//$backends['procmail'] = array(
// 'driver' => 'vfs',
// 'preferred' => 'example.com',
// 'hordeauth' => true,
// 'params' => array(
// // Hostname of the VFS server
// 'hostspec' => 'ftp.example.com',
// // Name of the procmail config file to write
// 'filename' => '.procmailrc',
// // The VFS username to use, defaults to current user. If you want to
// // use a different user, you also need to disable 'hordeauth' above.
// // 'username' => 'user',
// // The VFS password to use, defaults to current user's password
// // 'password' => 'secret',
// // The path to the .procmailrc filter file, defaults to the filters'
// // owner's home directory.
// // You can use the following variables:
// // %u = name of the filters' owner
// // %U = the 'username' from above
// // Example:
// // '/data/procmail/filters/%u'
// // This would be translated into:
// // '/data/procmail/filters/<filter_owners_username>/.procmailrc'
// // 'vfs_path' => '/path/to/procmail',
//
// // If procmail needs an external command for mail delivery, you
// // can specify it below. You can also set a prefix for the mailbox name
// // eg. for /usr/local/sbin/dmail +INBOX
// // 'delivery_agent' => '/usr/local/sbin/dmail',
// // 'delivery_mailbox_prefix' => '+',
//
// // If you need procmail to be called from .forward in the user's home
// // directory, set the file and the content below:
// // 'forward_file' => '.forward',
// // 'forward_string' => '"|/usr/local/bin/procmail"',
//
// // if the GNU utilities cannot be found in the path
// // or have different names, you can specify their location below
// // 'date' => '/opt/csw/bin/gdate',
// // 'echo' => '/opt/csw/bin/gecho',
// // 'ls' => '/opt/csw/bin/gls',
// // VFS: FTP example
// // The VFS driver to use
// 'vfstype' => 'ftp',
// // Port of the VFS server
// 'port' => 21,
//
// // VFS: SSH2 example
// // The VFS driver to use
// // 'vfstype' => 'ssh2',
// // Port of the VFS server
// // 'port' => 22,
// ),
// 'script' => 'procmail',
// 'scriptparams' => array(
// // What path style does the IMAP server use ['mbox'|'maildir']?
// 'path_style' => 'mbox',
// // An array of variables to append to every generated script.
// // Use if you need to set up specific environment variables.
// 'variables' => array(
// // Example for the $PATH variable
// // 'PATH' => '/usr/bin',
// // Example for the $DEFAULT variable
// // 'DEFAULT' => '$HOME/Maildir',
// // Example for the $VACATION_DIR variable (used to store vacation files)
// // 'VACATION_DIR' => '$HOME',
// )
// ),
// 'shares' => false
//);

View File

@@ -0,0 +1,37 @@
//160sieve
///* Sieve Example */
//$backends['sieve'] = array(
// 'driver' => 'timsieved',
// 'preferred' => 'example.com',
// 'hordeauth' => true,
// 'params' => array(
// // Hostname of the timsieved server
// 'hostspec' => 'mail.example.com',
// // Login type of the server
// 'logintype' => 'PLAIN',
// // Enable/disable TLS encryption
// 'usetls' => true,
// // Port number of the timsieved server
// 'port' => 2000,
// // Name of the sieve script
// 'scriptname' => 'ingo',
// // The following settings can be used to specify an administration
// // user to update all users' scripts. If you want to use an admin
// // user, you also need to disable 'hordeauth' above. You have to use
// // an admin user if you want to use shared rules.
// // 'username' => 'cyrus',
// // 'password' => '*****',
// // Enable debugging. With Net_Sieve 1.2.0 or later, the sieve protocol
// // communication is logged with the DEBUG level. Earlier versions
// // print the log to the screen.
// 'debug' => false,
// ),
// 'script' => 'sieve',
// 'scriptparams' => array(
// // If using Dovecot or any other Sieve implementation that requires
// // folder names to be UTF-8 encoded, set this parameter to true.
// 'utf8' => false,
// ),
// 'shares' => false
//);

View File

@@ -0,0 +1,28 @@
//165sivtest
///* sivtest Example */
//$backends['sivtest'] = array(
// 'driver' => 'sivtest',
// 'preferred' => 'example.com',
// 'hordeauth' => true,
// 'params' => array(
// // Hostname of the timsieved server
// 'hostspec' => 'mail.example.com',
// // Login type of the server
// 'logintype' => 'GSSAPI',
// // Enable/disable TLS encryption
// 'usetls' => true,
// // Port number of the timsieved server
// 'port' => 2000,
// // Name of the sieve script
// 'scriptname' => 'ingo',
// // Location of sivtest
// 'command' => '/usr/bin/sivtest',
// // name of the socket we're using
// 'socket' => Horde::getTempDir() . '/sivtest.'
// . md5(uniqid(rand())) . '.sock',
// ),
// 'script' => 'sieve',
// 'scriptparams' => array(),
// 'shares' => false,
//);

View File

@@ -0,0 +1,61 @@
//170ldapsieve
///* Sun ONE/JES Example (LDAP/Sieve) */
//$backends['ldapsieve'] = array(
// 'driver' => 'ldap',
// 'preferred' => 'example.com',
// 'hordeauth' => false,
// 'params' => array(
// //
// // Hostname of the ldap server
// //
// 'hostspec' => 'ldap.example.com',
// //
// // Port number of the timsieved server
// //
// 'port' => 389,
// //
// // LDAP Protocol Version (default = 2). 3 is required for TLS.
// //
// 'version' => 3,
// //
// // Whether or not to use TLS. If using TLS, you MUST configure
// // OpenLDAP (either /etc/ldap.conf or /etc/ldap/ldap.conf) with the CA
// // certificate which signed the certificate of the server to which you
// // are connecting. e.g.:
// //
// // TLS_CACERT /usr/share/ca-certificates/mozilla/Equifax_Secure_CA.crt
// //
// // You MAY have problems if you are using TLS and your server is
// // configured to make random referrals, since some OpenLDAP libraries
// // appear to check the certificate against the original domain name,
// // and not the referred-to domain. This can be worked around by
// // putting the following directive in the ldap.conf:
// //
// // TLS_REQCERT never
// //
// 'tls' => true,
// //
// // Bind DN (for bind and script distinguished names, %u is replaced
// // with username, and %d is replaced with the internet domain
// // components (e.g. "dc=example, dc=com") if available).
// //
// 'bind_dn' => 'cn=ingo, ou=applications, dc=example, dc=com',
// //
// // Bind password. If not provided, user's password is used (useful
// // when bind_dn contains %u).
// //
// 'bind_password' => 'secret',
// //
// // How to find user object.
// //
// 'script_base' => 'ou=People, dc=example, dc=com',
// 'script_filter' => '(uid=%u)',
// //
// // Attribute script is stored in. Will not touch non-Ingo scripts.
// //
// 'script_attribute' => 'mailSieveRuleSource'
// ),
// 'script' => 'sieve',
// 'scriptparams' => array()
//);

View File

@@ -0,0 +1,28 @@
//180kolabsieve
///* Kolab Example (using Sieve) */
//if ($GLOBALS['conf']['kolab']['enabled']) \{
// require_once 'Horde/Kolab.php';
//
// if (!is_callable('Kolab', 'getServer')) \{
// $server = $GLOBALS['conf']['kolab']['imap']['server'];
// \} else \{
// $server = Kolab::getServer('imap');
// \}
//
// $backends['kolab'] = array(
// 'driver' => 'timsieved',
// 'preferred' => '',
// 'hordeauth' => 'full',
// 'params' => array(
// 'hostspec' => $server,
// 'logintype' => 'PLAIN',
// 'usetls' => false,
// 'port' => $GLOBALS['conf']['kolab']['imap']['sieveport'],
// 'scriptname' => 'kmail-vacation.siv'
// ),
// 'script' => 'sieve',
// 'scriptparams' => array(),
// 'shares' => false
// );
//\}

View File

@@ -0,0 +1,4 @@
//100header
/* CONFIG START. DO NOT CHANGE ANYTHING IN OR AFTER THIS LINE. */
// $Horde: ingo/config/conf.xml,v 1.13.12.1 2007/12/20 14:05:46 jan Exp $

View File

@@ -0,0 +1,3 @@
//120menu
include '/home/httpd/html/horde/conf.menu.apps.php';

View File

@@ -0,0 +1,5 @@
//140storage
$conf['storage']['driver'] = 'prefs';
$conf['storage']['maxblacklist'] = 0;
$conf['storage']['maxwhitelist'] = 0;

View File

@@ -0,0 +1,4 @@
//160rules
$conf['rules']['userheader'] = true;
$conf['rules']['usefolderapi'] = true;

View File

@@ -0,0 +1,4 @@
//180hooks
$conf['hooks']['vacation_addresses'] = false;
$conf['hooks']['vacation_only'] = true;

View File

@@ -0,0 +1,3 @@
//800footer
/* CONFIG END. DO NOT CHANGE ANYTHING IN OR BEFORE THIS LINE. */

View File

@@ -0,0 +1,7 @@
//100header
/**
* $Horde: ingo/config/prefs.php.dist,v 1.30.10.4 2010-07-06 09:49:33 jan Exp $
*
* See horde/config/prefs.php for documentation on the structure of this file.
*/

View File

@@ -0,0 +1,4 @@
//120storage
// Make sure that INGO_STORAGE_* constants are defined.
require_once dirname(__FILE__) . '/../lib/Storage.php';

View File

@@ -0,0 +1,12 @@
//140ingoscript
// This preference group will only be displayed if the configured
// Ingo_Script:: driver can create script files.
if (!isset($_SESSION['ingo']['script_generate']) ||
$_SESSION['ingo']['script_generate']) \{
$prefGroups['script'] = array(
'column' => _("Other Options"),
'label' => _("Script Updating"),
'desc' => _("Options about script updating."),
'members' => array('auto_update'));
\}

View File

@@ -0,0 +1,15 @@
//160hordescript
// The following preferences are only used for Horde_Script:: drivers that use
// scripts.
// Automatically update the script?
$_prefs['auto_update'] = array(
'value' => 1,
'locked' => false,
'shared' => false,
'type' => 'checkbox',
'desc' => _("Automatically activate the script after each change?")
);
// End script preferences

View File

@@ -0,0 +1,24 @@
//180filtering
// The following preferences are only used for Horde_Script:: drivers that can
// do on-demand filtering.
// Show detailed filter status messages?
// a value of 0 = no, 1 = yes
$_prefs['show_filter_msg'] = array(
'value' => 1,
'locked' => false,
'shared' => false,
'type' => 'implicit'
);
// Only filter [un]seen messages?
// Values: 0, INGO_SCRIPT_FILTER_UNSEEN, INGO_SCRIPT_FILTER_SEEN
$_prefs['filter_seen'] = array(
'value' => 0,
'locked' => false,
'shared' => false,
'type' => 'implicit'
);
// End on-demand filtering preferences

View File

@@ -0,0 +1,57 @@
//200prefs
// If NOT using the 'prefs' storage driver (see conf.php), you can comment out
// the below entries.
// Filter rules.
$_prefs['rules'] = array(
'value' => 'a:5:\{i:0;a:2:\{s:4:"name";s:9:"Whitelist";s:6:"action";i:' . INGO_STORAGE_ACTION_WHITELIST . ';\}i:1;a:3:\{s:4:"name";;s:8:"Vacation";s:6:"action";i:' . INGO_STORAGE_ACTION_VACATION . ';s:7:"disable";b:1;\}i:2;a:2:\{s:4:"name";s:9:"Blacklist";s:6:"action";i:' . INGO_STORAGE_ACTION_BLACKLIST . ';\}i:3;a:2:\{s:4:"name";s:7:"Forward";s:6:"action";i:' . INGO_STORAGE_ACTION_FORWARD . ';\}\}',
'locked' => false,
'shared' => false,
'type' => 'implicit'
);
// Blacklist.
// Lock this preference to disable blacklists.
$_prefs['blacklist'] = array(
'value' => 'a:2:\{s:1:"a";a:0:\{\}s:1:"f";s:0:"";\}',
'locked' => false,
'shared' => false,
'type' => 'implicit'
);
// Whitelist.
// Lock this preference to disable whitelists.
$_prefs['whitelist'] = array(
'value' => 'a:0:\{\}',
'locked' => false,
'shared' => false,
'type' => 'implicit'
);
// Vacation notices.
// Lock this preference to disable vacation notices.
$_prefs['vacation'] = array(
'value' => 'a:8:\{s:9:"addresses";a:0:\{\}s:4:"days";i:7;s:8:"excludes";a:0:\{\}s:10:"ignorelist";b:1;s:6:"reason";s:0:"";s:7:"subject";s:0:"";\}',
'locked' => false,
'shared' => false,
'type' => 'implicit'
);
// Forwarding.
// Lock this preference to disable forwarding.
$_prefs['forward'] = array(
'value' => 'a:2:\{s:1:"a";a:0:\{\}s:1:"k";i:0;\}',
'locked' => false,
'shared' => false,
'type' => 'implicit'
);
// Spam rule.
// Lock this preference to disable the spam rule.
$_prefs['spam'] = array(
'value' => 'a:2:\{s:6:"folder";N;s:5:"level";i:5;\}',
'locked' => false,
'shared' => false,
'type' => 'implicit'
);