On 19/01/2019 08:01, Aki Tuomi wrote:

On 19 January 2019 at 02:07 Tim Dickson via dovecot < dovecot@dovecot.org> wrote:


i recently upgraded a server from dovecot 2.1 to 2.3
unfortunately sieve does not appear to be working. The user scripts have
not changed, and neither has the dovecont config. using managesieve
allows me to create new sieve files and setting one as default updates
the link in ~/ to point to the correct file, but the .dovecot.svbin file
is not changed (unless i run sievec /home/username/.dovecot.sieve )
I have tested an out of office script that was working on the old
system, and a simple test script that flags the mail as $label1 as per
an example.
email arrives in users mailboxes but sieve scripts don't appear to be
doing anything. below is the output of doveconf -n (hostname changed for
security)

# 2.3.1 (8e2f634): /etc/dovecot/dovecot.conf
# Pigeonhole version 0.5.1 (d9bc6dfe)
# OS: Linux 4.19.14 x86_64 Slackware 14.2 ext4
# Hostname: mail.myserver.net
base_dir = /var/run/dovecot/
debug_log_path = /var/log/dovecot.log
default_client_limit = 6000
default_process_limit = 1300
hostname = mail.myserver.net
info_log_path = /var/log/dovecot.info
lda_mailbox_autocreate = yes
lda_mailbox_autosubscribe = yes
listen = 10.1.1.100
login_greeting = Dovecot at mcfadyens.net
login_log_format_elements = user=<%u> method=%m rip=%r lip=%l mpid=%e %c
mail_location = maildir:/var/spool/dovecot/%n
mail_log_prefix = "%s(%u): "
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
passdb {
  driver = shadow
}
plugin {
  mail_log_events = delete undelete expunge copy mailbox_delete
mailbox_rename
  mail_log_fields = uid box msgid size
  mail_log_group_events = yes
  sieve = file:~/sieve;active=~/.dovecot.sieve
  sieve_dir = ~/sieve
  sieve_user_log = ~/.dovecot.sieve.log
}
protocols = imap lmtp sieve
service managesieve-login {
  inet_listener sieve {
    port = 4190
  }
  service_count = 0
  vsz_limit = 128 M
}
ssl = required
ssl_cert = </etc/ssl/certs/dovecot.cert
ssl_dh =  # hidden, use -P to show it
ssl_key =  # hidden, use -P to show it
userdb {
  driver = passwd
}
protocol lda {
  mail_plugins = " sieve"
}
protocol lmtp {
  mail_plugins = " sieve"
}
protocol imap {
  mail_max_userip_connections = 30
}

Any pointers on what might be wrong or how to test would be appreciated,
thanks, Tim
(the os is 64bit slackware 14.2, in case it is relevant)


Can you turn on mail_debug=yes and provide logs of delivery?
---
Aki Tuomi
relevant info from /var/log/dovecot.info (domain changed for privacy)

Jan 19 09:26:58 master: Info: Dovecot v2.3.1 (8e2f634) starting up for imap, lmtp, sieve (core dumps disabled)
Jan 19 09:27:09 lda(tim): Info: msgid=<c35e8888-bcb4-0b26-9e9e-e16d60f20b01@mydomain.net>: saved mail to INBOX

relevant info from /var/log/dovecot.log (domain changed for privacy)

Jan 19 09:27:09 lda(tim): Debug: Loading modules from directory: /usr/lib64/dovecot
Jan 19 09:27:09 lda(tim): Debug: Module loaded: /usr/lib64/dovecot/lib90_sieve_plugin.so
Jan 19 09:27:09 lda(tim): Debug: auth USER input: tim system_groups_user=tim uid=1003 gid=100 home=/home/tim
Jan 19 09:27:09 lda(tim): Debug: Effective uid=1003, gid=100, home=/home/tim
Jan 19 09:27:09 lda(tim): Debug: maildir++: root=/var/spool/dovecot/tim, index=, indexpvt=, control=, inbox=/var/spool/dovecot/tim, alt=
Jan 19 09:27:09 lda(tim): Debug: none: root=, index=, indexpvt=, control=, inbox=, alt=
Jan 19 09:27:09 lda(tim): Debug: Destination address: <tim@mail.myserver.net> (source: user@hostname)
Jan 19 09:27:09 lda(tim): Debug: sieve: Pigeonhole version 0.5.1 (d9bc6dfe) initializing
Jan 19 09:27:09 lda(tim): Debug: sieve: include: sieve_global is not set; it is currently not possible to include `:global' scripts.
Jan 19 09:27:09 lda(tim): Debug: sieve: file storage: Using active Sieve script path: /home/tim/.dovecot.sieve
Jan 19 09:27:09 lda(tim): Debug: sieve: file storage: Using script storage path: /home/tim/sieve
Jan 19 09:27:09 lda(tim): Debug: sieve: file storage: Relative path to sieve storage in active link: sieve/
Jan 19 09:27:09 lda(tim): Debug: sieve: file storage: Using Sieve script path: /home/tim/.dovecot.sieve
Jan 19 09:27:09 lda(tim): Debug: sieve: file script: Opened script `test' from `/home/tim/.dovecot.sieve'
Jan 19 09:27:09 lda(tim): Debug: sieve: Using the following location for user's Sieve script: /home/tim/.dovecot.sieve
Jan 19 09:27:09 lda(tim): Debug: Mailbox stdin: Opened mail UID=1 because: header Return-Path (Cache file is unusable)
Jan 19 09:27:09 lda(tim): Debug: INBOX: Mailbox opened because: lib-lda delivery
Jan 19 09:27:09 lda(tim): Debug: Mailbox stdin: Opened mail UID=1 because: copying
Jan 19 09:27:09 imap(heather): Debug: Effective uid=1002, gid=100, home=/home/heather
Jan 19 09:27:09 imap(heather): Debug: maildir++: root=/var/spool/dovecot/heather, index=, indexpvt=, control=, inbox=/var/spool/dovecot/heather, alt=
Jan 19 09:27:09 imap(heather): Debug: Sent: Mailbox opened because: append
Jan 19 09:27:10 imap(heather): Debug: Effective uid=1002, gid=100, home=/home/heather
Jan 19 09:27:10 imap(heather): Debug: maildir++: root=/var/spool/dovecot/heather, index=, indexpvt=, control=, inbox=/var/spool/dovecot/heather, alt=
Jan 19 09:27:10 imap(heather): Debug: Sent: Mailbox opened because: SELECT

As you can see, the test was sending a mail from user heather to user tim on the same server (for speed). The mail arrived at tim mailbox, but no actions appear to have been taken. I can provide more info if needed. The only thing I have edited (for privacy) in the logs is the server domain name.