Nigel Metheringham wrote:
> On 22 Dec 2010, at 12:31, Johann Spies wrote:
>
>> Please help me to understand and maybe a practical situation will make
>> it clear.
>>
>> On our campus there several mailservers for which we relayed mail. Then
>> it happens that one or more of them cease to exist and the mail have to
>> be delivered at another place (e.g. exchange).
>>
>> How would you, without rewriting the email, handle that situation. What
>> we did was to rewrite it:
>
> There is no need to rewrite in this case. Standard routing would get the
> email there OK - router given below.
>
> However there might be a case to rewrite to ensure that replies (if the
> sender addresses were in the deprecated domain), or reply-alls go direct
> to their destination rather than via the deprecated domain.
>
> This does have other disadvantages - it is changing mail (which may well
> have legal implications) and may break digital signatures. Rewriting is
> generally best avoided for these reasons.
>
>> Say the mail serves akad and addresses had the pattern:
>> user@???
>>
>> We rewrote it to user@???.
>
> You could have a router like:-
>
> redirect_deprecated:
> driver = redirect
> domains = akad.sun.ac.za
> data = ${quote_local_part:$local_part}@???
>
> That would handle the delivery. Any rewriting is cosmetic to that.
>
> Nigel.
ACK. That router should JFW, and can be expanded to handle longer lists or
lookups, eg: 'universal' going forward.
OTOH - '....legal implications'......
IF/AS/WHEN there is a strong(er) need to get the new address or other info onto
the screen of the senders AND NOT transparently redirect?
One can 'force' the change back upstream by rejecting with a custom error message:
# RCPT_4A: IF for former old_example.com THEN advise of change
#
deny
message = Change domain from old_example.com to new_example.com, try again
condition = ${if eq{$domain}{old_example.com}}
log_message = Caller for old_example.com advised of new_example.com
Multiple-line messages, or even a URI with detailed explanation, disclaimer, and
per-user custom messages from $local_part lookups also possible.
Taken as given that no all Luser will read and heed a DSN / error message, os
'best effort' only.
Bill