Eu tentei várias abordagens com a verificação HELO / EHLO com uma base de clientes de tamanho razoável entre 100.000 usuários e acabei indo com uma solução que faz o seguinte:
- Verifique se o HELO / EHLO contém um nome de domínio. - Isso se resume a um nome que tem um ponto. A verificação do DNS no nome levou a MUITOS servidores com falha, já que não é incomum que o servidor apresente um nome interno ou algo que você não consiga resolver adequadamente.
- Verifique se o IP tem um registro DNS reverso. - Novamente, essa é uma configuração frouxa, já que não a checamos contra o HELO / EHLO. Verificar contra o HELO / EHLO criou tantos tickets que esta configuração não durou nem um único dia.
- Verifique se o nome de domínio dos remetentes é válido. - Esta é uma verificação básica para garantir que, se tivermos que devolver a mensagem, haverá pelo menos alguma forma de encontrar um servidor para ela.
Aqui está o bloco do Postfix que usamos para essas verificações:
smtpd_recipient_restrictions =
reject_non_fqdn_sender,
reject_unauth_destination,
reject_unknown_reverse_client_hostname,
reject_invalid_helo_hostname,
reject_non_fqdn_helo_hostname,
reject_unknown_sender_domain,
reject_non_fqdn_recipient