Como usar vários IPs no envio do Exim no cPanel: IP fixo por domínio com mailips ou IP rotativo por mensagem, com DNS reverso e HELO corretos.
"IP rotativo" é fazer o Exim alternar o IP de saída entre vários IPs do servidor. Há motivos legítimos para usar mais de um IP no envio: separar clientes que mandam muito e-mail dos demais, ou dividir um volume alto entre IPs bem configurados. Mas é bom saber logo de início o que a rotação não faz.
Antes de começar
- Acesso root ao WHM e ao SSH.
- Os IPs adicionais já configurados no servidor (WHM » IP Functions » Add a New IP Address).
- DNS reverso (PTR) em cada IP, apontando para um nome que, por sua vez, aponta de volta para o mesmo IP (por exemplo,
mail1.seudominio.com.brpara203.0.113.11). O PTR é configurado pelo provedor do IP. - Todos os IPs no SPF dos domínios que vão enviar por eles, e DKIM ativo (veja como ativar DKIM e SPF no servidor).
- Um backup da configuração do Exim: WHM » Service Configuration » Exim Configuration Manager, aba Backup.
Opção 1 (recomendada): um IP fixo por domínio
É o recurso oficial do cPanel e o mais fácil de manter: cada domínio sempre sai pelo mesmo IP, com o HELO certo. A reputação de cada IP fica estável e, se um cliente tiver problema, só o IP dele é afetado.
- Distribua os domínios entre os IPs no arquivo
/etc/mailips:loja.com.br: 203.0.113.11 newsletter.com.br: 203.0.113.12 *: 203.0.113.10 - Defina o HELO de cada um em
/etc/mailhelo, com o nome que está no PTR do IP correspondente:loja.com.br: mail1.seudominio.com.br newsletter.com.br: mail2.seudominio.com.br *: servidor.seudominio.com.br - Ative os dois arquivos no Exim Configuration Manager, aba Basic Editor, seção Domains and IPs: ligue Reference /etc/mailips for custom IP on outgoing SMTP connections e Reference /etc/mailhelo for custom outgoing SMTP HELO. Salve.
Os detalhes estão em configuração do Exim no cPanel.
Opção 2: IP rotativo a cada mensagem
Aqui o Exim sorteia um IP da lista a cada conexão de saída. Como o IP muda, o HELO também precisa mudar, senão o nome anunciado deixa de bater com o PTR e os e-mails passam a ser recusados. A configuração abaixo resolve as duas coisas.
- Crie a função que sorteia o IP no arquivo
/etc/exim.pl.local(o cPanel carrega esse arquivo junto com as funções Perl dele). Troque pelos seus IPs:
Ajuste as permissões:sub ip_aleatorio { my @ips = ('203.0.113.11', '203.0.113.12', '203.0.113.13'); return $ips[ int(rand(scalar @ips)) ]; }chown root:root /etc/exim.pl.local && chmod 644 /etc/exim.pl.local. - Descubra os transportes de saída. O cPanel usa mais de um: o
remote_smtpe as variantes que assinam com DKIM, comodkim_remote_smtp. Liste todos:exim -bP transport_list - Edite cada transporte de saída no Exim Configuration Manager, aba Advanced Editor. Em cada um, troque as linhas
interfaceehelo_datapor:
A segunda linha consulta o PTR do IP sorteado e usa esse nome no HELO; se não houver PTR, usa o hostname do servidor. Mantenha as outras linhas do transporte como estão.interface = ${perl{ip_aleatorio}} helo_data = ${lookup dnsdb{ptr=$sending_ip_address}{$value}{$primary_hostname}} - Salve. O WHM valida a configuração, recria o
/etc/exim.confe reinicia o Exim. Se aparecer erro, ele não aplica nada.
exim -bP transport dkim_remote_smtp. Se você editou só o remote_smtp, os e-mails assinados com DKIM (a maioria) continuam saindo pelo IP principal.Como verificar se a rotação está funcionando
- Envie alguns e-mails de teste para endereços externos (Gmail, Outlook).
- Conte as entregas por IP de saída no log. O Exim marca o IP local com
I=[...]nas linhas de entrega:
Se nenhuma linha tivergrep ' => ' /var/log/exim_mainlog | grep -o 'I=\[[^]]*\]' | sort | uniq -cI=, o registro do IP de saída está desligado: confira comexim -bP log_selectore inclua+outgoing_interfacepelo Advanced Editor. - Confira o HELO abrindo o cabeçalho de uma mensagem recebida no Gmail (Mostrar original): a primeira linha
Receiveddeve mostrar o nome do PTR do IP usado.
Como desfazer
- No Advanced Editor, volte as linhas
interfaceehelo_datados transportes ao valor original (ou restaure o backup pela aba Restore). - Apague a função do
/etc/exim.pl.local. - Reinicie o Exim:
/scripts/restartsrv_exim.
Problemas comuns
E-mails recusados com erro de HELO ou de reverse DNS
Algum IP da lista não tem PTR, ou o PTR não aponta de volta para o mesmo IP. Teste cada um com dig +short -x 203.0.113.11 e retire da função os IPs sem DNS reverso.
Um dos IPs entrou em lista de bloqueio
Retire-o da função até resolver; os outros continuam enviando. Depois, descubra a origem do envio problemático: veja como localizar o que está enviando spam.
As mudanças sumiram depois de uma atualização do cPanel
Isso acontece quando o /etc/exim.conf é editado direto. Faça as alterações só pelo Advanced Editor, que o cPanel preserva.