Yesterday I was told that at a customer the vacation scripts don't work anymore. Looking closer it seems the whole sieve-funtionality is missing (eg. filtering mails into folders).
I am in the process of analysing, and don't have a clue yet.
Editing scripts via managesieved works (for example from roundcube).
The scripts are in the right place, afai understand.
I compare this with another setup where things work and don't see the difference.
All this worked perfectly until maybe summer.
This is Debian 12.7 bookworm, the dovecot repo still points to bullseye.
# cat /etc/apt/sources.list.d/dovecot.list deb [arch=amd64 signed-by=/usr/share/keyrings/dovecot.gpg] https://repo.dovecot.org/ce-2.3-latest/debian/bullseye bullseye main
There is rspamd in place with postfix if that is somehow relevant.
The installation is on premise and has maybe 60-100 mailboxes in now 2 domains.
That was the largest change this year: add a so-called "alias domain" in postfixadmin: mailbox@new.domain points to mailbox@old.domain
I assume the sieve scripts should simply be executed as before.
The basics of mailing etc work fine!
I'd appreciate any pointers.
trying to enable debug logs etc, for example I don't get anything into "sieve_user_log"
# 2.3.21.1 (d492236fa0): /etc/dovecot/dovecot.conf # Pigeonhole version 0.5.21.1 (49005e73) # OS: Linux 6.1.0-26-amd64 x86_64 Debian 12.7 # Hostname: mail2.my.tld auth_cache_size = 4 M default_process_limit = 300 listen = * mail_home = /mnt/mailboxes/%d/%u mail_location = maildir:~ mail_plugins = " notify quota acl" 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 imapflags imapsieve vnd.dovecot.imapsieve namespace { inbox = yes location = prefix = separator = / type = private } namespace { location = maildir:/home/vmail/oeffentlich prefix = Oeffentlich/ separator = / subscriptions = yes type = public } passdb { args = /etc/dovecot/dovecot-sql.conf driver = sql } plugin { acl = vfile:/etc/dovecot/dovecot-acl:cache_secs=300 acl_shared_dict = file:/var/lib/dovecot/shared-mailboxes imapsieve_mailbox1_before = file:/etc/dovecot/sieve/global/learn-spam.sieve imapsieve_mailbox1_causes = COPY imapsieve_mailbox1_name = Spam imapsieve_mailbox2_before = file:/etc/dovecot/sieve/global/learn-ham.sieve imapsieve_mailbox2_causes = COPY imapsieve_mailbox2_from = Spam imapsieve_mailbox2_name = * sieve = /home/vmail/%d/%u/sieve/.dovecot.sieve sieve_before = /etc/dovecot/sieve/global/spam-global.sieve sieve_dir = /home/vmail/%d/%u/sieve/scripts/ sieve_extensions = +imapflags sieve_global_extensions = +vnd.dovecot.pipe sieve_pipe_bin_dir = /usr/bin sieve_plugins = sieve_imapsieve sieve_extprograms sieve_trace_dir = /tmp/sieve_trace/ sieve_trace_level = commands sieve_user_log = /home/vmail/%d/%u/sieve/sieve_user.log } protocols = imap sieve lmtp service auth { client_limit = 1200 unix_listener auth-client { group = postfix mode = 0660 user = postfix } unix_listener auth-userdb { mode = 0777 } user = root } service imap-login { process_min_avail = 10 } service lmtp { unix_listener /var/spool/postfix/private/dovecot-lmtp { group = postfix mode = 0660 user = postfix } user = vmail } service managesieve-login { inet_listener sieve { port = 4190 } } ssl = required ssl_ca = </etc/letsencrypt/pfsense/cloud_imap_mail_smtp_LE_cert.ca ssl_cert = </etc/letsencrypt/pfsense/cloud_imap_mail_smtp_LE_cert.fullchain ssl_cipher_list = ALL:HIGH:!SSLv2:!MEDIUM:!LOW:!EXP:!RC4:!MD5:!aNULL:@STRENGTH ssl_key = # hidden, use -P to show it ssl_key_password = # hidden, use -P to show it userdb { args = /etc/dovecot/dovecot-sql.conf driver = sql } protocol lmtp { mail_debug = yes mail_plugins = sieve postmaster_address = logs@my.tld } protocol imap { mail_max_userip_connections = 20 mail_plugins = " notify quota acl imap_sieve imap_acl" } protocol sieve { 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 ihave imapflags }
Am 23.10.24 um 08:36 schrieb Stefan G. Weichinger via dovecot:
plugin { acl = vfile:/etc/dovecot/dovecot-acl:cache_secs=300 acl_shared_dict = file:/var/lib/dovecot/shared-mailboxes imapsieve_mailbox1_before = file:/etc/dovecot/sieve/global/learn- spam.sieve imapsieve_mailbox1_causes = COPY imapsieve_mailbox1_name = Spam imapsieve_mailbox2_before = file:/etc/dovecot/sieve/global/learn- ham.sieve imapsieve_mailbox2_causes = COPY imapsieve_mailbox2_from = Spam imapsieve_mailbox2_name = * sieve = /home/vmail/%d/%u/sieve/.dovecot.sieve sieve_before = /etc/dovecot/sieve/global/spam-global.sieve sieve_dir = /home/vmail/%d/%u/sieve/scripts/
current try
sieve = /home/vmail/%d/%u/sieve/scripts/managesieve.sieve
Am 23.10.24 um 09:01 schrieb Stefan G. Weichinger via dovecot:
Am 23.10.24 um 08:55 schrieb Stefan G. Weichinger via dovecot:
current try
sieve = /home/vmail/%d/%u/sieve/scripts/managesieve.sieve
even better (?):
sieve = file:/home/vmail/%d/%u/sieve/scripts;active=/home/vmail/%d/%u/ sieve/scripts/.dovecot.sieve
I fiddle with dirs and subdirs ... and sieve-test.
These tests look perfectly ok, although mails are NOT filtered when I send testmails via client or so).
tree of users sieve-dir:
/home/vmail/domain.at/stefan.weichinger@domain.at/sieve# tree . └── scripts ├── managesieve.sieve ├── managesieve.svbin └── tmp
# ls -la scripts/ insgesamt 20 drwx------ 3 vmail vmail 4096 23. Okt 11:58 . drwx------ 3 vmail vmail 4096 23. Okt 11:46 .. lrwxrwxrwx 1 vmail vmail 17 23. Okt 11:52 .dovecot.sieve -> managesieve.sieve -rw------- 1 vmail vmail 292 23. Okt 11:55 managesieve.sieve -rw------- 1 vmail vmail 576 23. Okt 11:58 managesieve.svbin drwx------ 2 vmail vmail 4096 23. Okt 11:55 tmp
changes in conf:
plugin { # quota = dict:User quota::proxy::quota #sieve = /home/vmail/%d/%u/sieve/.dovecot.sieve sieve = file:/home/vmail/%d/%u/sieve/scripts;active=/home/vmail/%d/%u/sieve/scripts/.dovecot.sieve sieve_global = /etc/dovecot/sieve/global/default.sieve sieve_before = /etc/dovecot/sieve/global/spam-global.sieve
sieve_extensions = +imapflags
sieve_plugins = sieve_imapsieve sieve_extprograms
sieve_pipe_bin_dir = /etc/dovecot/sieve/global
-- editing sieve-scripts via managesieve / roundcube works fine as well.
I don't see it ...
Am 23.10.24 um 16:06 schrieb Benny Pedersen via dovecot:
Stefan G. Weichinger via dovecot skrev den 2024-10-23 09:01:
ok?
i have
sieve = file:~/.sieve;active=~/.dovecot.sieve
note the ~ char :=)
mails is here in ~/.maildir so sieve data is not in maildir home
$home for my users comes from a db query and not from /etc/passwd or so
that query should be OK as normal mailing etc works great
I changed the setting slightly:
sieve = file:/home/vmail/%d/%u/sieve/scripts;active=/home/vmail/%d/%u/sieve/.dovecot.sieve
edited filters in roundcube etc, checked symlink, looks ok
But it seems sieve isn't really working to me.
I temporarily disabled that learning stuff with rspamd and modernized the used scripts etc
Right now I have:
# 2.3.21.1 (d492236fa0): /etc/dovecot/dovecot.conf # Pigeonhole version 0.5.21.1 (49005e73) # OS: Linux 6.1.0-26-amd64 x86_64 Debian 12.7
auth_cache_size = 4 M debug_log_path = /var/log/dovecot-debug.log default_process_limit = 300 info_log_path = /var/log/dovecot-info.log listen = * log_path = /var/log/dovecot.log mail_debug = yes mail_home = /mnt/mailboxes/%d/%u mail_location = maildir:~ mail_plugins = " notify quota acl" 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 spamtest spamtestplus virustest editheader mboxmetadata servermetadata imapsieve vnd.dovecot.imapsieve namespace { inbox = yes location = prefix = separator = / type = private } namespace { location = maildir:/home/vmail/oeffentlich prefix = Oeffentlich/ separator = / subscriptions = yes type = public } passdb { args = /etc/dovecot/dovecot-sql.conf driver = sql } plugin { acl = vfile:/etc/dovecot/dovecot-acl:cache_secs=300 acl_shared_dict = file:/var/lib/dovecot/shared-mailboxes imapsieve_mailbox1_before = file:/usr/lib/dovecot/sieve/report-spam.sieve imapsieve_mailbox1_causes = COPY imapsieve_mailbox1_name = Spam imapsieve_mailbox2_before = file:/usr/lib/dovecot/sieve/report-ham.sieve imapsieve_mailbox2_causes = COPY imapsieve_mailbox2_from = Spam imapsieve_mailbox2_name = * sieve = file:/home/vmail/%d/%u/sieve/scripts;active=/home/vmail/%d/%u/sieve/.dovecot.sieve sieve_extensions = +editheader +mboxmetadata +servermetadata +spamtest +spamtestplus +virustest sieve_global_extensions = +vnd.dovecot.pipe +vnd.dovecot.debug +vnd.dovecot.environment sieve_pipe_bin_dir = /usr/lib/dovecot/sieve sieve_plugins = sieve_imapsieve sieve_extprograms sieve_spamtest_max_value = 6 sieve_spamtest_status_header = X-Spamd-Result: .*? \[([[:digit:]]+\.[[:digit:]]+) / [[:digit:]]+\.[[:digit:]]+\]; sieve_spamtest_status_type = score sieve_trace_dir = /tmp/sieve_trace/ sieve_trace_level = commands sieve_user_log = /home/vmail/%d/%u/sieve/sieve_user.log } protocols = imap sieve lmtp service auth { client_limit = 1200 unix_listener auth-client { group = postfix mode = 0660 user = postfix } unix_listener auth-userdb { mode = 0777 } user = root } service imap-login { process_min_avail = 10 } service lmtp { unix_listener /var/spool/postfix/private/dovecot-lmtp { group = postfix mode = 0660 user = postfix } } service managesieve-login { inet_listener sieve { port = 4190 } } ssl = required ssl_ca = </etc/letsencrypt/pfsense/cloud_imap_mail_smtp_LE_cert.ca ssl_cert = </etc/letsencrypt/pfsense/cloud_imap_mail_smtp_LE_cert.fullchain ssl_cipher_list = ALL:HIGH:!SSLv2:!MEDIUM:!LOW:!EXP:!RC4:!MD5:!aNULL:@STRENGTH ssl_key = # hidden, use -P to show it ssl_key_password = # hidden, use -P to show it userdb { args = /etc/dovecot/dovecot-sql.conf driver = sql } protocol lmtp { mail_debug = yes mail_plugins = " notify quota acl sieve" postmaster_address = logs@xunil.at } protocol imap { mail_debug = yes mail_max_userip_connections = 20 mail_plugins = " notify quota acl imap_sieve imap_acl" } protocol sieve { log_debug = category=sieve 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 ihave imapflags }
Hi Stefan,
On 23.10.24 17:02, Stefan G. Weichinger via dovecot wrote:
I changed the setting slightly:
sieve = file:/home/vmail/%d/%u/sieve/scripts;active=/home/vmail/%d/%u/ sieve/.dovecot.sieve
edited filters in roundcube etc, checked symlink, looks ok
so in this directory:
/home/vmail/%d/%u/sieve
now there's:
- the following symlink, right?:
.dovecot.sieve -> scripts/managesieve.sieve
- and this file too?:
.dovecot.svbin
But it seems sieve isn't really working to me.
Really strange ...
And another question - did you also change your 20-lmtp.conf, especially 'mail_plugins'?
Now your 'doveconf -n' shows (which seems OK to me):
protocol lmtp { mail_debug = yes mail_plugins = " notify quota acl sieve" postmaster_address = logs@xunil.at }
but in your first posting you had this:
protocol lmtp { mail_debug = yes mail_plugins = sieve postmaster_address = logs@my.tld }
And one last question: are there any log entries regarding LMTP and Sieve while delivering a new mail to a mailbox with active filters?
I just check one of my Bookworm systems with a quite similar setup but with the original Debian Dovecot packages:
# 2.3.19.1 (9b53102964): /etc/dovecot/dovecot.conf # Pigeonhole version 0.5.19 (4eae2f79) # OS: Linux 6.1.0-26-amd64 x86_64 Debian 12.7 ext4
and don't have any problems with Sieve - it just works.
Regards, Markus
Am 23.10.24 um 17:59 schrieb Markus Winkler via dovecot:
Hi Stefan,
On 23.10.24 17:02, Stefan G. Weichinger via dovecot wrote:
I changed the setting slightly:
sieve = file:/home/vmail/%d/%u/sieve/scripts;active=/home/vmail/%d/%u/ sieve/.dovecot.sieve
edited filters in roundcube etc, checked symlink, looks ok
so in this directory:
/home/vmail/%d/%u/sieve
now there's:
- the following symlink, right?:
.dovecot.sieve -> scripts/managesieve.sieve
- and this file too?:
.dovecot.svbin
hm, no
root@mail2:/home/vmail/my.tld.at/stefan.weichinger@my.tld.at/sieve# ls -la insgesamt 12 drwx------ 3 vmail vmail 4096 23. Okt 16:55 . drwx------ 19 vmail vmail 4096 23. Okt 17:30 .. lrwxrwxrwx 1 vmail vmail 25 23. Okt 16:55 .dovecot.sieve -> scripts/managesieve.sieve drwx------ 3 vmail vmail 4096 23. Okt 16:55 scripts
root@mail2:/home/vmail/my.tld.at/stefan.weichinger@my.tld.at/sieve# ls -la scripts/ insgesamt 20 drwx------ 3 vmail vmail 4096 23. Okt 16:55 . drwx------ 3 vmail vmail 4096 23. Okt 16:55 .. -rw------- 1 vmail vmail 359 23. Okt 16:55 managesieve.sieve -rw------- 1 vmail vmail 576 23. Okt 11:58 managesieve.svbin drwx------ 2 vmail vmail 4096 23. Okt 16:55 tmp
So the binary version is in the subdir only.
I edited things over and over yesterday, I also had it both in one subdir already. On my own server, where sieve *works* I have:
sieve = file:/home/vmail/%d/%u/sieve/scripts;active=/home/vmail/%d/%u/sieve/scripts/.dovecot.sieve
I think I prefer that one, even if just to rule out that 2-dir-question.
But it seems sieve isn't really working to me.
Really strange ...
And another question - did you also change your 20-lmtp.conf, especially 'mail_plugins'?
Now your 'doveconf -n' shows (which seems OK to me):
protocol lmtp { mail_debug = yes mail_plugins = " notify quota acl sieve" postmaster_address = logs@xunil.at }
but in your first posting you had this:
protocol lmtp { mail_debug = yes mail_plugins = sieve postmaster_address = logs@my.tld }
I have to say that (after things broke) I disabled the whole /etc/dovecot/conf.d subdir. The "doveconf -n" you see should be completely coming from dovecot.conf alone. I did that to avoid strange interactions etc / maybe that is wrong overall, I don't know.
As far as I understand it's valid like this also.
I edited that protocol section a few times yesterday.
To me it seems as if the sieve plugin isn't activated/used reliably.
I am quite sure that we use lmtp as transport between postfix and dovecot, so that *should* work.
I suspected that leading space also that is seen often:
mail_plugins = " notify quota acl sieve"
it wouldn't be there if I write
mail_plugins = sieve
so I also tried that
And one last question: are there any log entries regarding LMTP and Sieve while delivering a new mail to a mailbox with active filters?
way too little I think
I just check one of my Bookworm systems with a quite similar setup but with the original Debian Dovecot packages:
# 2.3.19.1 (9b53102964): /etc/dovecot/dovecot.conf # Pigeonhole version 0.5.19 (4eae2f79) # OS: Linux 6.1.0-26-amd64 x86_64 Debian 12.7 ext4
and don't have any problems with Sieve - it just works.
Maybe some package is missing or some library, I don't know yet.
there is a package dovecot-sieve and dovecot-sieve-dev and a package dovecot-pigeonhole-dbg, but no package dovecot-pigeonhole itself. Maybe ok, I don't know.
I will try to correct the "sieve" parameter and see how to filter out a relevant part of the logs.
Thanks so far.
current assumption:
I mentioned adding a 2nd domain a few months ago.
This was done by editing stuff in postfixadmin and also changed things around the transports used.
Now I assume that I don't use lmtp anymore somehow ...
this is from mail.log. I send a testmail from my domain oops.co.at to an account in the problematic server:
Oct 24 10:45:21 mail2 postfix/qmgr[2703634]: 1437115F6A3: from=<office@oops.co.at>, size=1648, nrcpt=1 (queue active) Oct 24 10:45:21 mail2 postfix/smtpd[3014992]: disconnect from co.oops.co.at[45.84.138.128] ehlo=2 starttls=1 mail=1 rcpt=1 data=1 quit=1 commands=7
Oct 24 10:45:21 mail2 postfix/virtual[3020642]: 1437115F6A3: to=<stefan.weichinger@my-tld.at>, relay=virtual, delay=1.8, delays=1.8/0.01/0/0, dsn=2.0.0, status=sent (delivered to maildir) Oct 24 10:45:21 mail2 postfix/qmgr[2703634]: 1437115F6A3: removed
The relay is "virtual" ... I am digging now if the edited sql-queries somehow changed the transport for this domain.
Maybe I am completely wrong. dunno yet.
At least that would explain why sieve isn't triggered more often.
Ah, and another:
on my other server I get sieve user logs with:
sieve_user_log = /home/vmail/%d/%u/sieve/scripts/sieve_user.log
not on this machine
Am 24.10.24 um 10:56 schrieb Stefan G. Weichinger via dovecot:
current assumption:
I mentioned adding a 2nd domain a few months ago.
This was done by editing stuff in postfixadmin and also changed things around the transports used.
Now I assume that I don't use lmtp anymore somehow ...
this is from mail.log. I send a testmail from my domain oops.co.at to an account in the problematic server:
Oct 24 10:45:21 mail2 postfix/qmgr[2703634]: 1437115F6A3: from=<office@oops.co.at>, size=1648, nrcpt=1 (queue active) Oct 24 10:45:21 mail2 postfix/smtpd[3014992]: disconnect from co.oops.co.at[45.84.138.128] ehlo=2 starttls=1 mail=1 rcpt=1 data=1 quit=1 commands=7
Oct 24 10:45:21 mail2 postfix/virtual[3020642]: 1437115F6A3: to=<stefan.weichinger@my-tld.at>, relay=virtual, delay=1.8, delays=1.8/0.01/0/0, dsn=2.0.0, status=sent (delivered to maildir) Oct 24 10:45:21 mail2 postfix/qmgr[2703634]: 1437115F6A3: removed
The relay is "virtual" ... I am digging now if the edited sql-queries somehow changed the transport for this domain.
Maybe I am completely wrong. dunno yet.
that seems to be the issue
I changed the transport map only for my test box, and the vacation script in sieve is triggered.
checks around:
# postmap -q problem.tld mysql:/etc/postfix/sql/mysql_transport_maps.cf virtual
Now I am scared to overrule the transport for the whole domains ;-)
In postfix we have:
virtual_transport = lmtp:unix:private/dovecot-lmtp
That worked for years.
I will test with single mailboxes and go step by step ...
Hi Stefan,
On Thu, 24 Oct 2024 at 11:22:54AM +0200, Stefan G. Weichinger via dovecot wrote:
relay=virtual Oct 24 10:45:21 mail2 postfix/qmgr[2703634]: 1437115F6A3: removed
The relay is "virtual" ... I am digging now if the edited sql-queries somehow changed the transport for this domain.
Maybe I am completely wrong. dunno yet.
that seems to be the issue
this _is_ the issue. ;-) Thanks for the log and that's why I asked for LMTP and Sieve entries in it. If there are no such entries, then LMTP is not used and your Dovecot/Sieve setup has no effect.
In postfix we have:
virtual_transport = lmtp:unix:private/dovecot-lmtp
That worked for years.
That's still working. But if you have an entry for one/several domain(s) in the transport table, this will overrule it for them.
Regards, Markus
Am 24.10.24 um 13:50 schrieb Markus Winkler via dovecot:
Hi Stefan,
On Thu, 24 Oct 2024 at 11:22:54AM +0200, Stefan G. Weichinger via dovecot wrote:
relay=virtual Oct 24 10:45:21 mail2 postfix/qmgr[2703634]: 1437115F6A3: removed
The relay is "virtual" ... I am digging now if the edited sql-queries somehow changed the transport for this domain.
Maybe I am completely wrong. dunno yet.
that seems to be the issue
this _is_ the issue. ;-) Thanks for the log and that's why I asked for LMTP and Sieve entries in it. If there are no such entries, then LMTP is not used and your Dovecot/Sieve setup has no effect.
In postfix we have:
virtual_transport = lmtp:unix:private/dovecot-lmtp
That worked for years.
That's still working. But if you have an entry for one/several domain(s) in the transport table, this will overrule it for them.
great. We are rolling it back now.
follow up issue:
related to messing around with "sieve=" we have mailboxes with wrong or missing symlinks.
editing in roundcube doesn't always recreate that
We now have:
sieve = file:/home/vmail/%d/%u/sieve/scripts;active=/home/vmail/%d/%u/sieve/.dovecot.sieve
and I want to leave it that way to keep 99% of the users working
AFAI understand managesieve should maintain that symlink?
if I create it manually things work again
But I'd like to avoid that.
Thanks for pointers here ...
Stefan G. Weichinger via dovecot skrev den 2024-10-24 14:27:
AFAI understand managesieve should maintain that symlink?
set $(HOME) from sql, it solves more then needed possible ?
then maildir can be ~/.maildir and sieve live in ~/.sieve
if I create it manually things work again
in roundcube just set active sieve script, dont manage all in shell
On 23-10-2024 17:02, Stefan G. Weichinger via dovecot wrote:
Am 23.10.24 um 16:06 schrieb Benny Pedersen via dovecot:
Stefan G. Weichinger via dovecot skrev den 2024-10-23 09:01:
ok?
i have
sieve = file:~/.sieve;active=~/.dovecot.sieve
note the ~ char :=)
mails is here in ~/.maildir so sieve data is not in maildir home
$home for my users comes from a db query and not from /etc/passwd or so
that query should be OK as normal mailing etc works great
I changed the setting slightly:
sieve = file:/home/vmail/%d/%u/sieve/scripts;active=/home/vmail/%d/%u/sieve/.dovecot.sieve
edited filters in roundcube etc, checked symlink, looks ok
But it seems sieve isn't really working to me.
I temporarily disabled that learning stuff with rspamd and modernized the used scripts etc
Right now I have:
# 2.3.21.1 (d492236fa0): /etc/dovecot/dovecot.conf # Pigeonhole version 0.5.21.1 (49005e73) # OS: Linux 6.1.0-26-amd64 x86_64 Debian 12.7
auth_cache_size = 4 M debug_log_path = /var/log/dovecot-debug.log default_process_limit = 300 info_log_path = /var/log/dovecot-info.log listen = * log_path = /var/log/dovecot.log mail_debug = yes mail_home = /mnt/mailboxes/%d/%u mail_location = maildir:~ mail_plugins = " notify quota acl" 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 spamtest spamtestplus virustest editheader mboxmetadata servermetadata imapsieve vnd.dovecot.imapsieve namespace { inbox = yes location = prefix = separator = / type = private } namespace { location = maildir:/home/vmail/oeffentlich prefix = Oeffentlich/ separator = / subscriptions = yes type = public } passdb { args = /etc/dovecot/dovecot-sql.conf driver = sql } plugin { acl = vfile:/etc/dovecot/dovecot-acl:cache_secs=300 acl_shared_dict = file:/var/lib/dovecot/shared-mailboxes imapsieve_mailbox1_before = file:/usr/lib/dovecot/sieve/report-spam.sieve imapsieve_mailbox1_causes = COPY imapsieve_mailbox1_name = Spam imapsieve_mailbox2_before = file:/usr/lib/dovecot/sieve/report-ham.sieve imapsieve_mailbox2_causes = COPY imapsieve_mailbox2_from = Spam imapsieve_mailbox2_name = * sieve = file:/home/vmail/%d/%u/sieve/scripts;active=/home/vmail/%d/%u/sieve/.dovecot.sieve sieve_extensions = +editheader +mboxmetadata +servermetadata +spamtest +spamtestplus +virustest sieve_global_extensions = +vnd.dovecot.pipe +vnd.dovecot.debug +vnd.dovecot.environment sieve_pipe_bin_dir = /usr/lib/dovecot/sieve sieve_plugins = sieve_imapsieve sieve_extprograms sieve_spamtest_max_value = 6 sieve_spamtest_status_header = X-Spamd-Result: .*? \[([[:digit:]]+\.[[:digit:]]+) / [[:digit:]]+\.[[:digit:]]+\]; sieve_spamtest_status_type = score sieve_trace_dir = /tmp/sieve_trace/ sieve_trace_level = commands sieve_user_log = /home/vmail/%d/%u/sieve/sieve_user.log } protocols = imap sieve lmtp service auth { client_limit = 1200 unix_listener auth-client { group = postfix mode = 0660 user = postfix } unix_listener auth-userdb { mode = 0777 } user = root } service imap-login { process_min_avail = 10 } service lmtp { unix_listener /var/spool/postfix/private/dovecot-lmtp { group = postfix mode = 0660 user = postfix } } service managesieve-login { inet_listener sieve { port = 4190 } } ssl = required ssl_ca = </etc/letsencrypt/pfsense/cloud_imap_mail_smtp_LE_cert.ca ssl_cert = </etc/letsencrypt/pfsense/cloud_imap_mail_smtp_LE_cert.fullchain ssl_cipher_list = ALL:HIGH:!SSLv2:!MEDIUM:!LOW:!EXP:!RC4:!MD5:!aNULL:@STRENGTH ssl_key = # hidden, use -P to show it ssl_key_password = # hidden, use -P to show it userdb { args = /etc/dovecot/dovecot-sql.conf driver = sql } protocol lmtp { mail_debug = yes mail_plugins = " notify quota acl sieve" postmaster_address = logs@xunil.at } protocol imap { mail_debug = yes mail_max_userip_connections = 20 mail_plugins = " notify quota acl imap_sieve imap_acl" } protocol sieve { log_debug = category=sieve 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 ihave imapflags }
Hi Stefan,
I think you havent;showed us any logging yet. Can you show logging from a complete delivery starting where postfix accepts a message, until dovecot puts it in your inbox?
In my logs, I can clearly see sieve handling my incoming messages, yours should show that too. So please show us the logs for a complete transaction.
Kind regards, Tom
Am 23.10.24 um 23:39 schrieb Tom Hendrikx via dovecot:
Hi Stefan,
I think you havent;showed us any logging yet. Can you show logging from a complete delivery starting where postfix accepts a message, until dovecot puts it in your inbox?
In my logs, I can clearly see sieve handling my incoming messages, yours should show that too. So please show us the logs for a complete transaction.
I agree but I still have to figure out how to compile such a report for my test user only.
So far I am getting nearly no output of sieve.
participants (4)
-
Benny Pedersen
-
Markus Winkler
-
Stefan G. Weichinger
-
Tom Hendrikx