<!doctype html>
<html>
 <head> 
  <meta charset="UTF-8"> 
 </head>
 <body>
  <div>
   <br>
  </div>
  <blockquote type="cite">
   <div>
    On 19 January 2019 at 11:51 Tim Dickson via dovecot <
    <a href="mailto:dovecot@dovecot.org">dovecot@dovecot.org</a>> wrote:
   </div>
   <div>
    <br>
   </div>
   <div>
    <br>
   </div>
   <div>
    On 19/01/2019 08:01, Aki Tuomi wrote:
   </div>
   <div>
    >
   </div>
   <div>
    >> On 19 January 2019 at 02:07 Tim Dickson via dovecot <
   </div>
   <div>
    >> 
    <a href="mailto:dovecot@dovecot.org">dovecot@dovecot.org</a> <mailto:
    <a href="mailto:dovecot@dovecot.org">dovecot@dovecot.org</a>>> wrote:
   </div>
   <div>
    >>
   </div>
   <div>
    >>
   </div>
   <div>
    >> i recently upgraded a server from dovecot 2.1 to 2.3
   </div>
   <div>
    >> unfortunately sieve does not appear to be working. The user scripts have
   </div>
   <div>
    >> not changed, and neither has the dovecont config. using managesieve
   </div>
   <div>
    >> allows me to create new sieve files and setting one as default updates
   </div>
   <div>
    >> the link in ~/ to point to the correct file, but the .dovecot.svbin file
   </div>
   <div>
    >> is not changed (unless i run sievec /home/username/.dovecot.sieve )
   </div>
   <div>
    >> I have tested an out of office script that was working on the old
   </div>
   <div>
    >> system, and a simple test script that flags the mail as $label1 as per
   </div>
   <div>
    >> an example.
   </div>
   <div>
    >> email arrives in users mailboxes but sieve scripts don't appear to be
   </div>
   <div>
    >> doing anything. below is the output of doveconf -n (hostname changed for
   </div>
   <div>
    >> security)
   </div>
   <div>
    >>
   </div>
   <div>
    >> # 2.3.1 (8e2f634): /etc/dovecot/dovecot.conf
   </div>
   <div>
    >> # Pigeonhole version 0.5.1 (d9bc6dfe)
   </div>
   <div>
    >> # OS: Linux 4.19.14 x86_64 Slackware 14.2 ext4
   </div>
   <div>
    >> # Hostname: mail.myserver.net
   </div>
   <div>
    >> base_dir = /var/run/dovecot/
   </div>
   <div>
    >> debug_log_path = /var/log/dovecot.log
   </div>
   <div>
    >> default_client_limit = 6000
   </div>
   <div>
    >> default_process_limit = 1300
   </div>
   <div>
    >> hostname = mail.myserver.net
   </div>
   <div>
    >> info_log_path = /var/log/dovecot.info
   </div>
   <div>
    >> lda_mailbox_autocreate = yes
   </div>
   <div>
    >> lda_mailbox_autosubscribe = yes
   </div>
   <div>
    >> listen = 10.1.1.100
   </div>
   <div>
    >> login_greeting = Dovecot at mcfadyens.net
   </div>
   <div>
    >> login_log_format_elements = user=<%u> method=%m rip=%r lip=%l mpid=%e %c
   </div>
   <div>
    >> mail_location = maildir:/var/spool/dovecot/%n
   </div>
   <div>
    >> mail_log_prefix = "%s(%u): "
   </div>
   <div>
    >> managesieve_notify_capability = mailto
   </div>
   <div>
    >> managesieve_sieve_capability = fileinto reject envelope
   </div>
   <div>
    >> encoded-character vacation subaddress comparator-i;ascii-numeric
   </div>
   <div>
    >> relational regex imap4flags copy include variables body enotify
   </div>
   <div>
    >> environment mailbox date index ihave duplicate mime foreverypart
   </div>
   <div>
    >> extracttext
   </div>
   <div>
    >> passdb {
   </div>
   <div>
    >>   driver = shadow
   </div>
   <div>
    >> }
   </div>
   <div>
    >> plugin {
   </div>
   <div>
    >>   mail_log_events = delete undelete expunge copy mailbox_delete
   </div>
   <div>
    >> mailbox_rename
   </div>
   <div>
    >>   mail_log_fields = uid box msgid size
   </div>
   <div>
    >>   mail_log_group_events = yes
   </div>
   <div>
    >>   sieve = file:~/sieve;active=~/.dovecot.sieve
   </div>
   <div>
    >>   sieve_dir = ~/sieve
   </div>
   <div>
    >>   sieve_user_log = ~/.dovecot.sieve.log
   </div>
   <div>
    >> }
   </div>
   <div>
    >> protocols = imap lmtp sieve
   </div>
   <div>
    >> service managesieve-login {
   </div>
   <div>
    >>   inet_listener sieve {
   </div>
   <div>
    >>     port = 4190
   </div>
   <div>
    >>   }
   </div>
   <div>
    >>   service_count = 0
   </div>
   <div>
    >>   vsz_limit = 128 M
   </div>
   <div>
    >> }
   </div>
   <div>
    >> ssl = required
   </div>
   <div>
    >> ssl_cert = </etc/ssl/certs/dovecot.cert
   </div>
   <div>
    >> ssl_dh =  # hidden, use -P to show it
   </div>
   <div>
    >> ssl_key =  # hidden, use -P to show it
   </div>
   <div>
    >> userdb {
   </div>
   <div>
    >>   driver = passwd
   </div>
   <div>
    >> }
   </div>
   <div>
    >> protocol lda {
   </div>
   <div>
    >>   mail_plugins = " sieve"
   </div>
   <div>
    >> }
   </div>
   <div>
    >> protocol lmtp {
   </div>
   <div>
    >>   mail_plugins = " sieve"
   </div>
   <div>
    >> }
   </div>
   <div>
    >> protocol imap {
   </div>
   <div>
    >>   mail_max_userip_connections = 30
   </div>
   <div>
    >> }
   </div>
   <div>
    >>
   </div>
   <div>
    >> Any pointers on what might be wrong or how to test would be appreciated,
   </div>
   <div>
    >> thanks, Tim
   </div>
   <div>
    >> (the os is 64bit slackware 14.2, in case it is relevant)
   </div>
   <div>
    >
   </div>
   <div>
    >
   </div>
   <blockquote type="cite">
    <div>
     Can you turn on mail_debug=yes and provide logs of delivery?
    </div>
    <div>
     ---
    </div>
    <div>
     Aki Tuomi
    </div>
   </blockquote>
   <div>
    relevant info from /var/log/dovecot.info (domain changed for privacy)
   </div>
   <div>
    <br>
   </div>
   <div>
    Jan 19 09:26:58 master: Info: Dovecot v2.3.1 (8e2f634) starting up for
   </div>
   <div>
    imap, lmtp, sieve (core dumps disabled)
   </div>
   <div>
    Jan 19 09:27:09 lda(tim): Info:
   </div>
   <div>
    msgid=<
    <a href="mailto:c35e8888-bcb4-0b26-9e9e-e16d60f20b01@mydomain.net">c35e8888-bcb4-0b26-9e9e-e16d60f20b01@mydomain.net</a>>: saved mail to
   </div>
   <div>
    INBOX
   </div>
   <div>
    <br>
   </div>
   <div>
    relevant info from /var/log/dovecot.log (domain changed for privacy)
   </div>
   <div>
    <br>
   </div>
   <div>
    Jan 19 09:27:09 lda(tim): Debug: Loading modules from directory:
   </div>
   <div>
    /usr/lib64/dovecot
   </div>
   <div>
    Jan 19 09:27:09 lda(tim): Debug: Module loaded:
   </div>
   <div>
    /usr/lib64/dovecot/lib90_sieve_plugin.so
   </div>
   <div>
    Jan 19 09:27:09 lda(tim): Debug: auth USER input: tim
   </div>
   <div>
    system_groups_user=tim uid=1003 gid=100 home=/home/tim
   </div>
   <div>
    Jan 19 09:27:09 lda(tim): Debug: Effective uid=1003, gid=100, home=/home/tim
   </div>
   <div>
    Jan 19 09:27:09 lda(tim): Debug: maildir++: root=/var/spool/dovecot/tim,
   </div>
   <div>
    index=, indexpvt=, control=, inbox=/var/spool/dovecot/tim, alt=
   </div>
   <div>
    Jan 19 09:27:09 lda(tim): Debug: none: root=, index=, indexpvt=,
   </div>
   <div>
    control=, inbox=, alt=
   </div>
   <div>
    Jan 19 09:27:09 lda(tim): Debug: Destination address:
   </div>
   <div>
    <
    <a href="mailto:tim@mail.myserver.net">tim@mail.myserver.net</a>> (source: user@hostname)
   </div>
   <div>
    Jan 19 09:27:09 lda(tim): Debug: sieve: Pigeonhole version 0.5.1
   </div>
   <div>
    (d9bc6dfe) initializing
   </div>
   <div>
    Jan 19 09:27:09 lda(tim): Debug: sieve: include: sieve_global is not
   </div>
   <div>
    set; it is currently not possible to include `:global' scripts.
   </div>
   <div>
    Jan 19 09:27:09 lda(tim): Debug: sieve: file storage: Using active Sieve
   </div>
   <div>
    script path: /home/tim/.dovecot.sieve
   </div>
   <div>
    Jan 19 09:27:09 lda(tim): Debug: sieve: file storage: Using script
   </div>
   <div>
    storage path: /home/tim/sieve
   </div>
   <div>
    Jan 19 09:27:09 lda(tim): Debug: sieve: file storage: Relative path to
   </div>
   <div>
    sieve storage in active link: sieve/
   </div>
   <div>
    Jan 19 09:27:09 lda(tim): Debug: sieve: file storage: Using Sieve script
   </div>
   <div>
    path: /home/tim/.dovecot.sieve
   </div>
   <div>
    Jan 19 09:27:09 lda(tim): Debug: sieve: file script: Opened script
   </div>
   <div>
    `test' from `/home/tim/.dovecot.sieve'
   </div>
   <div>
    Jan 19 09:27:09 lda(tim): Debug: sieve: Using the following location for
   </div>
   <div>
    user's Sieve script: /home/tim/.dovecot.sieve
   </div>
   <div>
    Jan 19 09:27:09 lda(tim): Debug: Mailbox stdin: Opened mail UID=1
   </div>
   <div>
    because: header Return-Path (Cache file is unusable)
   </div>
   <div>
    Jan 19 09:27:09 lda(tim): Debug: INBOX: Mailbox opened because: lib-lda
   </div>
   <div>
    delivery
   </div>
   <div>
    Jan 19 09:27:09 lda(tim): Debug: Mailbox stdin: Opened mail UID=1
   </div>
   <div>
    because: copying
   </div>
   <div>
    Jan 19 09:27:09 imap(heather): Debug: Effective uid=1002, gid=100,
   </div>
   <div>
    home=/home/heather
   </div>
   <div>
    Jan 19 09:27:09 imap(heather): Debug: maildir++:
   </div>
   <div>
    root=/var/spool/dovecot/heather, index=, indexpvt=, control=,
   </div>
   <div>
    inbox=/var/spool/dovecot/heather, alt=
   </div>
   <div>
    Jan 19 09:27:09 imap(heather): Debug: Sent: Mailbox opened because: append
   </div>
   <div>
    Jan 19 09:27:10 imap(heather): Debug: Effective uid=1002, gid=100,
   </div>
   <div>
    home=/home/heather
   </div>
   <div>
    Jan 19 09:27:10 imap(heather): Debug: maildir++:
   </div>
   <div>
    root=/var/spool/dovecot/heather, index=, indexpvt=, control=,
   </div>
   <div>
    inbox=/var/spool/dovecot/heather, alt=
   </div>
   <div>
    Jan 19 09:27:10 imap(heather): Debug: Sent: Mailbox opened because: SELECT
   </div>
   <div>
    <br>
   </div>
   <div>
    As you can see, the test was sending a mail from user heather to user
   </div>
   <div>
    tim on the same server (for speed). The mail arrived at tim mailbox, but
   </div>
   <div>
    no actions appear to have been taken. I can provide more info if needed.
   </div>
   <div>
    The only thing I have edited (for privacy) in the logs is the server
   </div>
   <div>
    domain name.
   </div>
   <div>
    <br>
   </div>
  </blockquote>
  <div>
   Can you share the script too?
  </div>
  <div class="io-ox-signature">
   ---
   <br>Aki Tuomi
  </div> 
 </body>
</html>