Re: [exim] Changing Return-Path on SMTP relay

Αρχική Σελίδα
Delete this message
Reply to this message
Συντάκτης: Todd Lyons
Ημερομηνία:  
Προς: Uros Meglic
Υ/ο: exim-users
Αντικείμενο: Re: [exim] Changing Return-Path on SMTP relay
On Mon, Mar 7, 2011 at 5:37 AM, Uros Meglic <uros.meglic@???> wrote:
> Hey Todd,
> thank for your answer. Do you have any ideas how can it be done? What rules
> must I use somwhere in exim4 for this to work?


Option 1:
http://www.exim.org/exim-html-current/doc/html/spec_html/ch15.html
Look for "errors_to". But understand what it does before you put it
in production. At the very least, you should only change the return
path if it's currently set to null and if the source is the IP of the
exchange box. Putting any less restrictions on it is going to be
abused and/or will blow up on you.

Option 2:
http://www.exim.org/exim-html-current/doc/html/spec_html/ch24.html
Look for "return_path". But understand what it does before you put it
in production. At the very least, you should only change the return
path if it's currently set to null and if the source is the IP of the
exchange box. Putting any less restrictions on it is going to be
abused and/or will blow up on you.

> The Exchange autoresponder replies only once to any e-mail so I probably am
> safe regarding the routing problems..


No, you're probably not. First, Exchange rarely does the right thing
in my experiences. Second, you must also filter on the sending host
(the exchange box) and the sender. I'll paste what I have cobbled
together for you (the regex is borrowed from something I found on the
web), but I'll caution you that this particular config snippet looks
for user www and rewrites the return path. You'll need to adjust it
to look for the empty envelope sender. AGAIN: ONLY LET IT DO THIS FOR
THE EXCHANGE HOST. Any email from the outside should not match this
router.

autoresponder_always:
driver = accept
domains = +local_domains
condition = AUTORESPONDER_ACTIVE
condition = ${if eq{AUTORESPONDER_FREQUENCY}{1} {1}{0}}
condition = IS_A_MAILBOX
condition = AUTORESPONDER_BULK_REGEX
transport = autoresponder_always_t
errors_to = SET_WWW_RETURN_PATH
no_expn
unseen

The macros that do the work above are:

HDR_RETURN_PATH = ${lc:${address: $h_from:}}
DFLT_RETURN_PATH = ${if eq{HDR_RETURN_PATH}{}
{$sender_address}{HDR_RETURN_PATH}}
SET_WWW_RETURN_PATH = ${if eq{${lc:$sender_address_local_part}}{www}
{DFLT_RETURN_PATH}{$sender_address} }

AUTORESPONDER_BULK_REGEX = ${if or { \
              { match {$h_precedence:} {(?i)junk|bulk|list} } \
              { eq {$sender_address} {} } \
              { def:header_X-Cron-Env: } \
              { def:header_Auto-Submitted: } \
              { def:header_List-Id: } \
              { def:header_List-Help: } \
              { def:header_List-Unsubscribe:} \
              { def:header_List-Subscribe: } \
              { def:header_List-Owner: } \
              { def:header_List-Post: } \
              { def:header_List-Archive: } \
              { def:header_Autorespond: } \
              { def:header_X-Autoresponse: } \
              { def:header_X-Autoreply-From: } \
              { def:header_X-eBay-MailTracker: } \
              { def:header_X-MaxCode-Template: } \
              { match {$h_X-Auto-Response-Suppress: } {OOF} } \
              { match {$h_X-OS:} {HP Onboard Administrator} } \
              { match {$h_X-MimeOLE:} {\N^Produced By phpBB2$\N} } \
              { match {$h_Subject:} {\N^Yahoo! Auto Response$\N} } \
              { match {$h_Subject:} {\N^ezmlm warning$\N} } \
              { match {$h_X-FC-MachineGenerated:} {true} } \
              { match {$message_body} {\N^Your \"cron\" job on\N} } \
              { match {$h_Subject:} {\N^Out of Office\N} } \
              { match {$h_Subject:} {\N^Auto-Reply:\N} } \
              { match {$h_Subject:} {\N^Autoresponse:\N} } \
              { match {$h_Subject:} {\N(Auto Reply)$\N} } \
              { match {$h_Subject:} {\N(Out of Office)$\N} } \
              { match {$h_Subject:} {\Nis out of the office.$\N} } \
              { match {$h_From:} {\N(via the vacation program)\N } } \
              } {no}{yes} }


And to repeat David's suggestion, call your ISP to tell them to fix
their broken mail servers.

--
Regards...      Todd
I seek the truth...it is only persistence in self-delusion and
ignorance that does harm.  -- Marcus Aurealius