master.cf
Crea diferentes interfaces. Uno para cada dominio:
rotate1 unix - - n - - smtp
-o syslog_name=postfix-rotate1
-o smtp_helo_name=domainone.com.br
-o smtp_bind_address=173.111.111.1
rotate2 unix - - n - - smtp
-o syslog_name=postfix-rotate2
-o smtp_helo_name=domaintwo.com.br
-o smtp_bind_address=173.111.111.2
main.cf
Deshabilite todos los otros mapas de transporte, es decir: # transport_maps = xxxxx
Habilitar mapa de transporte dependiente (requiere postfix 2.7.xo posterior)
sender_dependent_default_transport_maps = mysql: /etc/postfix/config/transport_random_dependent.cf
transport_random_dependent.cf
Ejemplo:
user = postfix
password = mypassword
dbname = postfixdb
hosts = localhost
query = SELECT transport FROM transport_random WHERE domain = '%d' AND status='1' ORDER BY RAND() LIMIT 1
Tabla transport_random
Column "transport" = rotate1, rotate2, rotate3, rotate4 (etc)
Column "domain" = sender domains (replaced by %d)
Column "status" = boolean (0 or 1) if is enabled the transport.
La instrucción "RAND () LIMIT 1" es necesaria solo si desea utilizar transportes aleatorios para el mismo dominio.
Por ejemplo, desea enviar desde mydomain.com desde 3 IP diferentes.
Luego, crea 3 transportes (rotate1, rotate2 y rotate3) con 3 IP diferentes, luego establece en las líneas mysql:
transport = rotate1 | domain = mydomain.com
transport = rotate2 | domain = mydomain.com
transport = rotate3 | domain = mydomain.com
Luego, cuando postfix aleatorizará tres transportes diferentes (rota uno a tres) para enviar estos correos electrónicos.