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([email protected]): Debug: Loading modules from directory: 
/usr/lib/dovecot/modules

imap([email protected]): Debug: Module loaded: 
/usr/lib/dovecot/modules/lib95_imap_sieve_plugin.so

imap([email protected]): Debug: Effective uid=10000, gid=10000, 
home=/var/mail/vhosts/demo.example/info

imap([email protected]): Debug: open(/proc/self/io) failed: Permission denied

imap([email protected]): Debug: Namespace inbox: type=private, prefix=INBOX/, 
sep=/, inbox=yes, hidden=no, list=yes, subscriptions=yes 
location=maildir:~/Maildir

imap([email protected]): Debug: maildir++: 
root=/var/mail/vhosts/demo.example/info/Maildir, index=, indexpvt=, control=, 
inbox=/var/mail/vhosts/demo.example/info/Maildir, alt=

imap([email protected]): Debug: Namespace : type=private, prefix=, sep=, 
inbox=no, hidden=yes, list=no, subscriptions=no location=fail::LAYOUT=none

imap([email protected]): Debug: none: root=, index=, indexpvt=, control=, 
inbox=, alt=

imap([email protected]): Debug: Mailbox INBOX/Junk: Mailbox opened

imap([email protected]): Debug: imapsieve: mailbox INBOX/Junk: APPEND event

imap([email protected]): Debug: duplicate db: Initialize

imap([email protected]): Debug: sieve: Pigeonhole version 0.5.19 (4eae2f79) 
initializing

imap([email protected]): Debug: sieve: include: sieve_global is not set; it is 
currently not possible to include `:global' scripts.

imap([email protected]): Debug: sieve: Sieve imapsieve plugin for Pigeonhole 
version 0.5.19 (4eae2f79) loaded

imap([email protected]): Debug: sieve: Sieve Extprograms plugin for Pigeonhole 
version 0.5.19 (4eae2f79) loaded

imap([email protected]): 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([email protected]): 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([email protected]): Debug: imapsieve: Matched static mailbox rule [2]

imap([email protected]): Debug: imapsieve: Matched static mailbox rule [1]

imap([email protected]): Debug: sieve: file storage: Using Sieve script path: 
/usr/lib/dovecot/sieve/report-spam.sieve

imap([email protected]): Debug: sieve: file storage: script: Opened script 
`report-spam' from `/usr/lib/dovecot/sieve/report-spam.sieve'

imap([email protected]): Debug: sieve: file storage: Using Sieve script path: 
/usr/lib/dovecot/sieve/report-ham.sieve

imap([email protected]): Debug: sieve: file storage: script: Opened script 
`report-ham' from `/usr/lib/dovecot/sieve/report-ham.sieve'

imap([email protected]): Debug: Mailbox INBOX/Junk: Mailbox opened

imap([email protected]): Debug: sieve: multi-script: Start execute sequence

imap([email protected]): Debug: sieve: Opening script 1 of 2 from 
`/usr/lib/dovecot/sieve/report-spam.sieve'

imap([email protected]): Debug: sieve: Loading script 
/usr/lib/dovecot/sieve/report-spam.sieve

imap([email protected]): Debug: sieve: Script binary 
/usr/lib/dovecot/sieve/report-spam.svbin successfully loaded

imap([email protected]): Debug: sieve: binary 
/usr/lib/dovecot/sieve/report-spam.svbin: save: not saving binary, because it 
is already stored

imap([email protected]): Debug: sieve: Executing script from 
`/usr/lib/dovecot/sieve/report-spam.svbin'

imap([email protected]): Debug: sieve: multi-script: Run script 
`/usr/lib/dovecot/sieve/report-spam.svbin'

imap([email protected]): Debug: sieve: Started running script 
`/usr/lib/dovecot/sieve/report-spam.svbin'

imap([email protected]): sieve: DEBUG: report-spam.sieve was running!

imap([email protected]): Debug: sieve: Finished running script 
`/usr/lib/dovecot/sieve/report-spam.svbin' (status=ok, resource usage: no usage 
recorded)

imap([email protected]): Debug: sieve: multi-script: Execute result

imap([email protected]): Debug: sieve: uid=3: Executing result (status=ok, 
commit=no)

imap([email protected]): Debug: sieve: uid=3: Starting execution of actions

imap([email protected]): Debug: sieve: uid=3: Executing actions

imap([email protected]): Debug: sieve: uid=3: Executing pipe action

imap([email protected]): Debug: sieve: action pipe: running program: 
sa-learn-spam.sh

imap([email protected]): Debug: program 
exec:/usr/lib/dovecot/sieve/sa-learn-spam.sh: Created

imap([email protected]): Debug: program 
exec:/usr/lib/dovecot/sieve/sa-learn-spam.sh: Pass environment: 
[email protected]

imap([email protected]): Debug: program 
exec:/usr/lib/dovecot/sieve/sa-learn-spam.sh: Pass environment: 
HOME=/var/mail/vhosts/demo.example/info

imap([email protected]): Debug: program 
exec:/usr/lib/dovecot/sieve/sa-learn-spam.sh: Pass environment: 
HOST=ServerIV-home.demo.example

imap([email protected]): Debug: Mailbox INBOX/Junk: UID 3: Opened mail because: 
mail stream

imap([email protected]): Debug: sieve: uid=3: Finished executing pipe action 
(status=ok, keep=implicit)

imap([email protected]): Debug: sieve: uid=3: Finished executing actions 
(status=ok, keep=implicit, executed=yes)

imap([email protected]): Debug: sieve: uid=3: Finished executing result (no 
commit, status=ok, keep=yes)

imap([email protected]): Debug: sieve: multi-script: Sequence active

imap([email protected]): Debug: sieve: Opening script 2 of 2 from 
`/usr/lib/dovecot/sieve/report-ham.sieve'

imap([email protected]): Debug: sieve: Loading script 
/usr/lib/dovecot/sieve/report-ham.sieve

imap([email protected]): Debug: sieve: Script binary 
/usr/lib/dovecot/sieve/report-ham.svbin successfully loaded

imap([email protected]): Debug: sieve: binary 
/usr/lib/dovecot/sieve/report-ham.svbin: save: not saving binary, because it is 
already stored

imap([email protected]): Debug: sieve: Executing script from 
`/usr/lib/dovecot/sieve/report-ham.svbin'

imap([email protected]): Debug: sieve: multi-script: Run script 
`/usr/lib/dovecot/sieve/report-ham.svbin'

imap([email protected]): Debug: sieve: Started running script 
`/usr/lib/dovecot/sieve/report-ham.svbin'

imap([email protected]): Debug: sieve: Finished running script 
`/usr/lib/dovecot/sieve/report-ham.svbin' (status=ok, resource usage: no usage 
recorded)

imap([email protected]): Debug: sieve: multi-script: Execute result

imap([email protected]): Debug: sieve: uid=3: Executing result (status=ok, 
commit=no)

imap([email protected]): Debug: sieve: uid=3: Starting execution of actions

imap([email protected]): Debug: sieve: uid=3: Executing actions

imap([email protected]): Debug: sieve: uid=3: Executing pipe action

imap([email protected]): Debug: sieve: action pipe: running program: 
sa-learn-ham.sh

imap([email protected]): Debug: program 
exec:/usr/lib/dovecot/sieve/sa-learn-ham.sh: Created

imap([email protected]): Debug: program 
exec:/usr/lib/dovecot/sieve/sa-learn-ham.sh: Pass environment: 
[email protected]

imap([email protected]): Debug: program 
exec:/usr/lib/dovecot/sieve/sa-learn-ham.sh: Pass environment: 
HOME=/var/mail/vhosts/demo.example/info

imap([email protected]): Debug: program 
exec:/usr/lib/dovecot/sieve/sa-learn-ham.sh: Pass environment: 
HOST=ServerIV-home.demo.example

imap([email protected]): Debug: sieve: uid=3: Finished executing pipe action 
(status=ok, keep=implicit)

imap([email protected]): Debug: sieve: uid=3: Finished executing actions 
(status=ok, keep=implicit, executed=yes)

imap([email protected]): Debug: sieve: uid=3: Finished executing result (no 
commit, status=ok, keep=yes)

imap([email protected]): Debug: sieve: multi-script: Sequence active

imap([email protected]): Debug: sieve: multi-script: Finishing sequence 
(status=ok)

imap([email protected]): Debug: sieve: uid=3: Executing result (status=ok, 
commit=yes)

imap([email protected]): Debug: sieve: uid=3: Starting execution of actions

imap([email protected]): Debug: sieve: uid=3: Executing actions

imap([email protected]): Debug: sieve: uid=3: Finished executing actions 
(status=ok, keep=implicit, executed=yes)

imap([email protected]): Debug: sieve: uid=3: Execute implicit keep (status=ok)

imap([email protected]): Debug: sieve: uid=3: Start storing into mailbox 
INBOX/Junk

imap([email protected]): Debug: sieve: uid=3: Executing implicit keep action

imap([email protected]): Debug: sieve: uid=3: Execute storing into mailbox 
'INBOX/Junk'

imap([email protected]): Debug: Mailbox INBOX/Junk: Mailbox opened

imap([email protected]): Debug: sieve: uid=3: Updated existing mail in mailbox 
'INBOX/Junk'

imap([email protected]): Debug: sieve: uid=3: Finished executing implicit keep 
action (status=ok)

imap([email protected]): Debug: sieve: uid=3: Finalizing actions

imap([email protected]): Debug: sieve: uid=3: Finalize pipe action (status=ok, 
action_status=ok, commit_status=ok, pre-commit=yes)

imap([email protected]): Debug: sieve: uid=3: Commit pipe action

imap([email protected]): Debug: program 
exec:/usr/lib/dovecot/sieve/sa-learn-spam.sh: Establishing connection

imap([email protected]): Debug: program 
exec:/usr/lib/dovecot/sieve/sa-learn-spam.sh: Forked child process

imap([email protected]): Debug: program 
exec:/usr/lib/dovecot/sieve/sa-learn-spam.sh (2120): Connected to program

imap([email protected]): Debug: program 
exec:/usr/lib/dovecot/sieve/sa-learn-spam.sh (2120): Finished streaming payload 
to program

imap([email protected]): Debug: program 
exec:/usr/lib/dovecot/sieve/sa-learn-spam.sh (2120): Finished input to program

imap([email protected]): Debug: program 
exec:/usr/lib/dovecot/sieve/sa-learn-spam.sh (2120): Disconnected

imap([email protected]): Debug: program 
exec:/usr/lib/dovecot/sieve/sa-learn-spam.sh (2120): Waiting for program to 
finish after 0 msecs (timeout = 10000 msecs)

imap([email protected]): Debug: program 
exec:/usr/lib/dovecot/sieve/sa-learn-spam.sh (2120): Child process ended

imap([email protected]): Debug: program 
exec:/usr/lib/dovecot/sieve/sa-learn-spam.sh (2120): Destroy

imap([email protected]): Debug: sieve: uid=3: pipe action: piped message to 
program `sa-learn-spam.sh'

imap([email protected]): Debug: sieve: uid=3: Finalize pipe action (status=ok, 
action_status=ok, commit_status=ok, pre-commit=yes)

imap([email protected]): Debug: sieve: uid=3: Commit pipe action

imap([email protected]): Debug: program 
exec:/usr/lib/dovecot/sieve/sa-learn-ham.sh: Establishing connection

imap([email protected]): Debug: program 
exec:/usr/lib/dovecot/sieve/sa-learn-ham.sh: Forked child process

imap([email protected]): Debug: program 
exec:/usr/lib/dovecot/sieve/sa-learn-ham.sh (2121): Connected to program

imap([email protected]): Debug: program 
exec:/usr/lib/dovecot/sieve/sa-learn-ham.sh (2121): Finished streaming payload 
to program

imap([email protected]): Debug: program 
exec:/usr/lib/dovecot/sieve/sa-learn-ham.sh (2121): Finished input to program

imap([email protected]): Debug: program 
exec:/usr/lib/dovecot/sieve/sa-learn-ham.sh (2121): Disconnected

imap([email protected]): Debug: program 
exec:/usr/lib/dovecot/sieve/sa-learn-ham.sh (2121): Waiting for program to 
finish after 0 msecs (timeout = 10000 msecs)

imap([email protected]): Debug: program 
exec:/usr/lib/dovecot/sieve/sa-learn-ham.sh (2121): Child process ended

imap([email protected]): Debug: program 
exec:/usr/lib/dovecot/sieve/sa-learn-ham.sh (2121): Destroy

imap([email protected]): Debug: sieve: uid=3: pipe action: piped message to 
program `sa-learn-ham.sh'

imap([email protected]): Debug: sieve: uid=3: Finished finalizing actions 
(status=ok, keep=implicit, committed=yes)

imap([email protected]): Debug: sieve: uid=3: Finalize implicit keep (status=ok)

imap([email protected]): Debug: sieve: uid=3: Finalize implicit keep 
action(status=ok, action_status=ok, commit_status=ok)

imap([email protected]): Debug: sieve: uid=3: Commit implicit keep action

imap([email protected]): Debug: sieve: uid=3: Commit storing into mailbox 
'INBOX/Junk'

imap([email protected]): Debug: sieve: uid=3: left message in mailbox 
'INBOX/Junk'

imap([email protected]): Debug: sieve: uid=3: Finish implicit keep action

imap([email protected]): Debug: sieve: uid=3: Finishing actions

imap([email protected]): Debug: sieve: uid=3: Finish pipe action

imap([email protected]): Debug: sieve: uid=3: Finish pipe action

imap([email protected]): Debug: sieve: uid=3: Finished executing result (final, 
status=ok, keep=yes)

imap([email protected]): Debug: sieve: multi-script: Sequence finished 
(status=ok, keep=yes)

imap([email protected]): Debug: sieve: multi-script: Destroy

imap([email protected]): Debug: Mailbox INBOX/Junk: Mailbox opened

imap([email protected])<2107><Zu7qvEEcHyjAqB4a>: Debug: imapsieve: mailbox 
INBOX: FLAG event (changed flags: \Deleted)

imap([email protected])<2107><Zu7qvEEcHyjAqB4a>: Debug: Mailbox INBOX: UID 3: 
Expunge requested

imap([email protected])<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 <[email protected]> 
Gesendet: Dienstag, 2. Juli 2024 12:34
An: [email protected]
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 -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to