Hello,

I'm trying to have a system filter modify headers, in some cases, after the first delivery. According to the documentation, that should be possible:

"For this reason, it is usual to make the headers command conditional on first_delivery so that the set of header lines is not modified more than once."

As I understand it, although most users only want to modify headers on the first delivery, they specifically have to use "if first_delivery".

My test filter is very simple (the defer is only to make testing easier, I get the same results without it):

  headers add "X-Foo: bar"
  defer

It adds the header just fine on the first delivery, but fails to do so on retries. It's not a matter of duplicate headers: even if I temporarily rename the header name and force a delivery with exim -M, it doesn't do anything, and the spool header file remains untouched. Removing headers doesn't work either.

Testing the filter with -bF prints:

  Headers add "X-Foo: bar"
  Defer text ""
  Filtering ended by "defer".
  2012-06-20 12:05:08 Delivery deferred by system filter

Running exim -d+all -M prints nothing unusual:

  12:08:53 1862816 Filter: start of processing
  12:08:53 1862816 Filter: defer ""
  12:08:53 1862816 Filtering ended by "defer".
  12:08:53 1862816 Filter: end of processing
  12:08:53 1862816 system filter returned 3
  12:08:53 1862816 LOG: MAIN
  12:08:53 1862816   Delivery deferred by system filter

This was tested on Exim 4.77. Am I missing something?

Thanks.

--
Cyril B.

--
## List details at https://lists.exim.org/mailman/listinfo/exim-users
## Exim details at http://www.exim.org/
## Please use the Wiki with this list - http://wiki.exim.org/

Reply via email to