Set the sieve_global_dir like this.
/etc/dovecot/conf.d/99-mystuff.conf:
.
.
plugin {
  sieve                 = ~/Maildir/dovecot.sieve
  sieve_dir             = ~/Maildir/sieve
  sieve_global_dir      = /etc/dovecot/sieve/global/
  sieve_before          = /etc/dovecot/sieve/before.d/
#  sieve_before2        =
#  sieve_before3        =
  sieve_after           = /etc/dovecot/sieve/after.d/
#  sieve_after2         =
#  sieve_after3         =

  fts                   = lucene
  fts_lucene            = whitespace_chars=@.
}

Permissions:
drwxr-xr-x. 174 root root system_u:object_r:etc_t:s0         12288 Nov  9 11:43 
/etc
drwxr-xr-x.   4 root root system_u:object_r:dovecot_etc_t:s0    95 Apr 28  2016 
/etc/dovecot
drwxr-xr-x.   5 root root system_u:object_r:dovecot_etc_t:s0    64 Jul 13  2015 
/etc/dovecot/sieve
drwxr-xr-x.   2 root root system_u:object_r:dovecot_etc_t:s0    10 Jul 13  2015 
/etc/dovecot/sieve/global

Since this directory is read-only to all but root, pre-complie your scripts 
with 'sievec'.

Bill


On 11/9/2017 6:39 PM, Gao wrote:
Hello,
I am building a new server on CentOS 7 and the global sieve filter can not be 
loaded. The debug shows:
Nov  9 15:23:09 mail dovecot: lmtp(11182, [email protected]): Debug: sieve: 
Pigeonhole version 0.4.2 initializing
Nov  9 15:23:09 mail dovecot: lmtp(11182, [email protected]): Debug: sieve: include: sieve_global_dir is not set; it is currently not possible to include `:global' scripts.

The pigeonhole version:
# yum list dovecot-pigeonhole
dovecot-pigeonhole.x86_64 1:2.2.10-8.el7

I googled and got confused on how to make sieve point to the correct global filter (which I want auto deliver spams to Junk folder). So what is the correct setting?

Thanks in advance.

Gao




Here is my doveconf -n output:
-----------------------------------------------------------
[root@mail ~]# doveconf -n
# 2.2.10: /etc/dovecot/dovecot.conf
# OS: Linux 3.10.0-693.5.2.el7.x86_64 x86_64 CentOS Linux release 7.4.1708 
(Core)  xfs
auth_mechanisms = plain login cram-md5
first_valid_gid = 5000
first_valid_uid = 5000
last_valid_gid = 5000
last_valid_uid = 5000
listen = *
mail_debug = yes
mail_gid = 5000
mail_location = maildir:/home/vmail/%d/%n/:INDEX=/home/vmail/%d/%n/indexes
mail_plugins = " quota"
mail_uid = 5000
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 ihave
mbox_write_locks = fcntl
namespace inbox {
  inbox = 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" {
    special_use = \Sent
  }
  mailbox Trash {
    auto = subscribe
    special_use = \Trash
  }
  prefix =
}
passdb {
  args = /etc/dovecot/conf.d/dovecot-mysql.conf.ext
  driver = sql
}
plugin {
  quota = maildir:User quota
  quota_exceeded_message = ERROR:422 - Mailbox full, sorry.
  quota_rule = Junk:ignore
  quota_rule2 = Trash:storage=+100M
  quota_warning = storage=90%% quota-warning 90 %u %d
  quota_warning2 = storage=80%% quota-warning 80 %u %d
  sieve = ~/sieve/.dovecot.sieve
  sieve_dir = ~/sieve
  sieve_global_path = /home/vmail/sieve/globalfilter.sieve
  sieve_max_script_size = 1M
  sievedir = ~/sieve
}
protocols = imap pop3 lmtp sieve
service auth {
  unix_listener /var/spool/postfix/private/auth {
    group = vmail
    mode = 0666
    user = vmail
  }
}
service imap-login {
  inet_listener imap {
    port = 143
  }
  inet_listener imaps {
    port = 993
    ssl = yes
  }
}
service lmtp {
  unix_listener /var/spool/postfix/private/dovecot-lmtp {
    group = postfix
    mode = 0600
    user = postfix
  }
}
service managesieve-login {
  inet_listener sieve {
    port = 4190
  }
  process_min_avail = 0
  service_count = 1
  vsz_limit = 64 M
}
service pop3-login {
  inet_listener pop3 {
    port = 110
  }
  inet_listener pop3s {
    port = 995
    ssl = yes
  }
}
service quota-warning {
  executable = script /usr/local/bin/overquota.sh
  group = vmail
  unix_listener quota-warning {
    group = vmail
    user = vmail
  }
  user = vmail
}
ssl = required
ssl_cert = </etc/letsencrypt/live/mydomain.com/fullchain.pem
ssl_cipher_list = EECDH+ECDSA+AESGCM:EECDH+aRSA+AESGCM:EECDH+ECDSA+SHA384:EECDH+ECDSA+SHA256:EECDH+aRSA+SHA384:EECDH+aRSA+SHA256:EECDH+aRSA+RC4:EECDH:EDH+aRSA:!aNULL:!eNULL:!LOW:!3DES:!MD5:!EXP:!PSK:!SRP:!DSS:!RC4
ssl_key = </etc/letsencrypt/live/mydomain.com/privkey.pem
ssl_prefer_server_ciphers = yes
ssl_protocols = !SSLv2 !SSLv3
userdb {
  args = /etc/dovecot/conf.d/dovecot-mysql.conf.ext
  driver = sql
}
protocol lmtp {
  mail_plugins = " quota sieve"
  postmaster_address = [email protected]
}
protocol imap {
  mail_plugins = " quota imap_quota"
}
protocol sieve {
  managesieve_implementation_string = Dovecot Pigeonhole
  managesieve_max_compile_errors = 5
  managesieve_max_line_length = 65536
}

Reply via email to