Hi Dean,

Many thanks for the reply. Sounds promising but (although I haven't tried it out) the problem I see which I reported before is that by the time routers are executed, the address will have already been rewritten by the global rewrite.

What I need is to both (a) rewrite the address [email protected] into [email protected] and send it along to gmail.com and (b) send a copy of the same email to [email protected].

I'll post again after I fiddling more taking into account your and John's suggestions.

Thanks again both,
Alex.


On 4-Jul-13 3:57 pm, Dean Brooks wrote:
Hi,

A potential simpler way to do this.  I tested this on our configuration
and it worked fine.  Note that this doesn't rewrite the headers, but
rather acts like regular email forwarding.

A single router:

onbehalf-forward:
   driver = redirect
   domains = MYDOMAIN.COM
   local_part_suffix = +onbehalf
   condition = ${if match{$local_part}{\N^([^+]+)\+([^+]+)\N}}
   data = ${sg{$local_part}{\\\+}{\@}},[email protected]
   no_verify_sender

When using local_part_suffix, the suffix must be present before the
router is accepted, and it is stripped from $local_part before any
other checks, including the condition check.  The no_verify_sender
prevents sender addresses from using this format during ACL verification.

The extra backslashes on the \\\\+ part of the ${sg} function is
required to make it be treated as a plus sign and not as a regex +.

May not be exactly what you want, but thought I'd throw it out there.

--
Dean Brooks
[email protected]

On Wed, Jul 03, 2013 at 10:08:28PM +0100, Alex Roman wrote:
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 [email protected] delivered to
[email protected] (yes I know it's prone to open relay). I'm using this
global rewrite pattern under "begin rewrite" to do that:

\N^([^+]+)\+([^+]+)\[email protected]$\N   $1@$2   Ttcb

Works fine, messages are indeed delivered to [email protected].

But I want such emails to also be copied to [email protected],
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 [email protected]\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: [email protected]
T To: [email protected]
   Subject: test routing
I Message-Id: <[email protected]>
* X-rewrote-original-recipient: [email protected]
F From: [email protected]
   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 [email protected]\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 [email protected]\nendif
expanded: #Exim filter
if "" contains "+onbehalf"
then deliver [email protected]
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/



--
## 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