Table of Contents

Dieses HowTo beschreibt wie Sieve in Squirrelwebmail eingebunden werden kann um Mails direkt auf dem Server filtern zu können.

Dieses HowTo funktioniert nur mit dem Dovecot E-Mail Daemon. Eine Beschreibung wie der standardmässige installierte Courier Daemon durch Dovecot ersetzt werden kann findet Ihr unter http://www.isp-control.net/documentation/howto/mail/replace_courier_with_dovecot

1. Benötigte Tools installieren

> apt-get install cogito curl python subversion

2. pysieved installieren

> cd /usr/local/lib
> cg-clone http://woozle.org/~neale/repos/pysieved
> mkdir /usr/local/etc
> mv /usr/local/lib/pysieved/pysieved.ini /usr/local/etc
> mkdir /var/run/pysieved/
> chown vmail:mail /var/run/pysieved

3. Start Script anlegen

Erzeuge die Datei /etc/init.d/pysieved mit folgendem Inhalt:

#!/bin/sh
 
case $1 in
        start)
        /usr/bin/python /usr/local/lib/pysieved/pysieved.py
        echo "Starting sieve daemon: pysieved."
        ;;
        stop)
        kill $(cat /var/run/pysieved/pysieved.pid)
        echo "Stopping sieve daemon: pysieved."
        ;;
        *)
        echo "Usage: /etc/init.d/pysieved {start|stop}"
        ;;
esac

Die Dateirechte so setzen das die Datei ausgeführt werden kann:

 > chmod +x /etc/init.d/pysieved

4. pysieved konfigurieren

Erzeuge die Datei /usr/local/etc/pysieved.ini mit folgendem Inhalt:

(Die User ID (uid) und die Gruppen ID (gid) werden im ini File fest eingestellt. Die uid muss auf den Wert des vmails Users und die gid auf den Wert der mail Gruppe bei Euch im System geändert werden. Im Moment sind die Werte auf die IspCP Standardwerte ( uid = 1001 gid = 8 ) eingestellt. Falls Ihr Euch nicht sicher seid wie Eure jeweilige ID Lautet könnt Ihr das auf folgende Art und Weise herrausfinden:

> grep vmail /etc/passwd
> grep mail /etc/group

Wenn Ihr dann die IDs habt, entsprechend an der richtigen Stelle einsetzen:

[main]
auth    = Dovecot
userdb  = Dovecot
storage = Dovecot
 
port    = 2000
 
pidfile = /var/run/pysieved/pysieved.pid
 
[Virtual]
base = /var/mail/virtual/
 
uid = 1001
gid = 8
 
hostdirs = True
 
[Dovecot]
mux = /var/run/pysieved/auth
master = /var/run/pysieved/auth-master
 
sievec = /usr/lib/dovecot/sievec
 
scripts = .pysieved
 
uid = 1001
gid = 8

5. Dovecot konfigurieren

Die Datei /etc/dovecot/dovecot.conf öffnen und folgende Zeile

mail_plugins = cmusieve

zum “protocol lda” Block hinzufügen das das ganze dann so aussieht:

protocol lda {
postmaster_address = postmaster@yourdomain.tld
auth_socket_path = /var/run/dovecot/auth-master
mail_plugins = cmusieve
}

Danach am Ende der Datei folgende Zeilen hinzufügen:

auth pysieved {
mechanisms = plain
passdb sql {
args = /etc/dovecot/dovecot-sql-domain.conf
}
 
userdb sql {
args = /etc/dovecot/dovecot-sql-domain.conf
}
 
passdb sql {
args = /etc/dovecot/dovecot-sql-subdomain.conf
}
 
userdb sql {
args = /etc/dovecot/dovecot-sql-subdomain.conf
}
 
socket listen {
client {
path = /var/run/pysieved/auth
mode = 0660
user = vmail
group = mail
}
 
master {
path = /var/run/pysieved/auth-master
mode = 0660
user = vmail
group = mail
}
}
 
user = vmail
}

6. Postfix konfigurieren

In der Datei /etc/postfix/master.cf die nachfolgende Zeile entsprechend abändern:

dovecot unix - n n - - pipe
  flags=DRhu user=vmail:mail argv=/usr/lib/dovecot/deliver -f ${sender} -d ${recipient}

7. Avelsieve Plugin in Squirrelmail installieren

> cd /var/www/ispcp/gui/tools/webmail/plugins/ 
> svn export https://email.uoa.gr/repos/squirrelmail/avelsieve/main_plugin/trunk/ avelsieve

Die nachfolgende Zeile in der Datei /var/www/ispcp/gui/tools/webmail/config/config.php in dem Bereich wo auch die anderen Plugins bereits definiert sind entsprechend einfügen (26 ist der richtige Index wenn Ihr ispCP frisch installiert habt. Falls Ihr bereits weitere Plugins installiert habt, den Index entsprechend hochzählen )

$plugins[26] = 'avelsieve';

Die Rechte richtig setzen:

> chown -R vu2000:www-data /var/www/ispcp/gui/tools/webmail/plugins/avelsieve/

Konfigurationsdatei erstellen:

> cd /var/www/ispcp/gui/tools/webmail/plugins/avelsieve/config
> cp config_sample.php config.php

Die folgende Einstellung muss in der config.php noch geändert werden:

$avelsieve_striproot = 'INBOX.';

8. IMAP Namespace Problem behebenBR Das wird nur benötigt wenn Ihr Dovecot 1.0 benutzt. In Version 1.1 für der Namespace INBOX. bereits unterstützt.

Füge in der DateiBR /var/www/ispcp/gui/tools/webmail/plugins/avelsieve/include/sieve_buildrule.inc.php nach case '5': (ungefähr Zeile 560) folgendes ein:

if (substr($rule['folder'],0,6) == 'INBOX.') {
 $rule['folder'] = substr($rule['folder'],6);
}

9. Neustart der Daemons

> /etc/init.d/pysieved start
> /etc/init.d/dovecot restart
> /etc/init.d/postfix restart

10. Startup Links für pysieved anlegen

> update-rc.d pysieved defaults 92 08

11. Testen

In Squirrelmail solltet Ihr jetzt im Options Menü einen neuen Menüpunkt Message Filtering finden wo Ihr dann Eurer server basierten Filterregeln anlegen könnt.

12. Andere Sprachen aktivieren

Wenn Ihr Squirrelmail in einer anderen Sprache als en_Us installiert habt, dann solltet Ihr auch die Sprachdateien von avelsieve einspielen:

> apt-get install gettext
> cd /var/www/ispcp/gui/tools/webmail/plugins/avelsieve/po
> ./compileallpo
> ./xgetpo
> /etc/init.d/apache2 restart

Die Übersetzungen sind nicht vollständig. Ein aktuelles deutsches Sprachpaket findet Ihr im Forum unter http://www.isp-control.net/forum/new-german-languagefile-for-avelsieve-t-2130.html

13. Fertig