On 01/10/2020 10:04, @lbutlr wrote:
I thought this was working as intended, but I have recently been getting some 
random messages put into this mailbox that definitely have list-ip headers 
(including some messages from this list) and that do not have multiple 
addresses. I believe this started happening on 20200922, which would hav been 
when I applied the most recent update to dovecot, as that is when the listCC 
box seemed to explode, but I do not have traces over 7 days old.

if allof (address :count "ge" :comparator "i;ascii-numeric" ["to", "cc"] ["2"],
                   not exists ["list-id","mailing-list", "x-loop"] )
         {
                 fileinto :create "listCC";
stop;}

Headers of a message that triggered this (minus Received and signature headers, 
just removed for length)

This is the trace:

   23: address test
   23:   starting `:count-ge' match with `i;ascii-numeric' comparator:
   23:   extracting `to' headers from message
   23:   parsing address header value `Kurt Jaeger <dove...@opsec.eu>, 
dovecot@dovecot.org'
   23:   address value `dove...@opsec.eu'
   23:   address value `dovecot@dovecot.org'
   23:   extracting `cc' headers from message
   23:   matching count value `2'
   23:     with key `2' => 1
   23:   finishing match with result: matched

So, it looks like it is matching Reply-To and/or X-Original-To as well as To? 
Or is something else happening here?

Are you sure the message below is what Sieve gets to process? The "To:" header value it is working with does not match the headers below. I don't see how Sieve could get that wrong.

   23: jump if result is false
   23:   not jumping
   24: exists test
   24:   header `list-id' exists
   24:   header `mailing-list' is missing
   24:   headers are missing
   24: jump if result is true
   24:   not jumping

Or the logic of "not exists" has changed from AND (meaning none of those 
headers exist)?

Nothing has changed:

https://tools.ietf.org/html/rfc5228#section-5.5

exists ["list-id","mailing-list", "x-loop"]

This only yields true when all of these headers exists. The "not" prefix causes this to always yield false unless all headers exists, which is probably not what you intended. You need to split this into separate exists tests.

   26: fileinto action
   26:   store message in mailbox `listCC'
   27: stop command; end all script execution
       ## Finished executing script '.active_sieve'

Headers of that message (minute received and signature headers, elided just for 
length)

Reply-To: dovecot@dovecot.org
Return-Path: <dovecot-boun...@dovecot.org>
X-Original-To: dovecot@dovecot.org
Delivered-To: dovecot@dovecot.org
Date: Wed, 30 Sep 2020 17:06:54 +0200
From: Kurt Jaeger <dove...@opsec.eu>
To: dovecot@dovecot.org
Subject: debugging TLS with wireshark and a custom application ?
Message-ID: <20200930150654.gt53...@home.opsec.eu>
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
X-BeenThere: dovecot@dovecot.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: Dovecot Mailing List <dovecot.dovecot.org>
List-Unsubscribe: <https://dovecot.org/mailman/options/dovecot>,
  <mailto:dovecot-requ...@dovecot.org?subject=unsubscribe>
List-Archive: <https://dovecot.org/pipermail/dovecot/>
List-Post: <mailto:dovecot@dovecot.org>
List-Help: <mailto:dovecot-requ...@dovecot.org?subject=help>
List-Subscribe: <https://dovecot.org/mailman/listinfo/dovecot>,
  <mailto:dovecot-requ...@dovecot.org?subject=subscribe>
Errors-To: dovecot-boun...@dovecot.org
Sender: "dovecot" <dovecot-boun...@dovecot.org>

There is one address in the To and no CC header at all, so why was this filed 
into listCC?

(This is the only incidence of listCC in the sieve file for the list user)


Reply via email to