Checklist para verificação de envio e entrega de e-mails bem-sucedidos
O software a seguir será necessário para verificações adicionais:
-
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 mesmo 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 e-mail 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 estão apontando.
É 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 lado do 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. Neste 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. Neste 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 lado do 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 lado do 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. A principal finalidade desse registro para o servidor de e-mail é eliminar a maior parte do spam. Esse registro permite determinar o nome de um host de onde um e-mail está vindo. Mais comumente, 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 apontando 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 em seu servidor.
Ao executar o comando:
host example.com
você pode obter a saída:
example.com tem o endereço 1.2.3.4
o e-mail 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 existente de segundo nível, por exemplo mail.example.com
Disponibilidade das portas SMTP
Alguns provedores de hospedagem bloqueiam a possibilidade de usar portas que são usadas para enviar ou receber e-mails. As portas dos 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 de um servidor de terceiros
Execute o comando:
telnet ip_adress port
Por exemplo, se você tentar usar telnet para a porta 25 em 1.2.3.4, o comando a ser executado é:
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 terá a seguinte aparência:
Conectando a 1.2.3.4 ...
Não foi possível abrir 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, há grandes chances de seu provedor de hospedagem estar 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 Amazon EC2 ou função AWS Lambda?
- Azure: Solução de problemas de conectividade SMTP de saída no Azure
- GCP: Envio de e-mail a partir 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 considerar, por exemplo, o iptables, que atua como firewall, usando o painel de controle FASTPANEL. O comando para verificar se existe uma regra para uma porta específica, neste caso 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 existe uma regra bloqueando a porta do serviço de e-mail, então precisará 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 ê precisa usar ipv6 para seus serviços de e-mail, a primeira coisa que precisa 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 pelo 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 ao início do arquivo:disable_ipv6=true
-
Salve as alterações no arquivo e depois 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
Ao usá-lo, 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".
