Gotcha!!!!!!!! It looks like you nailed it John! (Log and config attached)
The log looks now very different and my log entry is also shown. Now I can continue working at this point. Adjusting the events i.e. The reason was actually simple - but I spent a few evenings searching and was blind. I could have figured it out on my own! Thank you so much John for took such care of this issue!!!!! Jens imap(info@demo.example): Debug: Loading modules from directory: /usr/lib/dovecot/modules imap(info@demo.example): Debug: Module loaded: /usr/lib/dovecot/modules/lib95_imap_sieve_plugin.so imap(info@demo.example): Debug: Effective uid=10000, gid=10000, home=/var/mail/vhosts/demo.example/info imap(info@demo.example): Debug: open(/proc/self/io) failed: Permission denied imap(info@demo.example): Debug: Namespace inbox: type=private, prefix=INBOX/, sep=/, inbox=yes, hidden=no, list=yes, subscriptions=yes location=maildir:~/Maildir imap(info@demo.example): Debug: maildir++: root=/var/mail/vhosts/demo.example/info/Maildir, index=, indexpvt=, control=, inbox=/var/mail/vhosts/demo.example/info/Maildir, alt= imap(info@demo.example): Debug: Namespace : type=private, prefix=, sep=, inbox=no, hidden=yes, list=no, subscriptions=no location=fail::LAYOUT=none imap(info@demo.example): Debug: none: root=, index=, indexpvt=, control=, inbox=, alt= imap(info@demo.example): Debug: Mailbox INBOX/Junk: Mailbox opened imap(info@demo.example): Debug: imapsieve: mailbox INBOX/Junk: APPEND event imap(info@demo.example): Debug: duplicate db: Initialize imap(info@demo.example): Debug: sieve: Pigeonhole version 0.5.19 (4eae2f79) initializing imap(info@demo.example): Debug: sieve: include: sieve_global is not set; it is currently not possible to include `:global' scripts. imap(info@demo.example): Debug: sieve: Sieve imapsieve plugin for Pigeonhole version 0.5.19 (4eae2f79) loaded imap(info@demo.example): Debug: sieve: Sieve Extprograms plugin for Pigeonhole version 0.5.19 (4eae2f79) loaded imap(info@demo.example): Debug: imapsieve: Static mailbox rule [1]: mailbox=`INBOX/Junk' from=`*' causes=(COPY APPEND) => before=`file:/usr/lib/dovecot/sieve/report-spam.sieve' after=(none) imap(info@demo.example): Debug: imapsieve: Static mailbox rule [2]: mailbox=`*' from=`INBOX/Junk' causes=(COPY APPEND) => before=`file:/usr/lib/dovecot/sieve/report-ham.sieve' after=(none) imap(info@demo.example): Debug: imapsieve: Matched static mailbox rule [2] imap(info@demo.example): Debug: imapsieve: Matched static mailbox rule [1] imap(info@demo.example): Debug: sieve: file storage: Using Sieve script path: /usr/lib/dovecot/sieve/report-spam.sieve imap(info@demo.example): Debug: sieve: file storage: script: Opened script `report-spam' from `/usr/lib/dovecot/sieve/report-spam.sieve' imap(info@demo.example): Debug: sieve: file storage: Using Sieve script path: /usr/lib/dovecot/sieve/report-ham.sieve imap(info@demo.example): Debug: sieve: file storage: script: Opened script `report-ham' from `/usr/lib/dovecot/sieve/report-ham.sieve' imap(info@demo.example): Debug: Mailbox INBOX/Junk: Mailbox opened imap(info@demo.example): Debug: sieve: multi-script: Start execute sequence imap(info@demo.example): Debug: sieve: Opening script 1 of 2 from `/usr/lib/dovecot/sieve/report-spam.sieve' imap(info@demo.example): Debug: sieve: Loading script /usr/lib/dovecot/sieve/report-spam.sieve imap(info@demo.example): Debug: sieve: Script binary /usr/lib/dovecot/sieve/report-spam.svbin successfully loaded imap(info@demo.example): Debug: sieve: binary /usr/lib/dovecot/sieve/report-spam.svbin: save: not saving binary, because it is already stored imap(info@demo.example): Debug: sieve: Executing script from `/usr/lib/dovecot/sieve/report-spam.svbin' imap(info@demo.example): Debug: sieve: multi-script: Run script `/usr/lib/dovecot/sieve/report-spam.svbin' imap(info@demo.example): Debug: sieve: Started running script `/usr/lib/dovecot/sieve/report-spam.svbin' imap(info@demo.example): sieve: DEBUG: report-spam.sieve was running! imap(info@demo.example): Debug: sieve: Finished running script `/usr/lib/dovecot/sieve/report-spam.svbin' (status=ok, resource usage: no usage recorded) imap(info@demo.example): Debug: sieve: multi-script: Execute result imap(info@demo.example): Debug: sieve: uid=3: Executing result (status=ok, commit=no) imap(info@demo.example): Debug: sieve: uid=3: Starting execution of actions imap(info@demo.example): Debug: sieve: uid=3: Executing actions imap(info@demo.example): Debug: sieve: uid=3: Executing pipe action imap(info@demo.example): Debug: sieve: action pipe: running program: sa-learn-spam.sh imap(info@demo.example): Debug: program exec:/usr/lib/dovecot/sieve/sa-learn-spam.sh: Created imap(info@demo.example): Debug: program exec:/usr/lib/dovecot/sieve/sa-learn-spam.sh: Pass environment: USER=info@demo.example imap(info@demo.example): Debug: program exec:/usr/lib/dovecot/sieve/sa-learn-spam.sh: Pass environment: HOME=/var/mail/vhosts/demo.example/info imap(info@demo.example): Debug: program exec:/usr/lib/dovecot/sieve/sa-learn-spam.sh: Pass environment: HOST=ServerIV-home.demo.example imap(info@demo.example): Debug: Mailbox INBOX/Junk: UID 3: Opened mail because: mail stream imap(info@demo.example): Debug: sieve: uid=3: Finished executing pipe action (status=ok, keep=implicit) imap(info@demo.example): Debug: sieve: uid=3: Finished executing actions (status=ok, keep=implicit, executed=yes) imap(info@demo.example): Debug: sieve: uid=3: Finished executing result (no commit, status=ok, keep=yes) imap(info@demo.example): Debug: sieve: multi-script: Sequence active imap(info@demo.example): Debug: sieve: Opening script 2 of 2 from `/usr/lib/dovecot/sieve/report-ham.sieve' imap(info@demo.example): Debug: sieve: Loading script /usr/lib/dovecot/sieve/report-ham.sieve imap(info@demo.example): Debug: sieve: Script binary /usr/lib/dovecot/sieve/report-ham.svbin successfully loaded imap(info@demo.example): Debug: sieve: binary /usr/lib/dovecot/sieve/report-ham.svbin: save: not saving binary, because it is already stored imap(info@demo.example): Debug: sieve: Executing script from `/usr/lib/dovecot/sieve/report-ham.svbin' imap(info@demo.example): Debug: sieve: multi-script: Run script `/usr/lib/dovecot/sieve/report-ham.svbin' imap(info@demo.example): Debug: sieve: Started running script `/usr/lib/dovecot/sieve/report-ham.svbin' imap(info@demo.example): Debug: sieve: Finished running script `/usr/lib/dovecot/sieve/report-ham.svbin' (status=ok, resource usage: no usage recorded) imap(info@demo.example): Debug: sieve: multi-script: Execute result imap(info@demo.example): Debug: sieve: uid=3: Executing result (status=ok, commit=no) imap(info@demo.example): Debug: sieve: uid=3: Starting execution of actions imap(info@demo.example): Debug: sieve: uid=3: Executing actions imap(info@demo.example): Debug: sieve: uid=3: Executing pipe action imap(info@demo.example): Debug: sieve: action pipe: running program: sa-learn-ham.sh imap(info@demo.example): Debug: program exec:/usr/lib/dovecot/sieve/sa-learn-ham.sh: Created imap(info@demo.example): Debug: program exec:/usr/lib/dovecot/sieve/sa-learn-ham.sh: Pass environment: USER=info@demo.example imap(info@demo.example): Debug: program exec:/usr/lib/dovecot/sieve/sa-learn-ham.sh: Pass environment: HOME=/var/mail/vhosts/demo.example/info imap(info@demo.example): Debug: program exec:/usr/lib/dovecot/sieve/sa-learn-ham.sh: Pass environment: HOST=ServerIV-home.demo.example imap(info@demo.example): Debug: sieve: uid=3: Finished executing pipe action (status=ok, keep=implicit) imap(info@demo.example): Debug: sieve: uid=3: Finished executing actions (status=ok, keep=implicit, executed=yes) imap(info@demo.example): Debug: sieve: uid=3: Finished executing result (no commit, status=ok, keep=yes) imap(info@demo.example): Debug: sieve: multi-script: Sequence active imap(info@demo.example): Debug: sieve: multi-script: Finishing sequence (status=ok) imap(info@demo.example): Debug: sieve: uid=3: Executing result (status=ok, commit=yes) imap(info@demo.example): Debug: sieve: uid=3: Starting execution of actions imap(info@demo.example): Debug: sieve: uid=3: Executing actions imap(info@demo.example): Debug: sieve: uid=3: Finished executing actions (status=ok, keep=implicit, executed=yes) imap(info@demo.example): Debug: sieve: uid=3: Execute implicit keep (status=ok) imap(info@demo.example): Debug: sieve: uid=3: Start storing into mailbox INBOX/Junk imap(info@demo.example): Debug: sieve: uid=3: Executing implicit keep action imap(info@demo.example): Debug: sieve: uid=3: Execute storing into mailbox 'INBOX/Junk' imap(info@demo.example): Debug: Mailbox INBOX/Junk: Mailbox opened imap(info@demo.example): Debug: sieve: uid=3: Updated existing mail in mailbox 'INBOX/Junk' imap(info@demo.example): Debug: sieve: uid=3: Finished executing implicit keep action (status=ok) imap(info@demo.example): Debug: sieve: uid=3: Finalizing actions imap(info@demo.example): Debug: sieve: uid=3: Finalize pipe action (status=ok, action_status=ok, commit_status=ok, pre-commit=yes) imap(info@demo.example): Debug: sieve: uid=3: Commit pipe action imap(info@demo.example): Debug: program exec:/usr/lib/dovecot/sieve/sa-learn-spam.sh: Establishing connection imap(info@demo.example): Debug: program exec:/usr/lib/dovecot/sieve/sa-learn-spam.sh: Forked child process imap(info@demo.example): Debug: program exec:/usr/lib/dovecot/sieve/sa-learn-spam.sh (2120): Connected to program imap(info@demo.example): Debug: program exec:/usr/lib/dovecot/sieve/sa-learn-spam.sh (2120): Finished streaming payload to program imap(info@demo.example): Debug: program exec:/usr/lib/dovecot/sieve/sa-learn-spam.sh (2120): Finished input to program imap(info@demo.example): Debug: program exec:/usr/lib/dovecot/sieve/sa-learn-spam.sh (2120): Disconnected imap(info@demo.example): Debug: program exec:/usr/lib/dovecot/sieve/sa-learn-spam.sh (2120): Waiting for program to finish after 0 msecs (timeout = 10000 msecs) imap(info@demo.example): Debug: program exec:/usr/lib/dovecot/sieve/sa-learn-spam.sh (2120): Child process ended imap(info@demo.example): Debug: program exec:/usr/lib/dovecot/sieve/sa-learn-spam.sh (2120): Destroy imap(info@demo.example): Debug: sieve: uid=3: pipe action: piped message to program `sa-learn-spam.sh' imap(info@demo.example): Debug: sieve: uid=3: Finalize pipe action (status=ok, action_status=ok, commit_status=ok, pre-commit=yes) imap(info@demo.example): Debug: sieve: uid=3: Commit pipe action imap(info@demo.example): Debug: program exec:/usr/lib/dovecot/sieve/sa-learn-ham.sh: Establishing connection imap(info@demo.example): Debug: program exec:/usr/lib/dovecot/sieve/sa-learn-ham.sh: Forked child process imap(info@demo.example): Debug: program exec:/usr/lib/dovecot/sieve/sa-learn-ham.sh (2121): Connected to program imap(info@demo.example): Debug: program exec:/usr/lib/dovecot/sieve/sa-learn-ham.sh (2121): Finished streaming payload to program imap(info@demo.example): Debug: program exec:/usr/lib/dovecot/sieve/sa-learn-ham.sh (2121): Finished input to program imap(info@demo.example): Debug: program exec:/usr/lib/dovecot/sieve/sa-learn-ham.sh (2121): Disconnected imap(info@demo.example): Debug: program exec:/usr/lib/dovecot/sieve/sa-learn-ham.sh (2121): Waiting for program to finish after 0 msecs (timeout = 10000 msecs) imap(info@demo.example): Debug: program exec:/usr/lib/dovecot/sieve/sa-learn-ham.sh (2121): Child process ended imap(info@demo.example): Debug: program exec:/usr/lib/dovecot/sieve/sa-learn-ham.sh (2121): Destroy imap(info@demo.example): Debug: sieve: uid=3: pipe action: piped message to program `sa-learn-ham.sh' imap(info@demo.example): Debug: sieve: uid=3: Finished finalizing actions (status=ok, keep=implicit, committed=yes) imap(info@demo.example): Debug: sieve: uid=3: Finalize implicit keep (status=ok) imap(info@demo.example): Debug: sieve: uid=3: Finalize implicit keep action(status=ok, action_status=ok, commit_status=ok) imap(info@demo.example): Debug: sieve: uid=3: Commit implicit keep action imap(info@demo.example): Debug: sieve: uid=3: Commit storing into mailbox 'INBOX/Junk' imap(info@demo.example): Debug: sieve: uid=3: left message in mailbox 'INBOX/Junk' imap(info@demo.example): Debug: sieve: uid=3: Finish implicit keep action imap(info@demo.example): Debug: sieve: uid=3: Finishing actions imap(info@demo.example): Debug: sieve: uid=3: Finish pipe action imap(info@demo.example): Debug: sieve: uid=3: Finish pipe action imap(info@demo.example): Debug: sieve: uid=3: Finished executing result (final, status=ok, keep=yes) imap(info@demo.example): Debug: sieve: multi-script: Sequence finished (status=ok, keep=yes) imap(info@demo.example): Debug: sieve: multi-script: Destroy imap(info@demo.example): Debug: Mailbox INBOX/Junk: Mailbox opened imap(info@demo.example)<2107><Zu7qvEEcHyjAqB4a>: Debug: imapsieve: mailbox INBOX: FLAG event (changed flags: \Deleted) imap(info@demo.example)<2107><Zu7qvEEcHyjAqB4a>: Debug: Mailbox INBOX: UID 3: Expunge requested imap(info@demo.example)<2107><Zu7qvEEcHyjAqB4a>: Debug: Mailbox INBOX: UID 3: Mail expunged #dovecot -n # 2.3.19.1 (9b53102964): /etc/dovecot/dovecot.conf # Pigeonhole version 0.5.19 (4eae2f79) # OS: Linux 6.1.0-21-amd64 x86_64 Debian 12.5 # Hostname: ServerIV-home.demo.example auth_mechanisms = plain login mail_debug = yes mail_location = maildir:~/Maildir mail_privileged_group = mail 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 inbox { hidden = no ignore_on_failure = no inbox = yes list = yes location = mailbox Drafts { auto = subscribe special_use = \Drafts } mailbox Junk { auto = subscribe special_use = \Junk } mailbox Sent { auto = subscribe special_use = \Sent } mailbox "Sent Messages" { auto = subscribe special_use = \Sent } mailbox Trash { auto = subscribe special_use = \Trash } prefix = INBOX/ separator = / subscriptions = yes type = private } passdb { driver = pam } passdb { args = scheme=CRYPT username_format=%u /etc/dovecot/users driver = passwd-file } plugin { imapsieve_mailbox1_before = file:/usr/lib/dovecot/sieve/report-spam.sieve imapsieve_mailbox1_causes = COPY APPEND imapsieve_mailbox1_name = INBOX/Junk imapsieve_mailbox2_before = file:/usr/lib/dovecot/sieve/report-ham.sieve imapsieve_mailbox2_causes = COPY APPEND imapsieve_mailbox2_from = INBOX/Junk imapsieve_mailbox2_name = * sieve = file:~/sieve;active=~/.dovecot.sieve sieve_after = /etc/dovecot/conf.d/custom-sieve/global_after.sieve sieve_before = /etc/dovecot/conf.d/custom-sieve/global_before.sieve sieve_global_extensions = +vnd.dovecot.pipe +vnd.dovecot.environment +vnd.dovecot.debug sieve_pipe_bin_dir = /usr/lib/dovecot/sieve sieve_plugins = sieve_imapsieve sieve_extprograms } protocols = imap lmtp sieve service auth { unix_listener /var/spool/postfix/private/auth { mode = 0666 } } service lmtp { inet_listener lmtp { address = 127.0.0.1 ::1 port = 24 } } ssl_cert = </etc/dovecot/private/dovecot.pem ssl_client_ca_dir = /etc/ssl/certs ssl_dh = # hidden, use -P to show it ssl_key = # hidden, use -P to show it userdb { driver = passwd } userdb { args = username_format=%u /etc/dovecot/users driver = passwd-file } verbose_proctitle = yes protocol lmtp { mail_plugins = " sieve" } protocol imap { mail_plugins = " imap_sieve" } -----Ursprüngliche Nachricht----- Von: John Fawcett via dovecot <dovecot@dovecot.org> Gesendet: Dienstag, 2. Juli 2024 12:34 An: dovecot@dovecot.org Betreff: Re: AW: AW: AW: AW: IMAPSieve plugin will not run rspamd script Hi Jens just one update and some more insight looking at the code Your causes should be COPY APPEND (whether applying proposed solution (1) or (2). I updated inline below for solution (2). Logic for that: I was testing from Thunderbird which is generating a MOVE event. In the imapsieve plugin code MOVE and COPY are treated almost the same, so my rule with COPY fire on MOVE too. In your case the event you're getting is APPEND, but none of your rules have that as a cause so won't match even if the mailbox matches. John _______________________________________________ dovecot mailing list -- dovecot@dovecot.org To unsubscribe send an email to dovecot-le...@dovecot.org