Estou um pouco confuso sobre a atividade nos logs do meu servidor de e-mail (endereços e destino editados para privacidade):
Nov 1 21:00:03 mail postfix/smtp[745742]: Trusted TLS connection established to mx.example.com[192.0.2.1]:25: TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)
Nov 1 21:00:10 mail postfix/smtp[745742]: 0C1551DC073: to=<[email protected]>, relay=mx.example.com[192.0.2.1]:25, delay=7.3, delays=0.01/0.01/0.42/6.9, dsn=2.0.0, status=sent (250 2.0.0 Ok: queued as 7E42A921A9A25)
Nov 1 21:00:11 mail postfix/smtp[745829]: Trusted TLS connection established to mx.example.com[192.0.2.1]:25: TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)
Nov 1 21:00:18 mail postfix/smtp[745829]: 903371DC08B: host mx.example.com[192.0.2.1] said: 451 4.7.1 Greylisting in action, please come back later (in reply to end of DATA command)
Nov 1 21:00:18 mail postfix/smtp[745829]: Trusted TLS connection established to mx.example.net[192.0.2.2]:25: TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)
Nov 1 21:00:25 mail postfix/smtp[745829]: 903371DC08B: to=<[email protected]>, relay=mx.example.net[192.0.2.2]:25, delay=16, delays=0.01/1.4/7.7/7.2, dsn=2.0.0, status=sent (250 2.0.0 Ok: queued as BB99F922EC625)
Parece que o postfix recebeu uma resposta da lista cinza no segundo email para o domínio em questão, mas imediatamente tentou novamente a entrega para um ip de registro MX diferente (@21:00:18)? Estou entendendo mal o que está acontecendo aqui?
Todas as configurações são mais ou menos padrão com estas exceções:
minimal_backoff_time = 180s
maximal_backoff_time = 3h
Quero ter certeza de que estamos respeitando a resposta do provedor do destinatário, mas não parece que o postfix esperou 180 segundos antes de tentar novamente a entrega como eu esperava.
Sim, o postfix respeita a resposta da lista cinza, mas não ao pé da letra porque não lê o texto de status em inglês.
Recomendação: Provavelmente não há necessidade de alterar nada - o outro MX aceitou sua mensagem apenas alguns segundos depois. Este jogo de "por favor, aguarde 10 minutos" não é jogado por todos que fazem ou chamam de lista cinza . Você realmente só precisa de uma conexão extra para provar que opera uma fila de e-mail (ou não se importa em seguir as regras de qualquer maneira), então nem sempre há um ponto em deixar outros servidores de e-mail esperarem mais do que algumas pesquisas de banco de dados de reputação levam.
Explicação do comportamento:
O Postfix não se importa com o motivo específico, apenas que viu um erro temporário na resposta ao fim do comando DATA . O mesmo código de status (451) e código de status aprimorado (4.7.1) poderiam ter sido usados por muitos outros motivos, e nenhum deles transmite claramente: "Não fale comigo ou com meu outro MX" .
Até que a mensagem seja adiada e sujeita às
_backoff_time
regras, o postfix continua tentando se algum outro MX estiver pronto para aceitar a mensagem. Um correio atualmente em entrega ativa é movido automaticamente para a fila adiada com base em uma das duas condições a seguir:todos os trocadores de correio atualmente conhecidos foram tentados, e nenhum deles aceitou conclusivamente (por exemplo, código 250) ou rejeitou permanentemente (por exemplo, código 550) a mensagem para os destinatários pendentes
um limite ( limite de coorte ) de falhas foi encontrado e a entrega adicional para o destino é adiada
Se você quiser que o postfix espalhe e eventualmente adie entregas pendentes depois de ver muitas entregas falharem, use
_destination_rate_delay
e_destination_concurrency_failed_cohort_limit
em vez disso.