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 >