Re: [exim] help with redirect router and filter after header…

Top Page
Delete this message
Reply to this message
Author: John Burnham
Date:  
To: exim-users@exim.org
Subject: Re: [exim] help with redirect router and filter after header rewrite
No, sorry. I'm wrong here - serves me right for trying to sort this out whilst still doing my day job....

> -----Original Message-----
> From: exim-users-bounces+john.burnham=admin.cam.ac.uk@???
> [mailto:exim-users-bounces+john.burnham=admin.cam.ac.uk@exim.org]
> On Behalf Of Alex Roman
> Sent: 03 July 2013 22:08
> To: Exim-users@???
> Subject: [exim] help with redirect router and filter after header rewrite
>
> Hi,
>
> I'm hoping a kind soul can help. I did read docs and made some steps,
> but am a bit stuck and am also new to Exim.
>
> Exim is handling mail for mydomain.com. I managed to have emails sent to
> user+gmail.com+onbehalf@??? delivered to user@???
> (yes I
> know it's prone to open relay). I'm using this global rewrite pattern
> under "begin rewrite" to do that:
>
> \N^([^+]+)\+([^+]+)\+onbehalf@???$\N $1@$2 Ttcb
>
> Works fine, messages are indeed delivered to user@???.
>
> But I want such emails to also be copied to admin@???, where
> "admin" is an alias for "root" in /etc/aliases. This is where I'm stuck.
>
> I tried with a redirect router:
>
> onbehalf:
>      debug_print = "R: copy onbehalf messages"
>      driver = redirect
>      data = #Exim filter\n\
>          if "$h_to:" contains "+onbehalf"\n\
>          then deliver admin@???\n\
>          endif
>      allow_filter
>      #check_local_user
>      user = root
>      #unseen

>
> According to the debug output, the filter in this router fails because
> the address has already been rewritten before the router is executed.
> Doesn't matter if it's the first router after "begin routers" or last.
>
> Looking at the debug output, I see that Exim reports adding a useful
> X-rewrote-original-recipient header:
>
>  >>Headers after rewriting and local additions:
> * To: SNIPPED+gmail.com+onbehalf@???
> T To: SNIPPED@???
>    Subject: test routing
> I Message-Id: <E1UuRrd-0005tY-4S@???>
> * X-rewrote-original-recipient:
> SNIPPED+gmail.com+onbehalf@???
> F From: root@???
>    Date: Wed, 03 Jul 2013 20:33:13 +0200

>
> I tried to change the redirect filter to the following:
>
>      data = #Exim filter\n\
>          if "$h_X-rewrote-original-recipient:" contains "+onbehalf"\n\
>          then deliver admin@???\n\
>          endif

>
> But the debug output reports that X- header to be empty "":
>
> --------> onbehalf router <--------
> local_part=SNIPPED domain=gmail.com
> R: reply to mydomain.com review invitation
> calling integru_invitereply router
> rda_interpret (string): #Exim filter\nif
> "$h_X-rewrote-original-recipient:" contains "+onbehalf"\nthen deliver
> admin@???\nendif
> expanded: #Exim filter
> if "" contains "+onbehalf"
> then deliver admin@???
> endif
>
> Any clues would be greatly appreciated.
>
> Alex.
>
> --
> ## 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/