Published by manu on May 17 2008

Pysieved on workaround mail (etch)

here are some notes about how to get some sieve filtering action while using the Workaround ISP style email system. basically i use the workaround tutorial (with one slight modification), add pysieved and use the best webmail ever (squirrelmail of course) with the avelsieve plugin.

Pysieved

* goto http://woozle.org/~neale/src/pysieved/ and get pysieved-HEAD.tar.gz (this tutorial was done with version 1.0)

* unpack the archive in /usr/local/ and copy the conf file to /usr/local/etc/

cd /usr/local cp /wherever/you/downloaded/pysieved-HEAD.tar.gz . tar xvf pysieved-HEAD.tar.gz cp /usr/local/pysieved/pysieved.ini /usr/local/etc/

* edit /usr/local/etc/pysieved.ini

alot of things need to be changed: so here is basically the entire file with only the necessary stuff (plus the bindaddr which can be useful).

/usr/local/etc/pysieved.ini: [main] # Authentication back-end to use auth = Dovecot # User DB back-end to use userdb = Dovecot # Storage back-end to use storage = Dovecot # Bind to what address? (Ignored with --stdin) #bindaddr = 127.0.0.1 # Listen on what port? (Ignored with --stdin) port = 2000 # Write a pidfile here pidfile = /var/run/pysieved.pid # What UID and GID should own all files? -1 to not bother uid = -1 gid = -1 # Switch user@host.name to host.name/user? hostdirs = False [Dovecot] # Path to Dovecot's auth socket (do not set unless you're using Dovecot auth) mux = /var/spool/postfix/private/auth # Path to Dovecot's master socket (if using Dovecot userdb lookup) master = /var/run/dovecot/auth-master # Path to sievec sievec = /usr/lib/dovecot/sievec # Where in user directory to store scripts scripts = pysieved # Filename used for the active SIEVE filter (see README.Dovecot) active = .dovecot.sieve # What user/group owns the mail storage (-1 to never setuid/setgid) uid = -1 gid = -1

* edit and reload inted

echo "sieve stream tcp nowait root /usr/bin/python python /usr/local/pysieved/pysieved.py --inetd" >> /etc/inetd.conf /etc/init.d/openbsd-inetd restart

Squirrelmail

for some reason i thought there was alot to do here, actually it's a bit "too" easy.. : ]

* on a working squirrelmail configuration, we need to:

  1. download the avelsieve plugin to the appropriate folder from author's siteor squirrelmail plugin page.
  2. expand the archive
  3. copy the config_sample to config.php
cd /path/to/squirrelmail/plugins/ cp /wherever/you/downloaded/avelsieve-1.9.7.tar.gz . tar zxvf avelsieve-1.9.7.tar.gz cp avelsieve/config/config_sample.php avelsieve/config/config.php

execute conf.pl (in /path/to/squirrelmail/config) to activate the plugin

Dovecot

(optional): i changed one line in the dovecot.conf file, just to have more "space"

from:

mail_location = maildir:/home/vmail/%d/%n

to

mail_location = maildir:/home/vmail/%d/%n/maildir

NOTE: if your mail server has already received emails before this you might have to "mv" some stuff from the /home/vmail/domain.tld/user/ to /home/vmail/domain.tld/user/maildir/ after /home/vmail/domain.tld/user/ should look like:

lrwxrwxrwx 1 vmail vmail 18 2008-05-16 12:41 .dovecot.sieve -> pysieved/phpscript drwx------ 9 vmail vmail 4,0K 2008-05-15 20:34 maildir drwxr-xr-x 2 vmail vmail 4,0K 2008-05-16 12:41 pysieved

and /home/vmail/domain.tld/user/maildir/ shoud look like:

drwx------ 2 vmail vmail 4,0K 2008-05-15 20:30 cur -rw------- 1 vmail vmail 168 2008-05-15 20:30 dovecot.index -rw------- 1 vmail vmail 17K 2008-05-15 20:32 dovecot.index.cache -rw------- 1 vmail vmail 756 2008-05-15 20:32 dovecot.index.log -rw------- 1 vmail vmail 89 2008-05-15 20:30 dovecot-uidlist drwx------ 5 vmail vmail 4,0K 2008-05-15 20:34 .INBOX.Drafts drwx------ 5 vmail vmail 4,0K 2008-05-15 20:34 .INBOX.Sent drwx------ 5 vmail vmail 4,0K 2008-05-15 21:46 .INBOX.spam drwx------ 5 vmail vmail 4,0K 2008-05-15 20:25 .INBOX.Trash drwx------ 2 vmail vmail 4,0K 2008-05-15 20:30 new -rw------- 1 vmail vmail 47 2008-05-15 20:34 subscriptions drwx------ 2 vmail vmail 4,0K 2008-05-15 20:30 tmp

Minor glitches (and some fixes)

there are a couple of things you should know:

  1. * once a user adds his own sieve filter it deactivates the globalsieve filter, meaning spam will no longer be filtered. the first rule to be added should be a spam rule.
  2. * deleting rules works fine EXCEPT that there must always remain at least one rule and that last rule can be disabled. HOWEVER, there is a FIX, thanks Mike Lewinski, the file table.php needs to be patched, hereis how:
cd /path/to/squirrelmail/plugins/avelsieve/ cp table.php table.bak wget http://www.rockynet.com/patches/table.patch patch table.php table.patch

and voilĂ , you can now erase all rules.

that should be all, you can now enjoy sieve filters. .. yay. \o/

Your comments WILL NOT be submitted to any third party (not even for anti spam verification).