Thomas Leuxner
2009-Jul-30 09:04 UTC
[Dovecot] Filtering with Public Namespaces and Sieve Plugin
Hi, after upgrading to Dovecot 1.2x including the rewritten Sieve plugin replacing 'cmusieve', messages which have formerly been filed to a "Public/Mailing-List" maildir are no longer filtered correctly. The sieve script itself is included in the user's personal-script. The messages are dropped to the INBOX rather than the "Public Namespace Maildir". Log's don't give a hint (at least to me). The documentation says the personal script should automatically fetch the include, and compile it in the users home... Debug log excerpt: ----------------->2009-07-30 10:44:09 deliver(xxxx): Info: Namespace: type=public, prefix=Public/, sep=/, inbox=no, hidden=no, list=yes, subscriptions=no >2009-07-30 10:44:09 deliver(xxxx): Info: maildir: data=/var/vmail/public:CONTROL=~/maildir/public:INDEX=~/maildir/public >2009-07-30 10:44:09 deliver(xxxx): Info: maildir++: root=/var/vmail/public, index=/var/vmail/leuxner.net/tlx/maildir/public, control=/var/vmail/leuxner.net/tlx/maildir/public, inbox>2009-07-30 10:44:09 deliver(xxxx): Info: sieve: using sieve path for user's script: /var/vmail/leuxner.net/tlx/.dovecot.sieve >2009-07-30 10:44:09 deliver(xxxx): Info: sieve: opening script /var/vmail/leuxner.net/tlx/.dovecot.sieve >2009-07-30 10:44:09 deliver(xxxx): Info: sieve: executing compiled script /var/vmail/leuxner.net/tlx/.dovecot.sieve >2009-07-30 10:44:09 deliver(xxxx): Info: Namespace : Using permissions from /var/vmail/leuxner.net/tlx/maildir: mode=0750 gid=-1 >2009-07-30 10:44:09 deliver(xxxx): Info: sieve: msgid=<20090730084326.GP1111 at jeeves.jpl.local>: stored mail into mailbox 'INBOX'Personal ".dovecot.sieve" script: ------------------------------ require ["include","copy","fileinto","vacation"]; include :global "global.sieve"; -- snip --- Global script "global.sieve" excerpt: ------------------------------------ require ["copy","fileinto"]; #Newsletters / Mailinglists if allof (address :is ["To","CC"] "dovecot at dovecot.org", header :contains "List-Id" "dovecot.dovecot.org") { fileinto "Public/Mailing-Lists.Dovecot"; } elsif allof (address :is "To" "dovecot-news at dovecot.org", header :contains "List-Id" "dovecot-news.dovecot.org") { fileinto :copy "Public/Newsletters.Dovecot"; } Thanks Thomas $ dovecot -n # 1.2.1: /etc/dovecot/dovecot.conf # OS: Linux 2.6.26-2-amd64 x86_64 Debian 5.0.2 log_path: /var/log/dovecot.log info_log_path: /var/log/dovecot-info.log log_timestamp: %Y-%m-%d %H:%M:%S protocols: imap listen: 188.138.0.199:143 ssl_cert_file: /etc/ssl/certs/spectre_leuxner_net_2009.crt ssl_key_file: /etc/ssl/private/spectre_leuxner_net_2009.key login_dir: /var/run/dovecot/login login_executable: /usr/lib/dovecot/imap-login mail_privileged_group: mail mail_location: maildir:~/maildir mail_debug: yes maildir_copy_preserve_filename: yes mail_plugins: acl quota imap_quota fts fts_squat namespace: type: private separator: / inbox: yes list: yes subscriptions: yes namespace: type: public separator: / prefix: Public/ location: maildir:/var/vmail/public:CONTROL=~/maildir/public:INDEX=~/maildir/public list: yes auth default: passdb: driver: passwd-file args: username_format=%u /var/vmail/%d/etc/passwd userdb: driver: passwd-file args: username_format=%u /var/vmail/%d/etc/passwd socket: type: listen client: path: /var/spool/postfix/private/auth mode: 432 user: postfix group: postfix master: path: /var/run/dovecot/auth-master mode: 384 user: vmail group: vmail plugin: acl: vfile:/var/vmail/%d/etc/acls:cache_secs=300 quota: maildir:User quota quota_rule: *:storage=1GB quota_rule2: Trash:storage=10%% fts: squat fts_squat: partial=4 full=10 sieve_global_dir: /var/vmail/%d/etc/sieve-scripts
Stephan Bosch
2009-Jul-30 09:54 UTC
[Dovecot] Filtering with Public Namespaces and Sieve Plugin
Thomas Leuxner wrote:> Hi, > > after upgrading to Dovecot 1.2x including the rewritten Sieve plugin replacing 'cmusieve', messages which have formerly been filed to a "Public/Mailing-List" maildir are no longer filtered correctly. The sieve script itself is included in the user's personal-script. The messages are dropped to the INBOX rather than the "Public Namespace Maildir". Log's don't give a hint (at least to me). The documentation says the personal script should automatically fetch the include, and compile it in the users home... >I am pretty confident that this is caused by the include bug we found a few days back: http://www.dovecot.org/list/dovecot/2009-July/041608.html That is fixed: http://hg.rename-it.nl/dovecot-1.2-sieve/rev/d989537882d0 To confirm, you could first try to incorporate the mailing-list rules from the global script into the user's personal script to check whether filing into the public namespace works without the include. Then, you could apply the above patch to check whether it solves your problem. I've tested your setup with the latest Mercurial version and I could not find any problems. Regards, Stephan