Como configurar SPF, DKIM e DMARC

Um guia prático para autenticar o seu próprio domínio: publique SPF, DKIM e DMARC na ordem certa, mantenha os seus IPs de envio fora das listas de bloqueio e verifique que cada camada realmente passa.

Este é um guia prático de configuração: como publicar SPF, DKIM e DMARC para um domínio a partir do qual você envia e-mails, manter os seus IPs de envio fora das listas de bloqueio RBL e verificar que tudo realmente funciona. Se primeiro quiser a teoria em linguagem simples sobre o que cada mecanismo é, leia qualquer texto introdutório geral sobre “como funciona a autenticação de e-mail” — aqui focamos nos registos que você cria, na ordem em que os implementa e nos erros que quebram o correio real.

Antes de começar, reúna duas coisas:
  • Acesso à zona DNS do seu domínio (onde adiciona registos TXT) — normalmente o seu registrador ou provedor de DNS.
  • Uma lista escrita de todos os serviços que enviam correio em nome do seu domínio: o seu provedor de caixa de correio (Google Workspace, Microsoft 365…), o seu próprio servidor de e-mail e quaisquer terceiros — ferramenta de newsletter, CRM, faturação, help desk. Esqueça-se de um e o correio dele falhará na autenticação.

Passo 1 — Publique um único registo SPF

O SPF é um único registo TXT na raiz do seu domínio que lista os servidores autorizados a enviar por ele. A regra que faz todos tropeçarem: um domínio só pode ter um registo SPF. Se usar vários remetentes, junte-os todos numa só linha com múltiplos mecanismos include: — você não publica dois registos SPF.

Um registo típico para um domínio que envia através do Google Workspace mais uma ferramenta de marketing:

example.com. IN TXT "v=spf1 include:_spf.google.com include:sendgrid.net -all"
ElementoSignificado
include:_spf.google.comAutoriza por referência toda a faixa de envio de um provedor. Obtenha o token exato na documentação de cada remetente.
ip4: / ip6:Autoriza o seu próprio servidor de e-mail pelo seu IP público, por exemplo ip4:203.0.113.10.
~all vs -all~all = softfail (comece por aqui enquanto testa); -all = hardfail (mude para ele quando a lista estiver completa).

O limite de 10 consultas. O SPF permite no máximo 10 consultas DNS enquanto é avaliado; cada mecanismo include: e a/mx pode custar uma ou mais. Exceda-o e o SPF devolve permerror — tratado como uma falha. Se empilhar muitos provedores, remova os includes não utilizados ou use um serviço de achatamento (flattening) de SPF em vez de acumular ainda mais.

Comece suave, depois reforce. Publique com ~all durante uma ou duas semanas, confirme que nenhum remetente legítimo falha e, então, mude o mecanismo final para -all.

Passo 2 — Ative o DKIM em cada remetente

O DKIM adiciona uma assinatura criptográfica a cada mensagem. Raramente você constrói a chave à mão — cada plataforma de envio gera-a e fornece-lhe um registo TXT (ou CNAME) para publicar sob um seletor. Faça isto por remetente: Google, Microsoft, o seu ESP e o seu próprio servidor recebem cada um o seu próprio seletor e chave.

  1. No painel de administração do remetente, ative o DKIM / “autenticação de e-mail”. Ele mostra-lhe um seletor (por exemplo google, s1) e uma chave pública.
  2. Publique-o no DNS em <selector>._domainkey.example.com. Provedores que usam um CNAME permitem-lhes rotacionar a chave por si — prefira isso quando for oferecido.
  3. De volta ao painel, clique em Iniciar autenticação para que o remetente comece a adicionar o cabeçalho DKIM-Signature:. Prefira uma chave de 2048 bits onde puder escolher.

Como a assinatura viaja dentro da mensagem, o DKIM sobrevive ao reencaminhamento (ao contrário do SPF) — que é exatamente por isso que o próximo passo se apoia nele.

Passo 3 — Implemente o DMARC gradualmente

O DMARC liga o SPF e o DKIM ao endereço From: visível e diz aos destinatários o que fazer em caso de falha. Nunca comece em p=reject — você fará ricochetear o seu próprio correio legítimo de um remetente que esqueceu. Implemente-o em três fases, observando os relatórios entre cada uma.

FaseRegisto em _dmarc.example.comObjetivo
1. Monitorizarv=DMARC1; p=none; rua=mailto:dmarc@example.comNão muda nada para os destinatários; apenas recolhe relatórios agregados de quem envia em seu nome.
2. Quarentenav=DMARC1; p=quarantine; pct=25; rua=…Envia uma fração do correio que falha para o spam. Aumente o pct à medida que ganha confiança.
3. Aplicarv=DMARC1; p=reject; rua=…; sp=rejectRejeita totalmente o correio falsificado. sp= define a política para os subdomínios.

O endereço rua= recebe relatórios agregados em XML diariamente dos destinatários. Leia-os (um visualizador gratuito de relatórios DMARC basta no início): cada um lista os IPs de envio que usam o seu domínio e se passaram no SPF e no DKIM com alinhamento. O alinhamento é a armadilha — uma mensagem não pode apenas passar no SPF ou no DKIM, o domínio que passa tem de corresponder ao domínio From:. Se um serviço legítimo passa no DKIM para o seu próprio domínio mas não para o seu, corrija-o publicando o DKIM desse serviço sob o seu domínio (Passo 2) antes de avançar para a aplicação.

Passo 4 — Mantenha os seus IPs de envio fora das RBLs

SPF/DKIM/DMARC provam a identidade; as listas de bloqueio RBL (DNSBLs) julgam a reputação do IP de envio. Uma mensagem perfeitamente autenticada continua a cair no spam se o seu IP estiver listado. Você não publica nada para as RBLs — você mantém-se limpo delas:

  • Envie apenas correio desejado. Reclamações de spam e cair em armadilhas de spam (spam-traps) são a forma mais rápida de entrar numa lista.
  • Aqueça os novos IPs gradualmente, em vez de disparar grande volume logo no primeiro dia.
  • Proteja cada conta e script que possa enviar — um único formulário ou palavra-passe comprometido faz o IP inteiro ser listado.
  • Defina um DNS reverso (PTR) válido para o seu IP de envio que corresponda ao seu nome HELO.

Se acabar por ser listado, a maioria das listas respeitáveis (Spamhaus e outras) mostra o porquê e oferece remoção em regime de autosserviço assim que a causa é corrigida. Corrija primeiro, depois solicite a remoção — sair da lista enquanto o problema persiste apenas o coloca lá de novo.

Passo 5 — Verifique que realmente funciona

Publicar registos não é prova. Confirme cada camada:

  • Verifique que os registos existem. Consulte o DNS diretamente: dig TXT example.com, dig TXT google._domainkey.example.com, dig TXT _dmarc.example.com (ou nslookup -type=TXT no Windows).
  • Confirme os servidores de e-mail que autorizou. Use a nossa Consulta MX para ver os hosts MX que um domínio realmente publica — útil para detetar um servidor de correio desatualizado ou errado.
  • Leia os resultados numa mensagem real. Envie a si mesmo uma mensagem de teste, abra o seu código-fonte bruto e cole-o no descodificador MIME. Observe o cabeçalho Authentication-Results: — ele indica spf=pass, dkim=pass e dmarc=pass (ou a falha exata) tal como o destinatário a viu. Essa é a verdade absoluta.
  • Observe os relatórios DMARC durante algumas semanas antes de passar de p=none para a aplicação.

Erros comuns de configuração

SintomaCausa habitual e correção
SPF permerrorDois registos SPF, ou mais de 10 consultas DNS. Junte num só registo; corte os include: não utilizados.
Correio legítimo falha no SPFUm remetente que se esqueceu de autorizar, ou o correio foi reencaminhado. Adicione o remetente; conte com o alinhamento DKIM+DMARC para o reencaminhamento.
DKIM fail (hash do corpo)Algo reescreveu a mensagem em trânsito (o rodapé de uma lista de distribuição, um appliance). Assine com canonicalização relaxada; exclua cabeçalhos voláteis.
DMARC falha apesar de SPF/DKIM passaremSem alinhamento — o domínio que passa não é o seu domínio From:. Publique o DKIM desse remetente sob o seu próprio domínio.
Subdomínios são falsificadosSem política de subdomínios. Adicione sp=reject ao registo DMARC.

Assim que os três registos estiverem ativos, alinhados e verificados — e os seus IPs se mantiverem fora das listas de bloqueio — você fechou a porta a que pessoas falsifiquem o seu domínio e deu ao seu correio real a melhor hipótese possível de chegar à caixa de entrada. Para validar endereços individuais em qualquer domínio, o verificador de e-mail na página inicial executa por si as verificações de caixa de correio ao vivo.