Hi John!

You are of course absolutely right - wild experimentation is rarely a good 
approach. But you are surely familiar with the situation when you have done 
everything logical and then, in your desperation, you start to change things 
that you would not otherwise change ;)

I've actually gotten to the point where I'm going to give up on the idea and 
run a cron job at night. Then the spam won't be detected in real time - but 
what the heck?

As I wrote yesterday, I implemented a very popular tutorial for Debian 10 in 
Germany 1:1. The result was the same. Nevertheless, I reset my VM, where I do 
everything with the current releases, and attaching the log here. I would be 
very happy if it still works.

To be sure, I deleted the whole inbox and recreated the account on Outlook to 
create a fresh, new folder structure given by the Dovecot configuration. I also 
added the plugin vnd.dovecot.debug to the sieve_global_extensions line and 
added >debug_log "report-spam.sieve was running!";< to the report-spam.sieve 
file. So this string should appear in the log if the script were running at 
all. But it doesn't. So I still guess, it's not getting triggered.

That's the log if I move a mail from Junk (Spam) to Inbox:

# journalctl -u dovecot -f
imap-login: Login: user=<[email protected]>, method=PLAIN, rip=192.168.30.26, 
lip=192.168.30.34, mpid=1827, TLS, session=<dJVhwj4cJP3AqB4a>
imap([email protected])<1827><dJVhwj4cJP3AqB4a>: Debug: Loading modules from 
directory: /usr/lib/dovecot/modules
imap([email protected])<1827><dJVhwj4cJP3AqB4a>: Debug: Module loaded: 
/usr/lib/dovecot/modules/lib95_imap_sieve_plugin.so
imap([email protected])<1827><dJVhwj4cJP3AqB4a>: Debug: Effective uid=10000, 
gid=10000, home=/var/mail/vhosts/demo.example/info
imap([email protected])<1827><dJVhwj4cJP3AqB4a>: Debug: open(/proc/self/io) 
failed: Permission denied
imap([email protected])<1827><dJVhwj4cJP3AqB4a>: Debug: Namespace inbox: 
type=private, prefix=INBOX/, sep=/, inbox=yes, hidden=no, list=yes, 
subscriptions=yes location=maildir:~/Maildir
imap([email protected])<1827><dJVhwj4cJP3AqB4a>: 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])<1827><dJVhwj4cJP3AqB4a>: Debug: Namespace : 
type=private, prefix=, sep=, inbox=no, hidden=yes, list=no, subscriptions=no 
location=fail::LAYOUT=none
imap([email protected])<1827><dJVhwj4cJP3AqB4a>: Debug: none: root=, index=, 
indexpvt=, control=, inbox=, alt=
imap([email protected])<1827><dJVhwj4cJP3AqB4a>: Debug: Mailbox INBOX/Junk: 
Mailbox opened
imap([email protected])<1827><dJVhwj4cJP3AqB4a>: Debug: imapsieve: mailbox 
INBOX/Junk: APPEND event
imap([email protected])<1827><dJVhwj4cJP3AqB4a>: Debug: duplicate db: Initialize
imap([email protected])<1827><dJVhwj4cJP3AqB4a>: Debug: sieve: Pigeonhole 
version 0.5.19 (4eae2f79) initializing
imap([email protected])<1827><dJVhwj4cJP3AqB4a>: Debug: sieve: include: 
sieve_global is not set; it is currently not possible to include `:global' 
scripts.
imap([email protected])<1827><dJVhwj4cJP3AqB4a>: Debug: sieve: Sieve imapsieve 
plugin for Pigeonhole version 0.5.19 (4eae2f79) loaded
imap([email protected])<1827><dJVhwj4cJP3AqB4a>: Debug: sieve: Sieve 
Extprograms plugin for Pigeonhole version 0.5.19 (4eae2f79) loaded
imap([email protected])<1827><dJVhwj4cJP3AqB4a>: Debug: imapsieve: Static 
mailbox rule [1]: mailbox=`Junk' from=`*' causes=(COPY) => 
before=`file:/usr/lib/dovecot/sieve/report-spam.sieve' after=(none)
imap([email protected])<1827><dJVhwj4cJP3AqB4a>: Debug: imapsieve: Static 
mailbox rule [2]: mailbox=`*' from=`Junk' causes=(COPY) => 
before=`file:/usr/lib/dovecot/sieve/report-ham.sieve' after=(none)
imap([email protected])<1827><dJVhwj4cJP3AqB4a>: Debug: Mailbox INBOX/Junk: 
Mailbox opened
imap([email protected])<1825><zjYMvz4c/PzAqB4a>: Debug: imapsieve: mailbox 
INBOX: FLAG event (changed flags: \Deleted)
imap([email protected])<1825><zjYMvz4c/PzAqB4a>: Debug: Mailbox INBOX: UID 1: 
Expunge requested
imap([email protected])<1825><zjYMvz4c/PzAqB4a>: Debug: Mailbox INBOX: UID 1: 
Mail expunged

# doveconf -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
  imapsieve_mailbox1_name = Junk
  imapsieve_mailbox2_before = file:/usr/lib/dovecot/sieve/report-ham.sieve
  imapsieve_mailbox2_causes = COPY
  imapsieve_mailbox2_from = 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: Montag, 1. Juli 2024 23:16
An: [email protected]
Betreff: Re: AW: AW: AW: IMAPSieve plugin will not run rspamd script

Hi Jens

changing random things is rarely a good way to solve these kinds of issues. My 
advice, if you don't need the inbox namespace prefix set for a specific reason, 
would be to go with the default prefix (ie. blank) and then set up the 
imapsieve rules as per your original post and repeat the test. If that does not 
work then post the debug logging and configuration from that test.

There could be multiple places where this is failing but the very first point 
is to have your sieve rules match. They will show something like the following 
in the logging. Notice the "Matched static mailbox rule" 
message. If that is not happening it's pointless to look further down the line 
into issues in the scripts themselves.

Jul 01 22:57:55 imola.site24.it dovecot[1145722]: 
imap([email protected])<1145777><mlKa2TUccLdOhguc>: Debug: imapsieve: mailbox 
INBOX: MOVE event
Jul 01 22:57:55 imola.site24.it dovecot[1145722]: 
imap([email protected])<1145777><mlKa2TUccLdOhguc>: Debug: Mailbox Spam: UID 2: 
Expunge requested
Jul 01 22:57:55 imola.site24.it dovecot[1145722]: 
imap([email protected])<1145777><mlKa2TUccLdOhguc>: Debug: duplicate db: Initialize
Jul 01 22:57:55 imola.site24.it dovecot[1145722]: 
imap([email protected])<1145777><mlKa2TUccLdOhguc>: Debug: sieve: Pigeonhole 
version 0.5.21 (f6cd4b8e) initializing
Jul 01 22:57:55 imola.site24.it dovecot[1145722]: 
imap([email protected])<1145777><mlKa2TUccLdOhguc>: Debug: sieve: include: 
sieve_global is not set; it is currently not possible to include `:global' 
scripts.
Jul 01 22:57:55 imola.site24.it dovecot[1145722]: 
imap([email protected])<1145777><mlKa2TUccLdOhguc>: Debug: sieve: Sieve imapsieve 
plugin for Pigeonhole version 0.5.21 (f6cd4b8e) loaded
Jul 01 22:57:55 imola.site24.it dovecot[1145722]: 
imap([email protected])<1145777><mlKa2TUccLdOhguc>: Debug: sieve: Sieve 
Extprograms plugin for Pigeonhole version 0.5.21 (f6cd4b8e) loaded
Jul 01 22:57:55 imola.site24.it dovecot[1145722]: 
imap([email protected])<1145777><mlKa2TUccLdOhguc>: Debug: imapsieve: Static 
mailbox rule [1]: mailbox=`Spam' from=`*' causes=(COPY) => 
before=`file:/usr/lib/dovecot/sieve/report-spam.sieve' after=(none)
Jul 01 22:57:55 imola.site24.it dovecot[1145722]: 
imap([email protected])<1145777><mlKa2TUccLdOhguc>: Debug: imapsieve: Static 
mailbox rule [2]: mailbox=`*' from=`Spam' causes=(COPY APPEND) => 
before=`file:/usr/lib/dovecot/sieve/report-ham.sieve' after=(none)
Jul 01 22:57:55 imola.site24.it dovecot[1145722]: 
imap([email protected])<1145777><mlKa2TUccLdOhguc>: Debug: imapsieve: Matched 
static mailbox rule [2]

As for Debian, sorry I can't help on that, I'm using Fedora :-)

John

_______________________________________________
dovecot mailing list -- [email protected] To unsubscribe send an email to 
[email protected]

_______________________________________________
dovecot mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to