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
