dovecot ignores users sieve-script
Hi there!
I recognized that dovecot ignores users sieve-script. The global and the post-sieve-scripts are working, but users sievescript is ignored.
You can see the sieve trace-files last lines
65: finishing match with result: not matched
65: jump if result is true
65: not jumping
65: jumping to line 67
67: jumping to line 77
## Finished executing script 'global'
## Started executing script 'junk'
2: header test
2: starting :contains' match with
i;ascii-casemap' comparator:
2: extracting `X-Spam' headers from message
2: finishing match with result: not matched
2: jump if result is false
2: jumping to line 6
## Finished executing script 'junk'
Between global and junk-Script should sieve run users sieve script.
Before the Upgrade to 2.3.8 sieve was working correct. Now ALL messages go to INBOX, no one is filtered anymore.
compiling the sievescript with
sudo -u vmail sievec sievefilter.sieve
gives no errormessage...
My users sievefilter is:
/var/mail/jakobus.schuerz/sieve/sievefilter.sieve
This directory contains: lrwxrwxrwx 1 vmail vmail 17 Nov 7 12:44 jakobus.schuerz.sieve -> sievefilter.sieve -rw------- 1 vmail vmail 36834 Nov 7 13:25 jakobus.schuerz.svbin -rw------- 1 vmail vmail 45588 Nov 7 11:43 sievefilter.sieve
The dovecot conf dump:
# 2.3.8 (9df20d2db): /etc/dovecot/dovecot.conf
# Pigeonhole version 0.5.8 (b7b03ba2) # OS: Linux 4.19.0-6-amd64 x86_64 Debian 10.1 # Hostname: mail.mydomain.example auth_mechanisms = plain login cram-md5 digest-md5 auth_socket_path = /var/run/dovecot/auth-userdb disable_plaintext_auth = no first_valid_uid = 1000 imap_capability = +XDOVECOT +SPECIAL-USE imap_client_workarounds = tb-extra-mailbox-sep tb-lsub-flags delay-newmail lda_mailbox_autocreate = yes lda_mailbox_autosubscribe = yes listen = *, ::1 login_log_format_elements = user=<%u> method=%m rip=%r lip=%l mpid=%e %c tls=%k login_trusted_networks = 127.0.0.1/8 192.168.0.0/24 192.168.1.0/24 172.17.0.0/24 172.18.0.0/24 mail_gid = vmail mail_home = /var/mail/%u mail_location = maildir:~/Maildir:LAYOUT=fs:INDEX=/var/lib/dovecot/db/indexes/Maildir/%u:CONTROL=/var/lib/dovecot/db/control/Maildir/%u mail_plugins = zlib quota acl listescape mail_log notify virtual fts fts_lucene mail_privileged_group = vmail mail_server_admin = mailto:user@mydomain.example mail_shared_explicit_inbox = yes mail_uid = vmail managesieve_notify_capability = mailto managesieve_sieve_capability = fileinto reject envelope encoded-character vacation subaddress comparator-i;ascii-numeric relational regex imap4flags copy include variables body enotify environment mailbox date index ihave duplicate mime foreverypart extracttext imapsieve vnd.dovecot.imapsieve namespace Geteilt { hidden = no inbox = no list = children location = maildir:/var/mail/%%u/Maildir:LAYOUT=fs:INDEXPVT=/var/lib/dovecot/db/indexes/shared/%u/%%u prefix = Geteilt/%%n/ separator = / subscriptions = no type = shared } namespace History { hidden = no inbox = no list = children location = maildir:/var/mail/archiv/%u/:LAYOUT=fs:INDEX=/var/lib/dovecot/db/indexes/archiv/%u:CONTROL=/var/lib/dovecot/db/control/archiv/%u mailbox Archiv { auto = subscribe special_use = \Archive } prefix = Archiv/ separator = / subscriptions = no type = private } namespace Synoptic { hidden = no ignore_on_failure = no list = children location = virtual:/var/mail/virtual/synoptic:INDEX=/var/lib/dovecot/db/indexes/virtual/synoptic/%u mailbox AKTUELL { auto = subscribe special_use = \All } mailbox Markierte { auto = subscribe special_use = \Flagged } mailbox Neue { auto = subscribe } mailbox Rechnungen { auto = subscribe } mailbox WICHTIG { auto = subscribe } prefix = Synoptic/ separator = / subscriptions = no } namespace Tulln { list = children location = maildir:/var/mail/public/tulln:SUBSCRIPTIONS=subscriptions/%u:LAYOUT=fs:INDEXPVT=/var/lib/dovecot/db/indexes/public/tulln/%u mailbox Familie { auto = subscribe } mailbox Versicherungen { auto = subscribe } mailbox familyextracard { auto = subscribe } prefix = Tulln/ separator = / subscriptions = no type = public } namespace inbox { hidden = no inbox = yes location = mailbox "Deleted Messages" { auto = no autoexpunge = 30 days special_use = \Trash } mailbox Drafts { auto = no special_use = \Drafts } mailbox Entwürfe { auto = no special_use = \Drafts } mailbox "Gelöschte Elemente" { auto = no autoexpunge = 30 days special_use = \Trash } mailbox "Gelöschte Objekte" { auto = no autoexpunge = 30 days special_use = \Trash } mailbox Gesendet { auto = no special_use = \Sent } mailbox "Gesendete Elemente" { auto = no special_use = \Sent } mailbox "Gesendete Objekte" { auto = no special_use = \Sent } mailbox Junk { auto = subscribe autoexpunge = 30 days special_use = \Junk } mailbox Mistkübel { auto = no autoexpunge = 30 days special_use = \Trash } mailbox Papierkorb { auto = no autoexpunge = 30 days special_use = \Trash } mailbox Sent { auto = subscribe special_use = \Sent } mailbox "Sent Messages" { auto = no special_use = \Sent } mailbox Spam { auto = no autoexpunge = 30 days special_use = \Junk } mailbox Synoptic/AKTUELL { auto = no comment = All my messages special_use = \All } mailbox Trash { auto = no autoexpunge = 30 days special_use = \Trash } prefix = INBOX/ separator = / subscriptions = no type = private } namespace subscriptions { hidden = yes list = no location = prefix = subscriptions = yes } passdb { args = /etc/dovecot/dovecot-ldap-passdb-user.conf.ext driver = ldap name = user } passdb { args = /etc/dovecot/dovecot-ldap-passdb-admin.conf.ext driver = ldap name = admin } passdb { args = /etc/dovecot/dovecot-ldap-passdb-others.conf.ext driver = ldap name = others } plugin { acl = vfile:/etc/dovecot/dovecot-acl:cache_secs=300 acl_shared_dict = file:/var/lib/dovecot/db/shared-mailboxes.db fts = lucene fts_autoindex = yes fts_autoindex_max_recent_msgs = 80 fts_index_timeout = 90 fts_lucene = whitespace_chars=@. normalize no_snowball imapsieve_mailbox1_before = file:/etc/dovecot/sieve/report-spam.sieve imapsieve_mailbox1_causes = COPY imapsieve_mailbox1_name = INBOX/Junk imapsieve_mailbox2_before = file:/etc/dovecot/sieve/report-ham.sieve imapsieve_mailbox2_causes = COPY imapsieve_mailbox2_from = INBOX/Junk imapsieve_mailbox2_name = * mail_home = /var/mail/%u mail_log_events = delete undelete expunge copy mailbox_delete mailbox_rename mail_log_fields = uid box msgid subject from flags setting_name = sieve, managedsieve sieve = file:/var/mail/%u/sieve/;active=/var/mail/%u/sieve/%u.sieve sieve_after = /etc/dovecot/sieve/after.d/ sieve_before = /etc/dovecot/sieve/global.sieve sieve_global_dir = /etc/dovecot/sieve/ sieve_global_extensions = +vnd.dovecot.pipe sieve_pipe_bin_dir = /etc/dovecot/sieve sieve_plugins = sieve_imapsieve sieve_extprograms sieve_trace_dir = /var/log/dovecot/sieve/trace sieve_trace_level = matching sieve_user_log = /var/mail/%u/sieve/sieve.log } postmaster_address = postmaster@localhost protocols = " imap lmtp lmtp sieve pop3 sieve" service anvil { client_limit = 199999 unix_listener anvil-auth-penalty { mode = 0700 } } service auth { unix_listener auth-client { group = vmail mode = 0666 user = Debian-exim } unix_listener auth-userdb { group = vmail mode = 0666 user = vmail } } service imap-login { inet_listener imap { port = 143 } inet_listener imaps { port = 993 ssl = yes } process_min_avail = 1 service_count = 1 } service imap-postlogin { executable = script-login -d rawlog /etc/dovecot/acl_groups.py unix_listener imap-postlogin { group = vmail user = vmail } } service imap { executable = imap imap-postlogin process_limit = 1024 vsz_limit = 400 M } service lmtp { user = Debian-exim vsz_limit = 400 M } service stats { unix_listener stats-writer { group = vmail mode = 0600 user = vmail } } ssl = required ssl_cert =
Thanks for your help
Op 7-11-2019 om 13:30 schreef Jakobus Schürz via dovecot:
Hi there!
I recognized that dovecot ignores users sieve-script. The global and the post-sieve-scripts are working, but users sievescript is ignored.
You can see the sieve trace-files last lines
65: finishing match with result: not matched 65: jump if result is true 65: not jumping 65: jumping to line 67 67: jumping to line 77 ## Finished executing script 'global'
## Started executing script 'junk' 2: header test 2: starting
:contains' match with
i;ascii-casemap' comparator: 2: extracting `X-Spam' headers from message 2: finishing match with result: not matched 2: jump if result is false 2: jumping to line 6 ## Finished executing script 'junk'Between global and junk-Script should sieve run users sieve script.
Before the Upgrade to 2.3.8 sieve was working correct. Now ALL messages go to INBOX, no one is filtered anymore.
compiling the sievescript with
sudo -u vmail sievec sievefilter.sieve
gives no errormessage...
My users sievefilter is:
/var/mail/jakobus.schuerz/sieve/sievefilter.sieve
This directory contains: lrwxrwxrwx 1 vmail vmail 17 Nov 7 12:44 jakobus.schuerz.sieve -> sievefilter.sieve -rw------- 1 vmail vmail 36834 Nov 7 13:25 jakobus.schuerz.svbin -rw------- 1 vmail vmail 45588 Nov 7 11:43 sievefilter.sieve
Can you enable mail_debug and check the logs?
The dovecot conf dump:
# 2.3.8 (9df20d2db): /etc/dovecot/dovecot.conf
# Pigeonhole version 0.5.8 (b7b03ba2) # OS: Linux 4.19.0-6-amd64 x86_64 Debian 10.1 # Hostname: mail.mydomain.example auth_mechanisms = plain login cram-md5 digest-md5 auth_socket_path = /var/run/dovecot/auth-userdb disable_plaintext_auth = no first_valid_uid = 1000 imap_capability = +XDOVECOT +SPECIAL-USE imap_client_workarounds = tb-extra-mailbox-sep tb-lsub-flags delay-newmail lda_mailbox_autocreate = yes lda_mailbox_autosubscribe = yes listen = *, ::1 login_log_format_elements = user=<%u> method=%m rip=%r lip=%l mpid=%e %c tls=%k login_trusted_networks = 127.0.0.1/8 192.168.0.0/24 192.168.1.0/24 172.17.0.0/24 172.18.0.0/24 mail_gid = vmail mail_home = /var/mail/%u mail_location = maildir:~/Maildir:LAYOUT=fs:INDEX=/var/lib/dovecot/db/indexes/Maildir/%u:CONTROL=/var/lib/dovecot/db/control/Maildir/%u mail_plugins = zlib quota acl listescape mail_log notify virtual fts fts_lucene mail_privileged_group = vmail mail_server_admin = mailto:user@mydomain.example mail_shared_explicit_inbox = yes mail_uid = vmail managesieve_notify_capability = mailto managesieve_sieve_capability = fileinto reject envelope encoded-character vacation subaddress comparator-i;ascii-numeric relational regex imap4flags copy include variables body enotify environment mailbox date index ihave duplicate mime foreverypart extracttext imapsieve vnd.dovecot.imapsieve namespace Geteilt { hidden = no inbox = no list = children location = maildir:/var/mail/%%u/Maildir:LAYOUT=fs:INDEXPVT=/var/lib/dovecot/db/indexes/shared/%u/%%u prefix = Geteilt/%%n/ separator = / subscriptions = no type = shared } namespace History { hidden = no inbox = no list = children location = maildir:/var/mail/archiv/%u/:LAYOUT=fs:INDEX=/var/lib/dovecot/db/indexes/archiv/%u:CONTROL=/var/lib/dovecot/db/control/archiv/%u mailbox Archiv { auto = subscribe special_use = \Archive } prefix = Archiv/ separator = / subscriptions = no type = private } namespace Synoptic { hidden = no ignore_on_failure = no list = children location = virtual:/var/mail/virtual/synoptic:INDEX=/var/lib/dovecot/db/indexes/virtual/synoptic/%u mailbox AKTUELL { auto = subscribe special_use = \All } mailbox Markierte { auto = subscribe special_use = \Flagged } mailbox Neue { auto = subscribe } mailbox Rechnungen { auto = subscribe } mailbox WICHTIG { auto = subscribe } prefix = Synoptic/ separator = / subscriptions = no } namespace Tulln { list = children location = maildir:/var/mail/public/tulln:SUBSCRIPTIONS=subscriptions/%u:LAYOUT=fs:INDEXPVT=/var/lib/dovecot/db/indexes/public/tulln/%u mailbox Familie { auto = subscribe } mailbox Versicherungen { auto = subscribe } mailbox familyextracard { auto = subscribe } prefix = Tulln/ separator = / subscriptions = no type = public } namespace inbox { hidden = no inbox = yes location = mailbox "Deleted Messages" { auto = no autoexpunge = 30 days special_use = \Trash } mailbox Drafts { auto = no special_use = \Drafts } mailbox Entwürfe { auto = no special_use = \Drafts } mailbox "Gelöschte Elemente" { auto = no autoexpunge = 30 days special_use = \Trash } mailbox "Gelöschte Objekte" { auto = no autoexpunge = 30 days special_use = \Trash } mailbox Gesendet { auto = no special_use = \Sent } mailbox "Gesendete Elemente" { auto = no special_use = \Sent } mailbox "Gesendete Objekte" { auto = no special_use = \Sent } mailbox Junk { auto = subscribe autoexpunge = 30 days special_use = \Junk } mailbox Mistkübel { auto = no autoexpunge = 30 days special_use = \Trash } mailbox Papierkorb { auto = no autoexpunge = 30 days special_use = \Trash } mailbox Sent { auto = subscribe special_use = \Sent } mailbox "Sent Messages" { auto = no special_use = \Sent } mailbox Spam { auto = no autoexpunge = 30 days special_use = \Junk } mailbox Synoptic/AKTUELL { auto = no comment = All my messages special_use = \All } mailbox Trash { auto = no autoexpunge = 30 days special_use = \Trash } prefix = INBOX/ separator = / subscriptions = no type = private } namespace subscriptions { hidden = yes list = no location = prefix = subscriptions = yes } passdb { args = /etc/dovecot/dovecot-ldap-passdb-user.conf.ext driver = ldap name = user } passdb { args = /etc/dovecot/dovecot-ldap-passdb-admin.conf.ext driver = ldap name = admin } passdb { args = /etc/dovecot/dovecot-ldap-passdb-others.conf.ext driver = ldap name = others } plugin { acl = vfile:/etc/dovecot/dovecot-acl:cache_secs=300 acl_shared_dict = file:/var/lib/dovecot/db/shared-mailboxes.db fts = lucene fts_autoindex = yes fts_autoindex_max_recent_msgs = 80 fts_index_timeout = 90 fts_lucene = whitespace_chars=@. normalize no_snowball imapsieve_mailbox1_before = file:/etc/dovecot/sieve/report-spam.sieve imapsieve_mailbox1_causes = COPY imapsieve_mailbox1_name = INBOX/Junk imapsieve_mailbox2_before = file:/etc/dovecot/sieve/report-ham.sieve imapsieve_mailbox2_causes = COPY imapsieve_mailbox2_from = INBOX/Junk imapsieve_mailbox2_name = * mail_home = /var/mail/%u mail_log_events = delete undelete expunge copy mailbox_delete mailbox_rename mail_log_fields = uid box msgid subject from flags setting_name = sieve, managedsieve sieve = file:/var/mail/%u/sieve/;active=/var/mail/%u/sieve/%u.sieve sieve_after = /etc/dovecot/sieve/after.d/ sieve_before = /etc/dovecot/sieve/global.sieve sieve_global_dir = /etc/dovecot/sieve/ sieve_global_extensions = +vnd.dovecot.pipe sieve_pipe_bin_dir = /etc/dovecot/sieve sieve_plugins = sieve_imapsieve sieve_extprograms sieve_trace_dir = /var/log/dovecot/sieve/trace sieve_trace_level = matching sieve_user_log = /var/mail/%u/sieve/sieve.log } postmaster_address = postmaster@localhost protocols = " imap lmtp lmtp sieve pop3 sieve" service anvil { client_limit = 199999 unix_listener anvil-auth-penalty { mode = 0700 } } service auth { unix_listener auth-client { group = vmail mode = 0666 user = Debian-exim } unix_listener auth-userdb { group = vmail mode = 0666 user = vmail } } service imap-login { inet_listener imap { port = 143 } inet_listener imaps { port = 993 ssl = yes } process_min_avail = 1 service_count = 1 } service imap-postlogin { executable = script-login -d rawlog /etc/dovecot/acl_groups.py unix_listener imap-postlogin { group = vmail user = vmail } } service imap { executable = imap imap-postlogin process_limit = 1024 vsz_limit = 400 M } service lmtp { user = Debian-exim vsz_limit = 400 M } service stats { unix_listener stats-writer { group = vmail mode = 0600 user = vmail } } ssl = required ssl_cert =
Thanks for your help
Am 07.11.19 um 17:01 schrieb Stephan Bosch:
Op 7-11-2019 om 13:30 schreef Jakobus Schürz via dovecot:
Hi there!
I recognized that dovecot ignores users sieve-script. The global and the post-sieve-scripts are working, but users sievescript is ignored.
You can see the sieve trace-files last lines
65: finishing match with result: not matched 65: jump if result is true 65: not jumping 65: jumping to line 67 67: jumping to line 77 ## Finished executing script 'global' ## Started executing script 'junk' 2: header test 2: starting
:contains' match with
i;ascii-casemap' comparator: 2: extracting `X-Spam' headers from message 2: finishing match with result: not matched 2: jump if result is false 2: jumping to line 6 ## Finished executing script 'junk'Between global and junk-Script should sieve run users sieve script.
Before the Upgrade to 2.3.8 sieve was working correct. Now ALL messages go to INBOX, no one is filtered anymore.
compiling the sievescript with
sudo -u vmail sievec sievefilter.sieve
gives no errormessage...
My users sievefilter is:
/var/mail/jakobus.schuerz/sieve/sievefilter.sieve
This directory contains: lrwxrwxrwx 1 vmail vmail 17 Nov 7 12:44 jakobus.schuerz.sieve -> sievefilter.sieve -rw------- 1 vmail vmail 36834 Nov 7 13:25 jakobus.schuerz.svbin -rw------- 1 vmail vmail 45588 Nov 7 11:43 sievefilter.sieve
Can you enable mail_debug and check the logs?
I had logs enabled "mail_debug = true", but lda did not write to journal...
So i changed the config for protocol lda (before log_path and info_log_path where empty after = )
protocol lda { # Space separated list of plugins to load (default is global mail_plugins). mail_plugins = $mail_plugins quota sieve acl log_path = /var/log/dovecot/lda-errors.log info_log_path = /var/log/dovecot/lda.log
}
and checked these logfiles. So I could find out, that i made a config-change in my LDAP, and now the username/email changed for sieve settings...
Could fix it.
But why is no debug-output in journal, when these to log-path settings are empty? Then it should go to rsyslog and then to journal...
jakob
participants (2)
-
Jakobus Schürz
-
Stephan Bosch