On Jun 12, 2021, at 5:16 AM, Stephan Bosch <step...@rename-it.nl> wrote: >> I can see that my sieve_before script successfully sends the message off to >> spamc/spamd - however the message ends up in my mailbox with only the >> pre-existing X-Spam headers (I had expected them to be replaced or to see >> duplicates). I thought I'd try to just strip them from incoming mail so I >> used deleteheader, I got a trace saying it matches and deletes the headers, >> then sends the mail off to spamc/spamd - but the message that ends up in my >> mailbox has the headers that were presumably deleted. > > I cannot reproduce this with master. Keep and implicit keep act the same. My > filter program successfully changes the message and the deleteheader commands > properly drop the indicated headers. > > What version is this? What is your configuration (output from `dovecot -n`)
My before script sends to spamc or does deleteheader (as noted) but user script does: # rule:[mailman lists with mailboxes] if allof( header :matches "List-Id" "*<*.*", mailboxexists "${2}" ) { fileinto "${2}"; stop; } # rule:[discard duplicates] if duplicate { discard; } keep; I don't see header problems in mail that ends up ina fileinto'd mailbox, just my INBOX - I suspect it's interaction with the 'duplicate' implementation (which the RFC says operates on the original un-modified message). dovecot -n output below - # 2.3.14 (cee3cbc0d): /usr/local/etc/dovecot/dovecot.conf # Pigeonhole version 0.5.14 (1b5c82b2) # OS: Darwin 20.5.0 x86_64 # Hostname: vroomfondel.geeklair.net auth_username_format = %Ln auth_verbose = yes default_internal_group = mail default_internal_user = _dovecot default_login_user = _dovenull first_valid_gid = 500 first_valid_uid = 501 last_valid_gid = 599 last_valid_uid = 599 login_greeting = geeklair.net mail ready. mail_location = mbox:~/Mail/:INBOX=~/.mbox:INDEX=~/.dovecot-indexes mail_plugins = fts fts_lucene zlib 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 namespace { inbox = yes location = mailbox Drafts { auto = no special_use = \Drafts } mailbox Sent { auto = subscribe special_use = \Sent } mailbox Trash { auto = no special_use = \Trash } mailbox spam { auto = create special_use = \Junk } prefix = separator = / } namespace archive { inbox = no list = no location = mbox:~/MailArchive/ prefix = "#Archive/" separator = / } passdb { args = dovecot driver = pam } plugin { fts = lucene fts_autoindex = yes fts_autoindex_exclude = "#Archive/*" fts_lucene = whitespace_chars=@. recipient_delimiter = + sieve = file:~/.sieve;active=~/.dovecot.sieve sieve_before = /usr/local/etc/dovecot/sieve/before.sieve sieve_default = /usr/local/etc/dovecot/sieve/default.sieve sieve_default_name = file_spam sieve_filter_bin_dir = /usr/local/lib/dovecot/sieve-filter sieve_filter_exec_timeout = 720s sieve_global_extensions = +vnd.dovecot.filter +editheader sieve_plugins = sieve_extprograms } protocols = imap pop3 lmtp sieve service auth { unix_listener /usr/local/var/spool/postfix/private/auth { group = _postfix mode = 0660 user = _postfix } user = root } service imap-login { inet_listener imaps { port = 993 ssl = yes } process_min_avail = 1 service_count = 0 } service imap { vsz_limit = 512 M } service lmtp { unix_listener /usr/local/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 = 0 vsz_limit = 64 M } service managesieve { process_limit = 12 } service pop3-login { inet_listener pop3 { port = 0 } inet_listener pop3s { port = 995 ssl = yes } process_min_avail = 1 service_count = 0 } service pop3 { vsz_limit = 512 M } ssl_cert = </opt/local/etc/letsencrypt/live/geeklair.net/fullchain.pem ssl_cipher_list = ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA ssl_dh = # hidden, use -P to show it ssl_key = # hidden, use -P to show it ssl_prefer_server_ciphers = yes syslog_facility = local1 userdb { driver = passwd } verbose_proctitle = yes version_ignore = yes protocol imap { mail_max_userip_connections = 32 mail_plugins = fts fts_lucene zlib imap_zlib } protocol pop3 { pop3_uidl_format = %08Xu%08Xv } protocol lda { mail_plugins = fts fts_lucene zlib sieve postmaster_address = postmas...@geeklair.net } protocol lmtp { mail_plugins = fts fts_lucene zlib sieve postmaster_address = postmas...@geeklair.net } -- Daniel J. Luke