Thank you Tamsy for sharing with me your config file.
Initially, I thought I tried not to use managesieve and that's why I skipped that part there. But after seeing your config, I'd try to use managesieve. I would need to modify my dovecot config file first to incorporate the managesieve. And I also learnt that I need to put in my domain name. In this case, I would try this again next week as this server has not been made as a production server just yet. I thought if I could get all the things I need to work before the day of putting it online to the Internet. That would save me a lot of work.
Thank you once again
From: Tamsy <dovecot-list@mohtex.net> To: Dovecot Mailing List <dovecot@dovecot.org> Sent: Tuesday, 17 April 2012 5:00 PM Subject: Re: [Dovecot] vacation plugins for squirrelmail
Seems not to be attached to my former mail. Here it comes again, inline:
avelsieve config.php
############################### <?php /**
- User-friendly interface to SIEVE server-side mail filtering.
- Plugin for Squirrelmail 1.4+
- Licensed under the GNU GPL. For full terms see the file COPYING that came
- with the Squirrelmail distribution.
- This file contains configuration parameters for SIEVE mail filters plugin
- (aka avelsieve)
- @version $Id$
- @author Alexandros Vellis <avel@users.sourceforge.net>
- @copyright 2002-2004 Alexandros Vellis
- @package plugins
- @subpackage avelsieve */
/**
- Debug Mode. Enable this (change to 1) if you need to send a bug report,
- or to 2 or 3 if you are a developer!
- Valid values:
- 0 = No debugging output
- 1 = Normal debugging output
- 2 = Firebug-enhanced debugging output
- 3 = Enhanced debugging output and no Sieve capabilities checks - enables * all UI features! */ if(!defined('AVELSIEVE_DEBUG')) { define('AVELSIEVE_DEBUG', 1); }
/* ======================================================================== */ /* =================== IMAP Server / SIEVE Setup ========================= */ /* ======================================================================== */
/** @var string Backend to use. Available backends are:
- 'ManageSieve': Uses the ManageSieve protocol. e.g. Cyrus
- 'File': Writes files straight to disk. e.g. Exim4, Dovecot LDA. */ global $avelsieve_backend; $avelsieve_backend = 'ManageSieve';
/* ======================================================================== */ /* =================== ManageSieve Backend Options ======================== */ /* ======================================================================== */
/* Port where ManageSieve servers (e.g. Cyrus IMAP's timsieved) listens to.
- Default is 2000. Note that another possible port that your server might
- listen to, is 4190, which is now the official (IANA-assigned) port for
- Sieve. */
global $sieveport; $sieveport = 4190;
/**
- @var string Space separated list of preferred SASL mechanisms for the
- authentication to ManageSieve server. e.g. "PLAIN DIGEST-MD5";*/
global $sieve_preferred_sasl_mech; $sieve_preferred_sasl_mech = 'PLAIN';
/**
- @var boolean Disable STARTTLS for ManageSieve. You can set this to true,
- if you do not wish to use encryption via TLS mechanisms (i.e. the server
- is not configured properly, or this is a local connection and TLS is not
- needed.
- Note that STARTTLS is supported only in PHP5+. In PHP4 this option will
- have no effect and STARTTLS will be disabled anyway. */ global $avelsieve_disabletls; $avelsieve_disabletls = false;
/* ======================================================================== */ /* ======================= File Backend Options =========================== */ /* ======================================================================== */
global $avelsieve_file_backend_options, $data_dir, $username; $avelsieve_file_backend_options = array( 'avelsieve_default_file' => "$data_dir/$username.sievesource" );
/* ======================================================================== */ /* ====== Implementation- and Server-Specific Options ==================== */ /* ======================================================================== */
/* In Cyrus 2.3+, the notification action is a bit more complex than the
- others. The oldcyrus variable is for supporting the partially implemented
- notify extension implementation of Cyrus < 2.3. If you have Cyrus < 2.3,
- just set this to true.
- This only changes the informational / help text displayed in avelsieve.
- Cyrus < 2.3 : $from$, $env-from$, $subject$
- Cyrus 2.3+ : $from$, $env-from$, $subject$, $text$, $text[n]$ */ global $avelsieve_oldcyrus; $avelsieve_oldcyrus = true;
/* If you have Cyrus with an lmtpd that can understand the "auth" argument to
- the :envelope test as the SMTP/LMTP auth, or any other Sieve implementation,
- then you can enable this to provide this functionality to the user.
- This was not clarified in the base spec of RFC 3028. It will be done
- correctly in a new version of Cyrus, based on a new draft / spec. */ global $avelsieve_enable_envelope_auth; $avelsieve_enable_envelope_auth = true;
/* Some Implementations of Sieve need certain things in order to operate
- correctly. If you use any of the following server implementations, you MUST
- set this variable to the corresponding value for the filtering to work
- correctly.
- Valid values are:
- Any RFC3028-mostly-compatible implementation: '' (empty).
- Exim MTA: 'exim'
- MFL (as supported by mvmf): 'mfl' */ global $avelsieve_custom_sieve_implementation; $avelsieve_custom_sieve_implementation = '';
/* For delivery agents that don't know how to handle some mailbox prefixes, you
- can enable this option. Example for Dovecot LDA: 'INBOX.'; */ global $avelsieve_striproot; $avelsieve_striproot = 'INBOX.';
/* If the backend does not support capabilities reporting, such as the File
- Backend, then you should define which capabilities are used by the server
- implementation.
- The following are the capabilities supported by Exim4 as of Exim version
- 4.60, according to README.SIEVE. You can change them if a new version of
- Exim provides more functionality: * 'envelope', 'fileinto', 'copy', 'vacation', 'comparator-i;ascii-numeric'
- The following are the capabilities that are suported by MFM, according to:
- http://www.mvmf.org/mfl/language.shtml#sieve * 'envelope', 'fileinto', 'reject', 'relational', 'subaddress', 'regex', * 'editheader', 'copy', 'vacation', 'comparator-i;ascii-casemap', * 'comparator-i;octet'
- The following capabilities have been reported to work with Dovecot LDA: * 'envelope', 'fileinto', 'copy', 'vacation', 'comparator-i;ascii-numeric', * 'imapflags', 'subaddress','relational','regex'
- */ /* global $avelsieve_hardcoded_capabilities;
- $avelsieve_hardcoded_capabilities = array( * 'envelope', 'fileinto', 'copy', 'vacation', 'comparator-i;ascii-numeric'
- ); */
global $avelsieve_hardcoded_capabilities; $avelsieve_hardcoded_capabilities = array( 'fileinto', 'reject', 'envelope', 'encoded-character', 'vacation', 'subaddress', 'comparator-i;ascii-numeric', 'relational', 'regex', 'imap4flags', 'copy', 'include', 'variables', 'body', 'enotify', 'environment', 'mailbox', 'date' );
/** @var boolean Enable ImapProxy mode.
- If you use imapproxy, because imapproxy cannot understand and proxy the
- SIEVE protocol, you must connect to the SIEVE daemon (usually on the IMAP
- server) itself. So you need to set $imapproxymode to true, and define a
- mapping, from the imapproxy host (usually localhost) to your real IMAP
- server (usually the same that is defined on Imapproxy's configuration).
- This will not work if you use a perdition-style proxy, where different users
- go to different IMAP servers; it applies mostly to people running imapproxy
- for speed and want a quick hack. */
global $avelsieve_imapproxymode, $avelsieve_imapproxyserv; $avelsieve_imapproxymode = false; $avelsieve_imapproxyserv = array( 'localhost' => 'YOURDOMAINNAMEHERE.com' );
/** @var boolean Ldapuserdata mode: Gets user's email addresses (including
- mailAlternate & mailAuthorized) from LDAP Prefs Backend plugin's cache */
global $avelsieve_ldapuserdatamode; $avelsieve_ldapuserdatamode = false;
/** @var array Map of cyrus administrator users, for proxy authentication */
global $avelsieve_cyrusadmins_map; $avelsieve_cyrusadmins_map = array( 'cyrusimap' => 'cyrussieve' );
/* ======================================================================== */ /* =============== Avelsieve Interface / Behavior Setup ================== */ /* ======================================================================== */
/* Be conservative to our updates on the SIEVE server? If true, a button
- entitled "Save Changes" will appear, which will give the user the
- functionality to register her changes. 'false' is recommended. */ $conservative = false;
/* Use images for the move up / down, delete rule buttons and STOP? */
$useimages = true;
/* Translate the messages returned by the "Reject" and "Vacation" actions? The
- default behaviour since 0.9 is not to translate them. Change to true if in
- an intranet environment or in a same-language environment. */
global $translate_return_msgs; $translate_return_msgs = false;
/* Theme to use for the images. A directory with the same name must exist under
- plugins/avelsieve/$imagetheme, that contains the files: up.png, down.png,
- del.png, dup.png, edit.png, top.png, bottom.png. */
$imagetheme = 'famfamfam'; //$imagetheme = 'bluecurve_24x24'; //$imagetheme = 'bluecurve_16x16';
/* Number of items to display _initially_, when displaying the header match
- rule */ global $startitems; $startitems = 3;
/* Maximum number of items to allow in one header match rule. */ global $maxitems; $maxitems = 10;
/* Headers to display in listbox widget, when adding a new header rule. */
/* global $headers;
- $headers = array( * 'From', 'To', 'Cc', 'Bcc', 'Subject', 'Reply-To', 'Sender', 'List-Id', * 'MailingList', 'Mailing-List', 'X-ML-Name', 'X-List', 'X-List-Name', 'X-Mailing-List', * 'Resent-From', 'Resent-To', 'X-Mailer', 'X-Mailing-List', * 'X-Spam-Flag', 'X-Spam-Status', * 'X-Priority', 'Importance', 'X-MSMail-Priority', 'Precedence', * 'Return-Path', 'Received', 'Auto-Submitted', * 'X-Spam-Flag', 'X-Spam-Status','X-Spam-Tests' * ); */
global $headers; $headers = array( 'From', 'To', 'Cc', 'Bcc', 'Subject', 'Sender', 'Reply-To', 'List-Id', 'MailingList', 'Mailing-List', 'X-DKIM-Authentication-Results', 'X-ML-Name', 'X-List', 'X-List-Name', 'X-Mailing-List', 'Resent-From', 'Resent-To', 'X-Mailer', 'X-Mailing-List', 'X-SpamTest-Status-Extended', 'X-Priority', 'Importance', 'X-MSMail-Priority', 'Precedence', 'Return-Path', 'Received', 'Auto-Submitted', );
/* Available :method's for the :notify extension (if applicable) */ global $notifymethods; $notifymethods = array( 'mailto', 'sms' ); /* use the value "false" if you want to provide a simple input box so that
- users can edit the method themselves : */ //$notifymethods = false;
/* Capabilities to disable. If you would like to force avelsieve not to display
- certain features, even though there _is_ a capability for them in Sieve
- server, you should specify these here. For instance, if you would
- like to disable the notify extension, even though ManageSieve advertises it,
- you should add 'notify' in this array: $force_disable_avelsieve_capability =
- array("notify");. This will still leave the defined feature on, and if the
- user can upload her own scripts then she can use that feature; this option
- just disables the GUI of it. Leave as-is (empty array) if you do not need
- that.
- Look in $implemented_capabilities array in include/constants.inc.php for
- valid values */
// $disable_avelsieve_capabilities = array("notify"); global $disable_avelsieve_capabilities; $disable_avelsieve_capabilities = array();
/* Display Filters link in the top Squirrelmail header? */
global $avelsieveheaderlink; $avelsieveheaderlink = true;
/* Default rules table display mode, one of 'verbose' or 'terse' */ global $avelsieve_default_mode; $avelsieve_default_mode = 'terse';
/* ======================================================================== */ /* ========================= Custom rules Configuration =================== */ /* ======================================================================== */
/**
- @var array
- List of additional rules to enable. This must be the numeric id of the
- rule.
- 10: Spam Rule (as existed in Avelsieve)
- 11: Junk-Mail Rule (new-style SPAM Rule, only one exists per Sieve script)
- 12: Global Whitelist (only one exists per Sieve script)
- 13: Custom Sieve Code (allows users to enter whatever Sieve code they like - * Alpha/Experimental)
- Example:
- array(11, 12); */ global $avelsieve_enable_rules; $avelsieve_enable_rules = array();
global $avelsieve_rules_settings; $avelsieve_rules_settings = array(); foreach($avelsieve_enable_rules as $r) { if(file_exists(SM_PATH . 'plugins/avelsieve/config/rule.'.$r.'.php')) { require(SM_PATH . 'plugins/avelsieve/config/rule.'.$r.'.php'); } else { require(SM_PATH . 'plugins/avelsieve/config/rule.'.$r.'.default.php'); } }
/* Please keep the following setting false; it is alpha + needs Squirrelmail
- to be patched in three or four places. */
$avelsieve_spam_highlight_enable = false; ###############################
Hi Daminto,
That looks pretty much unconfigured. No wonder nothing is coming up.
I have attached the avelsieve config file we are using on one of our domains. Don't copy it blindly. At least you should configure $sieveport to the port you are using on your server for Sieve. And put your domain name where it reads YOURDOMAINNAMEHERE.com. For the arrays at $headers you should tune the filters you are using with your headers.
Hope this helps (working fine with our domain and Squirrel-Mail).
Rgds Tamsy
Daminto Lie wrote the following on 17.04.2012 13:14:
Thank you for your reply.
Here it is as follows
if(!defined('AVELSIEVE_DEBUG')) { define('AVELSIEVE_DEBUG', 0); }
global $avelsieve_backend; $avelsieve_backend = 'File';
/*global $sieveport; $sieveport = 2000;*/
global $sieve_preferred_sasl_mech; $sieve_preferred_sasl_mech = 'PLAIN';
global $avelsieve_disabletls; $avelsieve_disabletls = false;
global $avelsieve_file_backend_options, $data_dir, $username; $avelsieve_file_backend_options = array( 'avelsieve_default_file' => "$data_dir/$username.sievesource" );
/*global $avelsieve_oldcyrus; $avelsieve_oldcyrus = true;*/
global $avelsieve_enable_envelope_auth; $avelsieve_enable_envelope_auth = true;
global $avelsieve_custom_sieve_implementation; $avelsieve_custom_sieve_implementation = '';
global $avelsieve_striproot; $avelsieve_striproot = '';
global $avelsieve_hardcoded_capabilities; $avelsieve_hardcoded_capabilities = array( 'envelope', 'fileinto', 'copy', 'vacation', 'comparator-i;ascii-numeric' );
/*global $avelsieve_imapproxymode, $avelsieve_imapproxyserv; $avelsieve_imapproxymode = false; $avelsieve_imapproxyserv = array( 'localhost' => 'imap.example.org' );*/
global $avelsieve_ldapuserdatamode; $avelsieve_ldapuserdatamode = false;
/*global $avelsieve_cyrusadmins_map; $avelsieve_cyrusadmins_map = array( 'cyrusimap' => 'cyrussieve' );*/
$conservative = false;
$useimages = true;
global $translate_return_msgs; $translate_return_msgs = false;
$imagetheme = 'famfamfam'; //$imagetheme = 'bluecurve_24x24'; //$imagetheme = 'bluecurve_16x16';
global $startitems; $startitems = 3;
global $maxitems; $maxitems = 10;
global $headers; $headers = array( 'From', 'To', 'Cc', 'Bcc', 'Subject', 'Reply-To', 'Sender', 'List-Id', 'MailingList', 'Mailing-List', 'X-ML-Name', 'X-List', 'X-List-Name', 'X-Mailing-List', 'Resent-From', 'Resent-To', 'X-Mailer', 'X-Mailing-List', 'X-Spam-Flag', 'X-Spam-Status', 'X-Priority', 'Importance', 'X-MSMail-Priority', 'Precedence', 'Return-Path', 'Received', 'Auto-Submitted', 'X-Spam-Flag', 'X-Spam-Status','X-Spam-Tests' );
global $notifymethods; $notifymethods = array( 'mailto', 'sms' );
//$notifymethods = false;
// $disable_avelsieve_capabilities = array("notify"); global $disable_avelsieve_capabilities; $disable_avelsieve_capabilities = array();
global $avelsieveheaderlink; $avelsieveheaderlink = true;
global $avelsieve_default_mode; $avelsieve_default_mode = 'terse';
global $avelsieve_enable_rules; $avelsieve_enable_rules = array();
global $avelsieve_rules_settings; $avelsieve_rules_settings = array(); foreach($avelsieve_enable_rules as $r) { if(file_exists(SM_PATH . 'plugins/avelsieve/config/rule.'.$r.'.php')) { require(SM_PATH . 'plugins/avelsieve/config/rule.'.$r.'.php'); } else { require(SM_PATH . 'plugins/avelsieve/config/rule.'.$r.'.default.php'); } }
$avelsieve_spam_highlight_enable = false;
Hope this help you to help me.
Thank you
From: Tamsy<dovecot-list@mohtex.net> To: "dovecot@dovecot.org"<dovecot@dovecot.org> Sent: Tuesday, 17 April 2012 1:25 PM Subject: Re: [Dovecot] vacation plugins for squirrelmail
Show us your avelsieve-config in your-squirrelmail-dir/plugins/avelsieve/config/config.php
Daminto Lie wrote the following on 17.04.2012 09:31:
Thank you folks for your replies.
I realised that the dovecot 1.2.9 that I installed via ubuntu synaptic package manager has already come with sieve plugins. After making some modifications on the dovecot.conf file, I went to download and install avelsieve 1.0.1 (stable version) onto the squirrelmail. Then, I run in squirrelmail conf.pl and added the plugin. I logged in and could see "Filter" option right on the top header row. I went to click it and nothing came up. I checked in the mail.log but did not see any errors there.
Here is my snapshot of dovecot configuration # 1.2.9: /etc/dovecot/dovecot.conf # OS: Linux 2.6.32-40-generic-pae i686 Ubuntu 10.04.4 LTS ext4 log_timestamp: %Y-%m-%d %H:%M:%S protocols: imap listen: *:143 ssl: no disable_plaintext_auth: no login_dir: /var/run/dovecot/login login_executable: /usr/lib/dovecot/imap-login verbose_proctitle: yes first_valid_uid: 1001 last_valid_uid: 600 mail_privileged_group: mail mail_location: maildir:/var/vmail/%u/Maildir mbox_write_locks: fcntl dotlock imap_client_workarounds: outlook-idle delay-newmail netscape-eoh tb-extra-mailbox-sep lda: postmaster_address: postmaster@ourcompany.com mail_plugins: sieve quota_full_tempfail: yes deliver_log_format: msgid=%m: %$ sendmail_path: /usr/lib/sendmail rejection_reason: Your message to<%t> was automatically rejected:%n%r auth_socket_path: /var/run/dovecot-auth-master auth default: mechanisms: plain login username_format: %Lu verbose: yes debug: yes debug_passwords: yes passdb: driver: pam passdb: driver: ldap args: /etc/dovecot/dovecot-ldap.conf userdb: driver: passwd userdb: driver: static args: uid=1001 gid=1001 home=/var/vmail/%u allow_all_users=yes socket: type: listen client: path: /var/spool/postfix/private/auth mode: 432 user: postfix group: mail master: path: /var/run/dovecot-auth-master mode: 432 user: vmail group: vmail plugin: sieve: /var/vmail/%u/.sieve
Also, I have restarted dovecot after making changes to the dovecot.conf.
Any help would be very much appreciated.
Thank you
From: Artur Zaprzała<artur.zaprzala@talex.pl> To: Dovecot Mailing List<dovecot@dovecot.org> Cc: Daminto Lie<dlie76@yahoo.com.au> Sent: Thursday, 12 April 2012 11:46 PM Subject: Re: [Dovecot] vacation plugins for squirrelmail
Daminto Lie wrote:
Hi,
I am afraid I have a question to ask of you all. I have just completed setting up a mail server running on Ubuntu Server 10.04. It has postfix, dovecot 1.2.19, LDAP and squirrelmail as the webmail. I have also created virtual users accounts on the system through LDAP. I can send and receive mails which is great. Now, what I am trying to do is to set up a vacation auto-reply on the squirrelmail so that users who are about to go on vacation can set it up themselves. I was looking around for the vacation plugins for dovecot that I can incorporate it into squirrelmail. Any help would be very much appreciated.
Thank you
I'm using Avelsieve 1.9.9 with a set of my own bugfixes: http://email.uoa.gr/avelsieve/