SPF, DKIM e DMARC são três registros no DNS, e a maioria dos tutoriais para aí: publique e pronto. Não está pronto. O trabalho só termina quando uma mensagem real chega ao destino e o cabeçalho dela diz dmarc=pass.
Cada um responde a uma pergunta diferente. E só o terceiro olha para o endereço que o seu cliente vê.
SPF: quem pode enviar
O SPF é a lista dos servidores autorizados a mandar e-mail com um domínio. Mas qual domínio? O do envelope SMTP, o MAIL FROM, que quase ninguém vê e que muitas vezes pertence ao provedor de envio, não a você. A RFC 7208 é clara sobre isso. Os tutoriais, quase nunca.
v=spf1 include:_spf.provedor-a.example include:_spf.provedor-b.example -all
Duas regras derrubam mais SPF do que todo o resto junto:
- Um registro por nome. Dois TXT começando com
v=spf1no mesmo domínio é erro permanente. Cada serviço novo pede para "adicionar o SPF dele", e alguém cria um segundo registro em vez de juntar tudo no primeiro. - Dez consultas, no máximo. Cada
includegasta pelo menos uma, e os includes de provedores grandes costumam ter outros por dentro. O analisador de SPF faz a conta para você.
Termine com -all ou ~all. +all autoriza o planeta inteiro e não deveria existir em zona nenhuma.
DKIM: a assinatura
O serviço de envio assina cada mensagem com uma chave privada que só ele tem. A chave pública fica no seu DNS, num nome neste formato:
seletor._domainkey.seudominio.com.br
Quem escolhe o seletor é o provedor. Ele aparece no painel e no s= de toda assinatura. Não existe consulta que liste os seletores de um domínio, então "procurar o DKIM" sem saber o seletor é chute.
Alguns provedores pedem um TXT com a chave. Outros pedem um CNAME apontando para um nome deles, o que permite trocar a chave sem você tocar no DNS. Faça o que o painel da sua conta pedir, não o que um tutorial mostrou para a conta de outra pessoa.
A chave estar publicada não prova nada sobre as mensagens. Quem prova é o dkim=pass no cabeçalho de uma mensagem assinada. O mecanismo inteiro está na RFC 6376.
DMARC: amarrando tudo ao From
Aqui está o pulo do gato. O DMARC pega o domínio do From, o que o cliente vê, e exige que o SPF ou o DKIM tenham passado para esse domínio, ou para outro da mesma organização, como um subdomínio. Isso se chama alinhamento. SPF aprovado para o domínio do provedor não conta.
O registro mora em _dmarc e diz o que fazer com quem falha: p=none só observa, quarantine manda para o spam, reject recusa. A referência atual é a RFC 9989, de 2026, que substituiu a 7489 e aposentou tags antigas como pct. O gerador de DMARC já monta o registro no formato novo.
Comece em p=none com relatórios. Sempre. Quem publica reject no primeiro dia descobre que a nota fiscal saía por outro sistema quando o cliente liga reclamando.
A ordem que funciona
- Liste tudo que manda e-mail com o seu domínio. Tudo mesmo: caixas da equipe, loja, ERP, cobrança, helpdesk, a ferramenta de newsletter que o marketing assinou e esqueceu.
- Pegue os registros no painel de cada serviço. Não copie de exemplo de outra empresa.
- Exporte a zona atual e publique um SPF só, com todos os includes, as chaves DKIM e o DMARC em
p=nonecomrua. - Mande uma mensagem de cada sistema para uma conta de teste sua e cole os cabeçalhos no leitor.
- Leia os relatórios por algumas semanas e corrija o que aparecer.
- Suba para
quarantine. Depois,reject.
Encaminhamentos e listas de discussão alteram mensagens e quebram assinaturas, então é normal ver falhas vindas deles nos relatórios. Isso não é motivo para afrouxar a política. É motivo para saber de onde elas vêm.
O DNS mostra o desenho, o cabeçalho mostra o resultado
A consulta DNS diz se os registros existem e se há duplicados. Ela não sabe se uma mensagem passou. Para isso, só o cabeçalho.
Os relatórios agregados (RFC 9990) chegam como XML, todo dia, de cada provedor grande. Se ninguém lê, é alarme sem ninguém em casa. Leia você, ou use um serviço que transforme aquilo em gráfico.
Fontes e referências
- RFC 7208: SPF
- RFC 6376: DKIM
- RFC 9989: DMARC, especificação de 2026
- RFC 9990: relatórios agregados DMARC
Documentação consultada na revisão. Regras e interfaces de terceiros podem mudar.