[exim-dev] [Bug 1291] New: System filter cannot modify heade…

Top Page
Delete this message
Reply to this message
Author: Cyril B
Date:  
To: exim-dev
Subject: [exim-dev] [Bug 1291] New: System filter cannot modify headers after first delivery
------- You are receiving this mail because: -------
You are on the CC list for the bug.

http://bugs.exim.org/show_bug.cgi?id=1291
           Summary: System filter cannot modify headers after first delivery
           Product: Exim
           Version: 4.80
          Platform: Other
        OS/Version: Linux
            Status: NEW
          Severity: bug
          Priority: medium
         Component: Filters
        AssignedTo: nigel@???
        ReportedBy: cbay@???
                CC: exim-dev@???



I want to have a system filter that modify headers 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". If you don't
use "first_delivery", your directives should apply on each delivery.

However, my tests suggest that it doesn't work. I have a very simple test
filter:

headers add "X-Foo: bar"
defer

(the defer is only to make testing easier, I get the same results without it)

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

I tested initially on 4.77. Same results with 4.80, freshly compiled, with an
almost empty config file (not much besides 'system_filter').


--
Configure bugmail: http://bugs.exim.org/userprefs.cgi?tab=email