Re: [exim] Strange system filter behaviour.

Top Page
Delete this message
Reply to this message
Author: Phil Pennock
Date:  
To: Todd Lyons
CC: <exim-users@exim.org>, Molly Fletcher, Ian Eiloart
Subject: Re: [exim] Strange system filter behaviour.
On 2012-10-12 at 09:11 -0700, Todd Lyons wrote:
> This is processed and detected starting at line 5018 in src/deliver.c.
> It is the original code since Philip Hazel imported it, so I don't
> think it's the problem. It detects it properly. The '>' is a flag of
> sorts, it indicates to the upcoming code that it is a local delivery
> and not a file or pipe.


It looks as though we have a false comment in filter.c then:
2260       /* Create the "address" for the autoreply. This is used only for logging,
2261       as the actual recipients are extracted from the To: line by -t. We use the
2262       same logic here to extract the working addresses (there may be more than
2263       one). Just in case there are a vast number of addresses, stop when the
2264       string gets too long. */
2265 
[...]
2282         if (recipient != NULL)
2283           {
2284           log_addr = string_cat(log_addr, &size, &ptr,
2285             (log_addr == NULL)? US">" : US",", 1);
2286           log_addr = string_cat(log_addr, &size, &ptr, recipient,
2287             Ustrlen(recipient));
2288           }


This code was added in c25242d781667319938db77399e2073ba9e798f8;
ChangeLog entry was for release 4.60:
----------------------------8< cut here >8------------------------------
PH/05 When a filter generated an autoreply, the entire To: header line was
      quoted in the delivery log line, like this:


        => >A.N.Other <ano@???> <original@ddress> ...


      This has been changed so that it extracts the operative address. There
      may be more than one such address. If so, they are comma-separated, like
      this:


        => >ano@???,ona@??? <original@ddress> ...
----------------------------8< cut here >8------------------------------


Note that part of the commit diff is:
-      addr = deliver_make_addr(string_sprintf(">%.256s", to), FALSE);
+      addr = deliver_make_addr(log_addr, FALSE);


So the "addr" was with the > prefix before this too.

> Has nobody ever used this before and noticed that email addresses
> still have this '>' character in front of them? Googling didn't find
> any for me.


I suspect that at some point, the "-t parse" logic must have been
removed/simplified away without realising the address format.

-Phil