gsotsas:
> Dear postfix users,
> I have the following outbound relayhost configuration:
> {client that sends mail to smtp relay} -> {postfix:587} -> {policyd} ->
> {postfix} -> {amavis:10024} -> {postfix:10025} -> {postfix relays mail
> to destination mailserver}
>
> What I need is that the last postfix process sets smtp_bind_address (or
> outgoing transport map) depending on the client IP.
That will be difficult. You can choose the Postfix SMTP client by
sender email address with sender_dependent_default_transport_maps,
but choosing it by client IP address will involve fragile hacks:
Before content filter, an check_Client_access map with
/^[0-9.]+$/ PREPEND X-Client: $1
After the content filter, a header_checks action with:
/^X-Client: ([0-9.]+)/ FILTER smtp-$1:
And master.cf entries with:
smtp-1.2.3.4 .. .. .. .. .. .. smtp -o smtp_bind_address=1.2.3.4
Wietse
> Is there any way to achieve this (maybe with an external plugin or
> something)?
>
> I know aboutsender_dependent_default_transport_maps but this only works
> with the envelope sender domain.
> I know that postfix passess the original client ip to amavis as XFORWARD
> header (smtp_send_xforward_command)- and amavis returns this header to
> {postfix:10025}by specifyingsmtpd_authorized_xforward_hosts.
> But the XFORWARD header is used only for logging purpose and cant be
> used for my needs - or am I wrong?
>
> Thank you in advance
> Amda
>