Re: [exim] Problems with rewriting a domain

Top Page
Delete this message
Reply to this message
Author: Andrew C Aitchison
Date:  
To: Olaf Hopp (SCC)
CC: exim users
Subject: Re: [exim] Problems with rewriting a domain
On Tue, 9 Aug 2022, Olaf Hopp (SCC) via Exim-users wrote:

> Dear collegues,
> we moved some internal domains from "olddomain.org" to "newdomain.org"
> we have internal routing for the new and old domain
> Now we want to get rid of the routing for "olddomain.org"
> and I want to rewrite "olddomain.org" to "newdomain.org"
> so "foo@???" should become "foo@???"
> In my rewrite section of exim I use
>
>     ^(.*)@(.*)\.olddomain\.org $1@$2.newdomain.org TS

>
> which seems to run fine:
>
> # exim -brw foo@???
> 2022-08-09 16:18:28 "foo@???" from smtp sender rewritten as 
> "foo@???" by rule 1
>    SMTP: foo@???
>  sender: foo@???
>    from: foo@???
>      to: foo@???
>      cc: foo@???
>     bcc: foo@???
> reply-to: foo@???
> env-from: foo@???
> 2022-08-09 16:18:28 "foo@???" from env-to rewritten as 
> "foo@???" by rule 1
>  env-to: foo@???

>
> However, when I activate this, I see the following in my logs:
> 2022-08-09 15:59:22 Rewrite of <foo@???> yielded unparseable
> address: '>' missing at end of address in address <foo@???
> and my routing fails since I have removed the routing for "olddomain.org"
>
> So I modified my rewriting rule to
> ^(.*)@(.*)\.olddomain\.org $1@$2.newdomain.org> TS
> (note the '>') Now it works as expected !?
>
> Anyway with this, I'll get
> # exim -brw foo@???
> 2022-08-09 16:24:33 Rewrite of foo@??? yielded unparseable 
> address: malformed address: > may not follow foo@??? in address 
> foo@???>
>  sender: foo@???
>    from: foo@???
>      to: foo@???
>      cc: foo@???
>     bcc: foo@???
> reply-to: foo@???
> env-from: foo@???
> 2022-08-09 16:24:33 Rewrite of foo@??? yielded unparseable 
> address: malformed address: > may not follow foo@??? in address 
> foo@???>
>  env-to: foo@???

>
> What is going wrong here ?
> Exim version 4.94.2 under Debian 11 (Bullseye)


You have:
        ^(.*)@(.*)\.olddomain\.org $1@$2.newdomain.org TS


The examples suggest that:

     *@*olddomain.org $1@$2.newdomain.org TS


would be sufficient.
In particular I doubt that you need the anchoring "^".
Perhaps the extending patterns are forcing $1 to include
the opening "<", so that the matching ">" is never removed ?

This does seem like a bug though.

-- 
Andrew C. Aitchison                      Kendal, UK
                    andrew@???