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, gao@mydomain.com): Debug: sieve: Pigeonhole version 0.4.2 initializing Nov 9 15:23:09 mail dovecot: lmtp(11182, gao@mydomain.com): 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 = postmaster@mydomain.com } protocol imap { mail_plugins = " quota imap_quota" } protocol sieve { managesieve_implementation_string = Dovecot Pigeonhole managesieve_max_compile_errors = 5 managesieve_max_line_length = 65536 }