master.cf
Crie diferentes interfaces. Um para cada domínio:
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
-
Desative todos os outros mapas de transporte, por exemplo: # transport_maps = xxxxx
-
Ativar mapa de transporte dependente (requer o postfix 2.7.x ou posterior)
sender_dependent_default_transport_maps = mysql:/etc/postfix/config/transport_random_dependent.cf
transport_random_dependent.cf
Exemplo:
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
Tabela 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.
A instrução "RAND () LIMIT 1" é necessária apenas se você quiser usar transportes aleatórios para o mesmo domínio.
No exemplo, você deseja enviar de mydomain.com de três IPs diferentes.
Em seguida, você cria 3 transportes (rotate1, rotate2 e rotate3) com 3 IPs diferentes e, em seguida, define as linhas do mysql:
transport = rotate1 | domain = mydomain.com
transport = rotate2 | domain = mydomain.com
transport = rotate3 | domain = mydomain.com
Então, quando postfix irá randomizar três transportes diferentes (rodar um para três) para enviar este e-mail.