mxout check
Diagnostica o DNS de domínios remetentes — DKIM, SPF e DMARC — sem precisar do servidor no ar.
O comando lê o arquivo mxout.json (ou o caminho definido em MXOUT_CONFIG) e consulta o DNS diretamente. Use-o antes de enviar e-mails, em pipelines de CI ou ao configurar um domínio novo.
Sintaxe
mxout check [dominio] [--json]Argumentos e flags
| Argumento/flag | Obrigatório | Descrição |
|---|---|---|
dominio |
Não | Domínio a verificar. Sem este argumento, verifica todos os domínios em domains. |
--json |
Não | Imprime o relatório em JSON formatado. Pode aparecer antes ou depois do domínio. |
Quando dominio é informado mas não está configurado no mxout.json, o erro vai para stderr e o comando encerra com exit code 2.
O que cada checagem faz
DKIM
Consulta o registro TXT em <selector>._domainkey.<dominio> e compara a chave pública publicada com a derivada da chave privada local (formato SPKI).
Modos de falha detectados:
| Situação | Status |
|---|---|
| Registro ausente no DNS | fail |
Registro presente, mas sem campo p= |
fail |
| Chave publicada em formato PKCS#1 em vez de SPKI | fail |
| Chave pública não corresponde à chave privada local | fail |
O formato PKCS#1 é um erro comum: validadores estritos como o Gmail exigem SPKI (SubjectPublicKeyInfo). Use mxout keygen para gerar chaves já no formato correto. Veja também Configurar DNS e Adicionar um domínio.
SPF
Consulta o registro SPF do domínio e avalia se o IP de saída está autorizado. O comando resolve ip4, ip6, a, mx, include e all, respeitando o limite de 10 lookups DNS definido pelo RFC 7208.
O IP de saída vem do campo public_ip do mxout.json. Se o campo estiver ausente, o comando tenta detectar o IP automaticamente. Se não conseguir, a checagem retorna aviso (!) em vez de falha.
Veja como configurar public_ip em Configuração.
DMARC
Consulta o registro TXT em _dmarc.<dominio> e valida:
- Existência do registro.
- Presença de
v=DMARC1. - Campo
p=com valor válido (none,quarantineoureject). - Ausência de texto ou caracteres de controle indevidos no registro.
Exit codes
| Código | Significado |
|---|---|
0 |
Todas as checagens passaram (nenhum fail). |
1 |
Ao menos uma checagem resultou em fail. |
2 |
Erro de execução: configuração não carrega ou domínio não está configurado. |
Exemplos
Verificar todos os domínios (saída humana)
mxout checkIP público: 203.0.113.10
borlot.com.br
DKIM ✓ chave publicada bate (selector mxout)
SPF ✓ 203.0.113.10 autorizado (via include:spf.exemplo.com)
DMARC ✓ válido (p=none)Verificar um domínio específico com saída JSON
mxout check exemplo.com --json{
"public_ip": "203.0.113.10",
"ok": true,
"domains": [
{
"domain": "exemplo.com",
"dkim": {
"status": "pass",
"message": "chave publicada bate (selector mxout)"
},
"spf": {
"status": "pass",
"message": "203.0.113.10 autorizado (via include:spf.exemplo.com)"
},
"dmarc": {
"status": "pass",
"message": "válido (p=none)"
}
}
]
}O campo ok é true quando nenhum domínio tem status fail. O campo public_ip é null se o IP não foi detectado.
Quando usar
- Antes de enviar e-mails: execute
mxout checkcomo preflight para garantir que o DNS está correto. - Em CI/CD: use o exit code para bloquear pipelines quando o DNS estiver quebrado.
- Ao configurar um domínio novo: depure problemas de DKIM, SPF ou DMARC antes de colocar o domínio em produção. Consulte Adicionar um domínio e Configurar DNS.