[Dovecot] Filtering with Public Namespaces and Sieve Plugin
Thomas Leuxner
tlx at leuxner.net
Thu Jul 30 12:04:06 EEST 2009
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
More information about the dovecot
mailing list