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 todovecot-le...@dovecot.org