Checklist para verificação bem-sucedida do envio e da entrega de e-mails
O software a seguir será necessário para verificações adicionais:
-
O utilitário host
- Debian/Ubuntu:
apt-get install bind9-host - CentOS:
yum install bind9-host
- Debian/Ubuntu:
-
Utilitário telnet
- Debian/Ubuntu:
apt-get install telnet - CentOS:
yum install telnet
- Debian/Ubuntu:
Registro MX
O registro MX é um tipo de registro DNS projetado para registrar servidores de e-mail usando o protocolo SMTP. Esse registro é responsável por determinar o servidor para o qual um e-mail deve ser entregue pelo agente de e-mail do remetente. Existem vários tipos de registros com diferentes prioridades em um domínio.
Você pode verificar se o e-mail funciona localmente ou usa um servidor de e-mail de terceiros usando o comando host:
host -t MX example.com
Ao trabalhar com o servidor de e-mail local, uma saída será exibida da seguinte forma:
o correio de example.com é tratado por 10 mail.example.com.
Vale mencionar que a entrada mail.example.com também pode apontar para outro servidor. Além disso, é necessário observar que mail.example.com deve ser um registro A existente apontando para o servidor a partir do qual você está enviando e-mails.
Você também pode executar estes comandos para verificar:
host example.com
host mail.example.com
E comparar os endereços IP para os quais o domínio principal, neste caso example.com, e mail.example.com apontam.
É necessário configurar um registro MX para que os servidores de e-mail possam receber seus e-mails.
Exemplo de registro MX:
Nome: example.com.
Tipo: MX
Valor: mail.example.com.
Prioridade: 10
Assinatura DKIM
Com a ajuda do FASTPANEL®, a assinatura DKIM pode ser obtida no menu de gerenciamento → seção "Mail" clicando em "DKIM" em frente ao domínio de e-mail necessário

No DNS, o registro deve ser adicionado da seguinte forma:
Nome: dkim._domainkey
Tipo: TXT
Valor: v=DKIM1; k=rsa; p=public_key
Aqui está um exemplo do registro DKIM correto
dkim._domainkey TXT v=DKIM1; k=rsa; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCpbBQ0T2xO3/SwziunIC/IFbsxBRub6WXiu8Kc2w7uB4GVw+SAB5wSEslDJbFXQRbdV9i/Duu8EQ9xik8dbqdLVyP4iAtw34g4j6QWKcfocgK4hEkwlPFff1dzUlNQONh2riNE5KVJXuWcizm8hub7nPnl36e7OnxiL0qIU7tT1QIDAQAB
Mais informações sobre DKIM podem ser encontradas em https://wikipedia.org/wiki/DomainKeys_Identified_Mail
Registro SPF
A presença de um registro SPF pode ser verificada executando o comando host. Nesse caso, o comando terá a seguinte aparência:
host -t TXT example.com
Com a saída como:
example.com texto descritivo "v=spf1 ip4:ipv4_of_your_server ip6:ipv6_of_your_server a mx ~all"
Observe que ipv6 pode não estar presente nesta entrada. Nesse caso, a assinatura SPF terá a seguinte aparência:
example.com texto descritivo "v=spf1 ip4:ipv4_of_your_server a mx ~all"
É necessário destacar que deve haver apenas um registro SFP
No DNS, o registro deve ser adicionado da seguinte forma:
Nome: example.com.
Tipo: TXT
Valor:
v=spf1 ip4:ipv4_of_your_server ip6:ipv6_of_your_server a mx ~all
ou (se ipv6 não for usado)
v=spf1 ip4:ipv4_of_your_server a mx ~all
Por exemplo:
example.com TXT v=spf1 ip4:1.2.3.4 a mx ~all
Mais informações sobre SPF podem ser obtidas em https://wikipedia.org/wiki/Sender_Policy_Framework
Registro DMARC
Na maioria dos casos, o valor do registro DMARC será o mesmo.
No DNS, o registro deve ser adicionado da seguinte forma:
Nome: _dmarc
Tipo: TXT
Valor: v=DMARC1; p=none
Por exemplo:
_dmarc.example.com. TXT v=DMARC1; p=none
Mais informações sobre DMARC podem ser encontradas em https://wikipedia.org/wiki/DMARC
Registro PTR e hostname do servidor
O registro PTR é um registro DNS reverso que converte um endereço IP em um nome. O principal objetivo desse registro para o servidor de e-mail é eliminar a maior parte do spam. Esse registro permite determinar o nome de um host do qual um e-mail está vindo. Na maioria das vezes, um registro PTR contém um nome de domínio usado no servidor.
O registro PTR associa um endereço IP a um nome de host. Se o registro PTR não for especificado corretamente, seus e-mails serão rejeitados e não chegarão ao destinatário.
O hostname deve ser especificado como o nome do domínio real que aponta para o servidor, e o PTR deve apontar para o domínio que, por sua vez, aponta para o servidor.
Por exemplo, você tem um domínio example.com no seu servidor.
Executando o comando:
host example.com
você pode obter a saída:
example.com tem o endereço 1.2.3.4
o correio de example.com é tratado por 10 mail.example.com.
Para evitar possíveis problemas, recomenda-se definir o hostname e o registro PTR como um subdomínio de segundo nível existente, por exemplo mail.example.com
Disponibilidade das portas SMTP
Alguns provedores de hospedagem fecham a possibilidade de usar portas usadas para enviar ou receber e-mails. As portas para serviços de e-mail podem ser 25, 587, 465, 143 e 993.
Uma das maneiras mais fáceis de verificar a disponibilidade dessas portas é usar o comando telnet.
Para verificar a conexão de entrada a partir de um servidor de terceiros
Execute o comando:
telnet ip_adress port
Por exemplo, se você tentar usar telnet na porta 25 em 1.2.3.4, o comando a executar será:
telnet 1.2.3.4 25
Se a conexão for bem-sucedida, você verá uma saída como:
Tentando 1.2.3.4...
Conectado a 1.2.3.4.
O caractere de escape é '^]'.
Se a conexão falhar, a saída será assim:
Conectando a 1.2.3.4 ...
Não foi possível abrir a conexão com o host na porta some_port: Falha na conexão
Ou:
telnet: Não foi possível conectar ao host remoto: Tempo limite da conexão esgotado
Para uma conexão de saída
No seu servidor, execute o comando:
telnet smtp.gmail.com 25
Se a conexão for bem-sucedida, você verá uma saída como:
Tentando 2a00:1450:4010:c0b::6c...
Conectado a smtp.gmail.com.
O caractere de escape é '^]'.
220 smtp.gmail.com ESMTP j6-20020ac25506000000b004b53eb60e3csm1066162lfk.256 - gsmtp
Observe que, se você usa hospedagem em nuvem e usa a porta 25 para seu servidor SMTP, é provável que seu provedor de hospedagem esteja bloqueando conexões de saída na porta 25 por padrão. Abaixo você pode ver links com instruções sobre como resolver esse problema:
- AWS: Como removo a restrição na porta 25 da minha instância do Amazon EC2 ou função do AWS Lambda?
- Azure: Solucionar problemas de conectividade SMTP de saída no Azure
- GCP: Enviando e-mail de uma instância
- DigitalOcean: Por que o SMTP está bloqueado?
Além do bloqueio de portas pelo seu provedor de hospedagem, você precisa verificar se as portas no seu servidor estão fechadas ou não. Vamos tomar como exemplo o iptables, que atua como firewall, usando o painel de controle FASTPANEL. O comando para verificar se há uma regra para uma porta específica, neste caso a 25, é:
iptables-save | grep 25
Se você não tiver uma regra para a porta que deseja verificar, nenhuma informação será fornecida. Se você vir que há uma regra bloqueando a porta do serviço de e-mail, então você precisa remover essa regra com o comando:
iptables -D rule chain
Por exemplo, você executou um comando e encontrou o seguinte:
iptables-save | grep 25
-A INPUT -p tcp -m tcp --dport 25 -j DROP
Essa regra não permite nenhum acesso ao seu servidor pela porta 25, o que impedirá o envio de e-mails
Para remover a regra, use o comando:
iptables -D INPUT -p tcp -m tcp --dport 25 -j DROP
Este exemplo de comando permite verificar todas as portas usadas para envio de e-mails
Influência do IPv6 no envio de e-mails
Se você precisar usar ipv6 para seus serviços de e-mail, a primeira coisa a fazer é verificar se existe um registro PTR para ipv6 e se os serviços de e-mail estão escutando em ipv6 em determinadas portas.
Você pode realizar a verificação usando o comando:
netstat -nltpp | grep tcp6
O resultado da saída desse comando será uma lista de todos os serviços que usam ipv6, entre os quais você já pode verificar se seu serviço de e-mail usa esse endereço. Infelizmente, hoje em dia o uso de ipv6 pode não funcionar corretamente, mesmo que você tenha feito todas as configurações corretamente.
Se você descobriu, ao verificar os logs do serviço de e-mail, que o erro está relacionado ao ipv6 e toda a configuração está correta, você pode desativar o uso de ipv6 para o serviço de e-mail.
No exemplo do exim4, a desativação do ipv6 fica assim:
-
Verifique se o endereço ipv6 é usado para o serviço com o comando
netstat -nltp | grep exim
-
No arquivo de configuração
/etc/exim4/exim4.conf.template, a seguinte linha deve ser adicionada no início do arquivo:disable_ipv6=true
-
Salve as alterações no arquivo e reinicie o serviço com um comando como:
systemctl restart exim4 -
Execute o comando:
netstat -nltp | grep eximpara verificar se o serviço não está mais na lista
Verifique o envio de e-mails usando serviços de terceiros
Depois de verificar todos os itens acima, você pode verificar o envio de e-mails do seu servidor usando recursos de terceiros.
Um dos serviços mais convenientes e informativos é https://www.mail-tester.com
Usando-o, você pode verificar a classificação atual do seu e-mail, obter informações sobre se o conjunto de dados acima está correto ou não, bem como receber uma recomendação para melhorar a classificação.
Para fazer isso, basta enviar um e-mail para o endereço listado no site e, em seguida, clicar em "Then check your score".
