dovecot/documentation

add sieve_global_extensions = +editheader

Michael1969 opened this issue · 5 comments

Pigeonhole/Sieve/Extensions/Editheader page

Use global, before.dovecot.sieve

plugin {
sieve_global_extensions = +editheader
}

The example already has "sieve_extensions = +editheader" in https://doc.dovecot.org/configuration_manual/sieve/extensions/editheader/#example which works as well as a sieve_global_extensions. So I don't think anything is needed?

if you use before.dovecot.sieve file and have only sieve_extensions = +editheader enabled you will get
following error:

50-before.dovecot: line 1: error: require command: unknown Sieve capability `editheader'.
50-before.dovecot: line 7: error: unknown command 'addheader' (only reported once at first occurrence).
50-before.dovecot: error: validation failed.

I didn't know anything about sieve_global_extensions. It took me ages to figure it out.

I cannot reproduce this problem here. Which version do you use and what is your config (output from dovecot -n)?

2.3.17 (e2aa53df5b): /etc/dovecot/dovecot.conf

Pigeonhole version 0.5.17 (054dddfa)

OS: Linux 3.10.0-862.3.2.el7.x86_64 x86_64 Debian 10.10 xfs

Hostname: mailsrv.example.com

auth_mechanisms = plain login
auth_verbose_passwords = sha1:6
hostname = mailsrv.example.com
lda_mailbox_autocreate = yes
lda_mailbox_autosubscribe = yes
mail_attribute_dict = file:/var/mail/.../%n/Maildir/dovecot-attributes
mail_location = maildir:/var/mail/%d/%n
mail_max_userip_connections = 40
mail_plugins = " fts fts_solr"
mail_privileged_group = docker
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 imapflags notify vnd.dovecot.pipe vnd.dovecot.filter
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 Trash {
auto = subscribe
special_use = \Trash
}
prefix =
separator = /
type = private
}
namespace jobs {
list = yes
location = maildir:/var/mail/.../jobs:INDEXPVT=/var/mail/.../jobs/Maildir
prefix = jobs/
separator = /
subscriptions = no
type = public
}
namespace sales {
list = yes
location = maildir:/var/mail/.../sales:INDEXPVT=/var/mail/.../sales/Maildir
prefix = sales/
separator = /
subscriptions = no
type = public
}
passdb {
args = scheme=CRYPT username_format=%u /etc/dovecot/userdb
driver = passwd-file
}
plugin {
acl = vfile
acl_shared_dict = file:/var/lib/dovecot/db/shared-mailboxes.db
fts = solr
fts_autoindex = yes
fts_autoindex_exclude = \Junk
fts_autoindex_exclude2 = \Trash
fts_autoindex_exclude3 = \Spam
fts_enforced = yes
fts_solr = url=http://192.168.1.100:8983/solr/dovecot/
push_lua_url = https://example.com/dovecot_push
push_notification_driver = lua:file=/etc/dovecot/dovecot_push.lua
quota = count:User quota
quota_grace = 10%%
quota_max_mail_size = 90M
quota_rule = *:storage=0
quota_rule2 = Trash:storage=+50M
quota_status_nouser = DUNNO
quota_status_overquota = 552 5.2.2 Mailbox is full
quota_status_success = DUNNO
quota_vsizes = yes
quota_warning = storage=95%% quota-warning 95 %u %d
quota_warning2 = storage=80%% quota-warning 80 %u %d
quota_warning3 = -storage=100%% quota-warning below %u %d
sieve = ~/.dovecot.sieve
sieve_after = /usr/lib/dovecot/sieve-global/after/
sieve_before = /usr/lib/dovecot/sieve-global/before/
sieve_dir = ~/sieve
sieve_extensions = +notify +imapflags +vnd.dovecot.pipe +vnd.dovecot.filter
sieve_filter_bin_dir = /usr/lib/dovecot/sieve-filter
sieve_global_extensions = +editheader
sieve_pipe_bin_dir = /usr/lib/dovecot/sieve-pipe
sieve_plugins = sieve_extprograms
}
postmaster_address = example@micro.com
protocols = " imap lmtp sieve"
service auth {
unix_listener /var/spool/postfix/private/auth {
group = docker
mode = 0660
user = postfix
}
}
service dict {
unix_listener dict {
group = docker
mode = 0660
user = docker
}
}
service doveadm {
inet_listener http {
port = 8081
ssl = yes
}
}
service imap-login {
inet_listener imaps {
port = 993
ssl = yes
}
}
service quota-status {
client_limit = 1
executable = quota-status -p postfix
inet_listener {
port = 65265
}
}
service quota-warning {
executable = script /usr/local/bin/quota-warning.sh
unix_listener quota-warning {
group = dovecot
mode = 0660
user = dovecot
}
}
ssl = required
ssl_cert = </etc/letsencrypt/live/.../fullchain.pem
ssl_cipher_list = ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA:ECDHE-ECDSA-DES-CBC3-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:DES-CBC3-SHA:!DSS
ssl_key = # hidden, use -P to show it
ssl_min_protocol = TLSv1
ssl_prefer_server_ciphers = yes
userdb {
args = username_format=%u /etc/dovecot/userdb
default_fields = uid=docker gid=docker home=/var/mail/%d/%u
driver = passwd-file
}
protocol lmtp {
mail_plugins = acl sieve mail_lua notify push_notification push_notification_lua
}
protocol imap {
imap_metadata = yes
mail_plugins = acl imap_acl
}
protocol lda {
mail_plugins = " fts fts_solr sieve"
}
local 172.19.0.1/16 {
doveadm_password = # hidden, use -P to show it
}