Porquê validar a sintaxe DMARC antes da publicação?
Um registo DMARC mal formatado é silenciosamente ignorado por todos os servidores destinatários. Gmail, Outlook, Yahoo: nenhum irá alertá-lo. Os seus emails ficam sem protecção contra spoofing e phishing.
O validador de sintaxe DMARC analisa o seu registo antes da publicação DNS. Detecta os erros imediatamente, sem esperar 24-48h de propagação para descobrir um problema.
Erros comuns detectados:
- Tag v= em falta → O registo não é reconhecido como DMARC
- Política p= ausente → Sem instruções de tratamento para os servidores
- URI rua/ruf inválido → Os relatórios nunca são recebidos
- Tags duplicadas → Comportamento imprevisível, frequentemente ignorado
Como validar o seu registo DMARC em 3 passos
Passo 1: Copiar o registo DMARC
Prepare o seu registo DMARC completo. Exemplo típico:
v=DMARC1; p=quarantine; rua=mailto:dmarc-reports@captaindns.com; adkim=r; aspf=r; pct=100
Se modificar um registo existente, recupere o valor actual do seu DNS:
dig TXT _dmarc.captaindns.com +short
Passo 2: Colar e validar
Cole o registo no campo acima. A ferramenta analisa:
- A presença das tags obrigatórias (v, p)
- A validade de cada tag e valor
- O formato dos URIs de relatório (rua, ruf)
- A conformidade com as especificações RFC 7489
Passo 3: Corrigir e publicar
O diagnóstico lista cada tag com o seu estado:
- ✅ Válido → Tag correcta, pronta para publicação
- ❌ Erro → Correcção necessária antes da publicação
- ⚠️ Aviso → Funcional mas melhoria recomendada
Corrija os erros, valide novamente, depois publique no seu DNS.
O que é um registo DMARC?
DMARC (Domain-based Message Authentication, Reporting and Conformance) é um registo TXT DNS publicado em _dmarc.seudominio.com. Indica aos servidores destinatários:
- Que política aplicar aos emails que falham SPF e DKIM
- Para onde enviar os relatórios de autenticação
- Como alinhar os domínios SPF/DKIM com o endereço From
Estrutura de um registo DMARC:
v=DMARC1; p=reject; rua=mailto:reports@captaindns.com; ruf=mailto:forensics@captaindns.com; adkim=s; aspf=s; pct=100
| Tag | Valor | Significado |
|---|---|---|
| v | DMARC1 | Versão do protocolo (obrigatório) |
| p | reject | Política: rejeitar emails não autenticados |
| rua | mailto:... | Destino dos relatórios agregados |
| ruf | mailto:... | Destino dos relatórios forenses |
| adkim | s | Alinhamento DKIM rigoroso |
| aspf | s | Alinhamento SPF rigoroso |
| pct | 100 | Aplicar a 100% das mensagens |
Detalhe das tags DMARC validadas
Tags obrigatórias
| Tag | Valores aceites | Descrição |
|---|---|---|
| v | DMARC1 | Identifica o registo como DMARC. Único valor válido. |
| p | none, quarantine, reject | Política para mensagens não alinhadas do domínio principal. |
Tags opcionais
| Tag | Valores aceites | Descrição |
|---|---|---|
| sp | none, quarantine, reject | Política para subdomínios (herda de p se ausente). |
| rua | URI mailto: ou https: | Destinos dos relatórios agregados (XML diário). |
| ruf | URI mailto: ou https: | Destinos dos relatórios forenses (por mensagem). |
| adkim | r (relaxed), s (strict) | Modo de alinhamento DKIM. Padrão: relaxed. |
| aspf | r (relaxed), s (strict) | Modo de alinhamento SPF. Padrão: relaxed. |
| pct | 1-100 | Percentagem de mensagens sujeitas à política. Padrão: 100. |
| fo | 0, 1, d, s | Opções de geração de relatórios forenses. |
| ri | Segundos | Intervalo desejado entre relatórios agregados. Padrão: 86400. |
| rf | afrf, iodef | Formato dos relatórios forenses. |
Erros de sintaxe frequentes
Erro 1: Registo sem v=DMARC1
Sintoma: O validador mostra "not_dmarc_record"
Causa: O registo não começa com v=DMARC1
Correcção:
- p=reject; rua=mailto:reports@captaindns.com
+ v=DMARC1; p=reject; rua=mailto:reports@captaindns.com
Erro 2: Política p= em falta
Sintoma: "missing_policy" ou "empty_policy"
Causa: A tag p= está ausente ou vazia
Correcção:
- v=DMARC1; rua=mailto:reports@captaindns.com
+ v=DMARC1; p=none; rua=mailto:reports@captaindns.com
Erro 3: URI rua/ruf inválido
Sintoma: "invalid_rua_uri" ou "invalid_ruf_uri"
Causa: O URI não respeita o formato mailto: ou https:
Exemplos de correcção:
- rua=reports@captaindns.com # Falta mailto:
+ rua=mailto:reports@captaindns.com
- ruf="mailto:forensics@captaindns.com" # Aspas proibidas
+ ruf=mailto:forensics@captaindns.com
- rua=mailto: reports@captaindns.com # Espaço proibido
+ rua=mailto:reports@captaindns.com
Erro 4: Tag duplicada
Sintoma: "duplicate_tag"
Causa: Uma tag aparece várias vezes
Correcção:
- v=DMARC1; p=none; p=reject; rua=mailto:reports@captaindns.com
+ v=DMARC1; p=reject; rua=mailto:reports@captaindns.com
Erro 5: pct fora do intervalo
Sintoma: "invalid_pct_value"
Causa: O valor pct não está entre 1 e 100
Correcção:
- v=DMARC1; p=reject; pct=0 # 0 inválido
+ v=DMARC1; p=reject; pct=10 # Mínimo 1
- v=DMARC1; p=reject; pct=150 # >100 inválido
+ v=DMARC1; p=reject; pct=100
Boas práticas de implementação DMARC
1. Começar com p=none
Não passe directamente para p=reject. Comece por observar:
v=DMARC1; p=none; rua=mailto:dmarc@captaindns.com
Esta política não bloqueia nada mas gera relatórios. Analise-os durante 2-4 semanas.
2. Configurar rua desde o início
Os relatórios agregados são essenciais para:
- Identificar fontes legítimas que falham a autenticação
- Detectar tentativas de spoofing
- Validar a progressão para p=quarantine e depois p=reject
3. Progressão para p=reject
Uma vez que SPF e DKIM estejam alinhados em todas as fontes legítimas:
p=none→ Observar (2-4 semanas)p=quarantine; pct=10→ Testar com 10% do tráfegop=quarantine; pct=50→ Aumentar progressivamentep=quarantine; pct=100→ Quarentena completap=reject→ Protecção máxima
4. Gerir subdomínios com sp=
Por padrão, os subdomínios herdam a política p. Se enviar emails a partir de subdomínios (marketing.captaindns.com), lembre-se de:
- Configurar SPF/DKIM em cada subdomínio
- Usar
sp=se a política dever ser diferente
FAQ - Perguntas frequentes
P: Quais tags DMARC são obrigatórias?
R: Duas tags são obrigatórias: v=DMARC1 (versão) e p= (política). Sem estas tags, o registo é inválido e ignorado pelos servidores destinatários. Todas as outras tags são opcionais.
P: O que significa o erro "política em falta"?
R: O registo não contém a tag p= que define a política. Adicione um dos três valores possíveis:
p=none→ Sem acção, apenas relatóriosp=quarantine→ Marcar como spamp=reject→ Rejeitar a mensagem
P: Como corrijo um erro de URI rua/ruf?
R: Os URIs devem seguir o formato exacto mailto:endereco@dominio.com ou https://endpoint. Erros comuns:
- Esquecer
mailto:antes do endereço - Aspas à volta do URI
- Espaços no endereço
- Endereço de email inválido
P: Qual é a diferença entre rua e ruf?
R:
- rua (relatórios agregados): relatórios diários em formato XML, resumo estatístico
- ruf (relatórios forenses): relatório por mensagem individual em falha
Comece apenas com rua. Os relatórios ruf geram muito tráfego e podem conter dados sensíveis.
P: O que significa "pct fora do intervalo"?
R: A tag pct define a percentagem de mensagens sujeitas à política p. Valores aceites: 1 a 100. Se omitir pct, a política aplica-se a 100% das mensagens (comportamento padrão).
P: Porquê validar antes da publicação DNS?
R: Um erro de sintaxe torna o registo inválido. Os servidores destinatários ignoram-no silenciosamente: não recebe qualquer alerta, mas os seus emails não têm protecção DMARC. Valide sistematicamente antes de cada modificação DNS.
P: O validador verifica a publicação DNS?
R: Não, esta ferramenta apenas valida a sintaxe do registo. Para verificar que o registo está correctamente publicado e propagado no DNS, use o Inspector DMARC após a publicação.
Ferramentas complementares
| Ferramenta | Utilidade |
|---|---|
| Inspector DMARC | Verificar a publicação e resolver o registo DMARC a partir do DNS |
| Gerador DMARC | Criar um registo DMARC conforme às especificações |
| Inspector SPF | Validar o registo SPF do seu domínio |
| Inspector DKIM | Verificar a chave pública DKIM e a assinatura |
| Testador de email | Testar a autenticação completa enviando um email real |
Recursos úteis
- RFC 7489 - Domain-based Message Authentication, Reporting and Conformance (DMARC) (especificação oficial)
- Google - Configurar DMARC (guia Gmail/Workspace)
- Microsoft - DMARC no Microsoft 365 (guia Outlook/M365)
- dmarc.org - Overview (documentação do consórcio DMARC)