Pular para o conteúdo principal

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
  • Utilitário telnet

    • Debian/Ubuntu: apt-get install telnet
    • CentOS: yum install telnet

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.

importante

É 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

Habilitar DKIM no FASTPANEL

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"

nota

É 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:

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:

  1. Verifique se o endereço ipv6 é usado para o serviço com o comando

    netstat -nltp | grep exim

    Verifique se o endereço ipv6 é usado pelo exim

  2. No arquivo de configuração /etc/exim4/exim4.conf.template, a seguinte linha deve ser adicionada no início do arquivo:

    disable_ipv6=true

  3. Salve as alterações no arquivo e reinicie o serviço com um comando como:

    systemctl restart exim4
  4. Execute o comando:

    netstat -nltp | grep exim

    para verificar se o serviço não está mais na lista

    Verifique se o ipv6 está desativado para o exim

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".

Teste seu e-mail com o mail-tester