On Thu, Dec 05, 2013 at 04:45:48PM +0100, Troels Hansen wrote:

> canonical_maps = regexp:/etc/postfix/recipientmap 
> 
> and recipientmap contains the following:
> /^(.*)_(.*)@domain\.dk$/     ${1}.${2}@domain.com
> 
> This works, however it should only be done from mails originating
> from the broken system, ex 10.11.12.13

    Example IPv4 addresses should taken from 192.0.2.0/24

> I have struggled with this for some time, but cannot find a way
> to accomplish this?

If you can configure the broken system to talk to a different SMTP service
than all other clients (different IP, different port, or both), then you
can enable the rewrite in question there.  You can use either

        http://www.postfix.org/postconf.5.html#smtpd_command_filter
    or
        http://www.postfix.org/postconf.5.html#cleanup_service_name

to implement rewriting differently in a particular master.cf smtpd(8)
service.

If you can't use a different input, you can configure a different output,
via:

        
http://www.postfix.org/postconf.5.html#sender_dependent_default_transport_maps

or an access table FILTER action:

        http://www.postfix.org/access.5.html

then on the output side, in a custom master.cf smtp(8) transport override:

        http://www.postfix.org/postconf.5.html#smtp_generic_maps

forcing all mail into an SMTP delivery agent via a FILTER action prevents
local mail delivery.  If the broken machine sends mail to recipients that
need to be delivered locally, and you can't identify it by a particular
envelope sender address, the FILTER approach requires more care (a 127.0.0.1
nexthop with a re-injection port different than 25, and an SMTP listener
there to handle the mail after rewriting).

-- 
        Viktor.

Reply via email to