[Exim] Persistent (one_time) errors_to change

Top Page
Delete this message
Reply to this message
Author: David Woodhouse
Date:  
To: 'exim-users@exim.org'
Subject: [Exim] Persistent (one_time) errors_to change
I have a router which munges the errors_to address on outgoing mail,
including a timestamp and signature in the address.

The current implementation is generates a new errors_to address on each
delivery attempt, which doesn't play nicely with sites doing
greylisting. They presumably note the MAIL FROM:<> address I offer, and
would accept the mail if I offered it a second time with the same
address.. but I don't; next time the timestamp is different.

Is there a simple way to make the reverse-path rewrite happen only once
and be stored for subsequent delivery attempts? The one_time option
appears to do this when the _recipients_ are changed, but doesn't have
the desired effect on the errors_to address.

This is the router in question; the rest of the config is at
http://www.infradead.org/rpr.html

rpr_rewrite:
  caseful_local_part
#  headers_add = "X-SRS-Rewrite: SMTP reverse-path rewritten from <$sender_address> by $primary_hostname\n\tSee SRS_URL"
  # Encode sender address, hash and timestamp according to http://www.anarres.org/projects/srs/
  # We try to keep the generated localpart small. We add our own tracking info to the domain part.
  address_data = ${eval:($tod_epoch/86400)-12288}+\
        ${sender_address_domain}+$sender_address_local_part\
        @${sg {$primary_hostname}{^([^.]*)\..*}{\$1}}-\
        ${sg {$tod_log}{^.* ([0-9]+):([0-9]+):([0-9+])}{\$1\$2\$3}}.\
        SRS_DOMAIN
  errors_to = ${quote_local_part:SRS0+${length_SRS_HASH_LENGTH:${hmac{md5}{SRS_SECRET}{${lc:$address_data}}}}+\
        ${sg{$address_data}{(^.*)@[^@]*}{\$1}}}@\
        ${sg{$address_data}{^.*@([^@]*)}{\$1}}
  driver = redirect
  data = ${quote_local_part:$local_part}@$domain
# Straight to output; don't start routing again from the beginning.
  redirect_router = lookuphost
  no_verify
  one_time




--
dwmw2