Cyrus - Sieve filtering
De gacq wiki
Yo configure el cyrus para que el archivo de filtrado este ubicado en el home de cada usuario. Para hacer esto modifique el archivo /etc/imapd.conf descomentar o agregar el siguiente parámetro
sieveusehomedir: true
Luego crea en el home de usuario un archivo llamado ".sieve"
ejemplo de mi .sieve:
require ["fileinto"]; if header :contains "Subject" "[Alumnos]" { fileinto "INBOX.Facultad"; } elsif header :contains ["To", "Cc"] ["alumnos@lista-1.dc.uba.ar", "alumnos@dc.uba.ar", "todos@lista-1.dc.uba.ar", "todos@dc.uba.ar", "docentes@dc.uba.ar"] { fileinto "INBOX.Facultad"; } elsif header :contains ["From"] ["T-knos", "INFOmail"] { fileinto "INBOX.T-knos"; } elsif header :contains ["Subject"] ["Informatica y Derecho", "Informática y Derecho"] { fileinto "INBOX.Informacion"; } elsif header :contains ["Subject"] ["[Netoffice-Refert]"] { fileinto "INBOX.Trabajos.NetOffice"; } elsif header :contains ["Subject"] ["[JavaSpecialists]"] { fileinto "INBOX.Informacion.Java"; } elsif header :contains ["Subject"] ["(SPAM)"] { fileinto "INBOX.Junk"; } elsif header :contains "Subject" "[CVS" { fileinto "INBOX.CVS"; } elsif header :contains ["to", "Cc"] ["hibernate@bauna.com.ar", "hibernate-devel@lists.sourceforge.net"] { fileinto "INBOX.Hibernate"; } elsif header :contains ["to", "Cc"] ["debian-news@lists.debian.org"] { fileinto "INBOX.Debian"; } else { fileinto "INBOX"; }
Si no tenemos el usuario local
geacequ:/srv/admin/sieve# sieveshell --user=gacqlist2 --authname=cyrus localhost connecting to localhost Please enter your password: > put gacqlist2.sieve > activate gacqlist2.sieve > list gacqlist2.sieve <- active script > quit
Errores
geacequ:/srv/admin/sieve# sieveshell --user=usuario --authname=cyrusadmin --exec=usuario.sieve 127.0.0.1 connecting to 127.0.0.1 Bad protocol from MANAGESIEVE server: EOL2
Esto es porque hay que comentar "sieveusehomedir: true" en /etc/imapd.conf