Solução possível
Ao enviar um email, o parâmetro usado para controlar o endereço IP de saída era smtp_bind_address
. Portanto, você deve definir explicitamente o parâmetro smtp_bind_address
para um endereço IP.
Explicação
Sua configuração acima já modificou o parâmetro inet_interfaces
. Apenas define em qual endereço IP o postfix irá receber e-mails.
No entanto, o parâmetro inet_interfaces
também pode afetar smtp_bind_address
se essas três condições forem suficientes:
-
smtp_bind_address
está vazio (por padrão) -
inet_interfaces
tem apenas UM endereço IP IPv4 -
inet_interfaces
lista não foi loopback.
Quando aconteceu, smtp_bind_address
= $inet_interfaces
.
Como você configurou dois endereços IP em inet_interfaces
, o smtp_bind_address
ainda estava vazio. Nesse caso, cliente smtp usa 0.0.0.0 como seu endereço IP e 0.0.0.0 (INADDR_ANY) significa que o kernel escolherá o endereço IP com base em onde o pacote vai . De este segmento SO por Remy Lebeau , ele diz
If the client does not bind to a specific IP, or it binds to INADDR_ANY, the socket will use the first IP it finds that has an available route to the server IP being connected to.
Então, no seu caso, é compreensível que o kernel escolha 46.38.238.137 para fazer conexão de saída.