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 beheben[[BR]]
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 Datei[[BR]]
/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 ======