master.cf
Créez différentes interfaces. Un pour chaque domaine:
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
Désactivez toutes les autres cartes de transport, c'est-à-dire: # transport_maps = xxxxx
Activer la carte de transport dépendante (nécessite le suffixe 2.7.x ou ultérieur)
sender_dependent_default_transport_maps = mysql: /etc/postfix/config/transport_random_dependent.cf
transport_random_dependent.cf
Exemple:
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
Table 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.
L'instruction "RAND () LIMIT 1" n'est nécessaire que si vous souhaitez utiliser des transports aléatoires pour le même domaine.
Par exemple, vous souhaitez envoyer depuis mydomain.com à partir de 3 IP différentes.
Ensuite, vous créez 3 transports (rotation1, rotation2 et rotation3) avec 3 adresses IP différentes, puis définissez sur les lignes mysql:
transport = rotate1 | domain = mydomain.com
transport = rotate2 | domain = mydomain.com
transport = rotate3 | domain = mydomain.com
Ensuite, lorsque postfix randomisera trois transports différents (tournez un à trois) pour envoyer ces e-mails.