Hello,

I've recently converted from using procmail as an lda to using lmtp+sieve (and 
it's overall great).

My setup is currently doing post-queue spamassassin to pickup user rules (and 
to be substantially similar to how it worked before). It mostly works, but I 
get some mail forwarded from another host that also runs spamassassin, so the 
mail comes with X-Spam headers already set.

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.

My before.sieve looks like this:

require ["vnd.dovecot.filter","editheader"];                                    
                         
                                                                                
                         
# rule:[spamfilter]                                                             
                         
if size :under 10485760                                                         
                         
{                                                                               
                         
    deleteheader :matches "X-Spam-Flag" "*";                                    
                        
    deleteheader :matches "X-Spam-Status" "*";                                  
                        
    deleteheader :matches "X-Spam-Level" "*";                                   
                        
    deleteheader :matches "X-Spam-Checker-Version" "*";                         
                        
                                                                                
                         
    filter "spamc" ["-s","10485760","-U","/var/run/spamd.sock"];                
                         
}                                                                               
                         

Trace file says:

      ## Started executing script 'before'
   6: size :under test
   6:   comparing message size 4197
   6:   with lower limit 10485760
   6: jump if result is false
   6:   not jumping
  11: deleteheader command 
  11:   deleting matching occurrences of header `X-Spam-Flag'
  11:   header `X-Spam-Flag' not found
  12: deleteheader command 
  12:   deleting matching occurrences of header `X-Spam-Status'
  12:     starting `:matches' match with `i;ascii-casemap' comparator:
  12:     matching value `No, score=-0.2 required=5.0 
tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,DKIM_..
.'
  12:       with key `*' => 1
  12:     deleting header with value `No, score=-0.2 required=5.0 
tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALI
D_AU,DKIM_VALID_EF,FREEMAIL_FROM,HTML_MESSAGE, 
RCVD_IN_DNSWL_NONE,SPF_HELO_NONE,SPF_PASS autolearn=ham au
tolearn_force=no version=3.4.2'
  12:     finishing match with result: matched
  13: deleteheader command 
  13:   deleting matching occurrences of header `X-Spam-Level'
  13:   header `X-Spam-Level' not found
  14: deleteheader command 
  14:   deleting matching occurrences of header `X-Spam-Checker-Version'
  14:     starting `:matches' match with `i;ascii-casemap' comparator:
  14:     matching value `SpamAssassin 3.4.2 (2018-09-13) on 
braeburn.macports.org'
  14:       with key `*' => 1
  14:     deleting header with value `SpamAssassin 3.4.2 (2018-09-13) on 
braeburn.macports.org'
  14:     finishing match with result: matched
  16: filter action
  16:   execute program `spamc'
  16:   executed program successfully
  16:   changed message
      ## Finished executing script 'before'

It then falls through my personal sieve filter and hits the implicit keep at 
the end and ends up in my inbox - with the original headers.

So, two questions:
1. What am I missing?
2. Is there a way to match any X-Spam-* header? (when I tried deleteheader 
:matches "X-Spam*" it didn't match anything).

Thanks.

-- 
Daniel J. Luke

Reply via email to