OSEC

Neohapsis is currently accepting applications for employment. For more information, please visit our website www.neohapsis.com or email hr@neohapsis.com
Re: trivial-rewrite regular expression substitution

From: Victor Duchovni (Victor.Duchovnimorganstanley.com)
Date: Wed Oct 01 2008 - 14:48:17 CDT


On Wed, Oct 01, 2008 at 01:38:36PM -0600, David DeFranco wrote:

> Thanks for the answers.
>
> This is an internal mail server for system generated mail, and I'm
> re-writing the address before determining the transport so there's sanity
> checking already in place. I would never consider this kind of setup on a
> user/internet relay server. Heck, I wouldn't consider this solution in the
> first place, but it's legacy ( currently on sendmailx ) and I have to make
> it work. I wanted to avoid using an explicit map file because it could be
> complex and has to be updated manually.
>
> Is there another way to programmatically determine the next-hop?

Use (regexp) virtual alias mapping to rewrite recipients to suitably
selected artificial domains that map statically to the right transport.
In the transport, use smtp_generic_maps to undo the virtual mapping,
so the destination sees an unmodified recipient address.

    virtual(5):
        user1example.com -> user=example.comhost1.nexthop.invalid
        user2example.com -> user=example.comhost2.nexthop.invalid

    transport(5):
            host1.nexthop.invalid mysmtp:[host1-gateway]
            host2.nexthop.invalid mysmtp:[host2-gateway]

     master.cf
             mysmtp ... smtp
                -o smtp_generic_maps=$mysmtp_generic_maps

    main.cf:
            mysmtp_generic_maps = pcre:/etc/postfix/undo_adhoc_routing.pcre
        virtual_alias_maps = pcre:/etc/postfix/do_adhoc_routing.pcre

Beware of loops! Do not let the PCRE LHS pattern match the RHS output!

--
        Viktor.

Disclaimer: off-list followups get on-list replies or get ignored.
Please do not ignore the "Reply-To" header.

To unsubscribe from the postfix-users list, visit
http://www.postfix.org/lists.html or click the link below:
<mailto:majordomopostfix.org?body=unsubscribe%20postfix-users>

If my response solves your problem, the best way to thank me is to not
send an "it worked, thanks" follow-up. If you must respond, please put
"It worked, thanks" in the "Subject" so I can delete these quickly.