DKIM — Autenticação de Email por Tenant
O Notifica gera pares de chaves DKIM exclusivos para cada tenant, garantindo que os emails enviados sejam autenticados e tenham melhor deliverability.
O que é DKIM?
DKIM (DomainKeys Identified Mail) é um mecanismo de autenticação de email que permite ao remetente assinar digitalmente suas mensagens. O servidor de email do destinatário verifica essa assinatura consultando uma chave pública publicada no DNS do domínio remetente.
Por que DKIM importa?
| Sem DKIM | Com DKIM |
|---|---|
| Emails frequentemente caem no spam | Emails têm alta taxa de entrega na caixa de entrada |
| Provedores não conseguem verificar a autenticidade | Provedores confirmam que o email veio de você |
| Vulnerável a spoofing e phishing | Protege contra falsificação de remetente |
| Reputação de envio prejudicada | Constrói reputação positiva ao longo do tempo |
Sem DKIM configurado, provedores como Gmail, Outlook e Yahoo podem marcar seus emails como spam ou rejeitar completamente. Isso é especialmente rigoroso desde as mudanças de política do Gmail em fevereiro de 2024.
Como o Notifica implementa DKIM
Geração de Chaves por Tenant
Quando você registra um domínio no Notifica, o sistema automaticamente:
- Gera um par de chaves RSA de 2048 bits — exclusivo para seu tenant
- Armazena a chave privada — de forma segura e criptografada no servidor
- Fornece a chave pública — para você publicar no DNS do seu domínio
- Assina cada email — usando a chave privada ao enviar
Especificações Técnicas
| Parâmetro | Valor |
|---|---|
| Algoritmo | RSA |
| Tamanho da chave | 2048 bits |
| Selector DKIM | notifica |
| Hash | SHA-256 (rsa-sha256) |
| Canonicalization | relaxed/relaxed |
Configuração DNS
Registro DKIM (TXT)
Após registrar seu domínio no Notifica (via API ou dashboard), publique o seguinte registro TXT no DNS:
| Campo | Valor |
|---|---|
| Tipo | TXT |
| Nome/Host | notifica._domainkey.suaempresa.com.br |
| Valor | v=DKIM1; k=rsa; p=SUA_CHAVE_PUBLICA_AQUI |
| TTL | 300 (ou mínimo permitido) |
A chave pública é fornecida na resposta da API ao registrar o domínio (POST /v1/domains) e está visível nos detalhes do domínio no dashboard. Cada tenant recebe uma chave diferente.
Formato completo do registro:
notifica._domainkey.suaempresa.com.br. 300 IN TXT "v=DKIM1; k=rsa; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA..."
Atenção com o comprimento: Chaves RSA de 2048 bits geram valores TXT longos (>255 caracteres). Alguns provedores DNS exigem que você quebre o valor em múltiplas strings. Verifique a documentação do seu provedor.
Provedor DNS — Notas Específicas
Cloudflare:
- Cole o valor completo no campo "Content". O Cloudflare lida automaticamente com a quebra de strings longas.
Registro.br:
- O campo "Nome" pode exigir apenas
notifica._domainkey(sem o domínio no final, pois é adicionado automaticamente).
AWS Route 53:
- Envolva o valor em aspas duplas. Para valores longos, use múltiplas strings:
"v=DKIM1; k=rsa; p=MIIBIjANBgkqhki..." "continuação_da_chave..."
Checklist Completo de DNS para Email
Para que seus emails tenham a melhor deliverability possível, configure todos os registros abaixo:
✅ 1. Verificação de Propriedade (TXT)
suaempresa.com.br. 300 IN TXT "notifica-verification=SEU_TOKEN_UNICO"
- Obtido ao registrar o domínio via
POST /v1/domains - Necessário para provar que você é dono do domínio
✅ 2. DKIM (TXT)
notifica._domainkey.suaempresa.com.br. 300 IN TXT "v=DKIM1; k=rsa; p=SUA_CHAVE_PUBLICA"
- Chave pública fornecida pelo Notifica (única por tenant)
- Assina digitalmente cada email enviado
✅ 3. SPF (TXT)
suaempresa.com.br. 300 IN TXT "v=spf1 include:spf.usenotifica.com.br [outros includes] ~all"
- Adicione
include:spf.usenotifica.com.brao seu SPF existente - Nunca crie dois registros SPF — combine em um só
O include SPF do Notifica é spf.usenotifica.com.br (sem underscore no início). Certifique-se de digitar corretamente.
✅ 4. DMARC (TXT) — Recomendado
_dmarc.suaempresa.com.br. 300 IN TXT "v=DMARC1; p=quarantine; rua=mailto:[email protected]"
Evolução recomendada da política DMARC:
| Fase | Política | Quando usar |
|---|---|---|
| 1. Monitoramento | p=none | Primeiras 2-4 semanas após configurar SPF + DKIM |
| 2. Quarentena | p=quarantine | Após confirmar que SPF e DKIM passam consistentemente |
| 3. Rejeição | p=reject | Quando confiante que nenhum email legítimo falha autenticação |
Comece com p=none e rua=mailto:[email protected] para receber relatórios DMARC. Analise os relatórios por 2-4 semanas antes de endurecer a política.
Verificando a Configuração
Via linha de comando
Verificar DKIM:
dig TXT notifica._domainkey.suaempresa.com.br +short
Saída esperada:
"v=DKIM1; k=rsa; p=MIIBIjANBgkqhki..."
Verificar SPF:
dig TXT suaempresa.com.br +short | grep spf
Saída esperada (deve conter o include do Notifica):
"v=spf1 include:spf.usenotifica.com.br ... ~all"
Verificar DMARC:
dig TXT _dmarc.suaempresa.com.br +short
Saída esperada:
"v=DMARC1; p=quarantine; rua=mailto:..."
Via API do Notifica
Use o endpoint de health check para verificar todos os registros de uma vez:
curl https://app.usenotifica.com.br/v1/domains/dom_abc123/health \
-H "Authorization: Bearer YOUR_API_KEY"
Veja Monitoramento de Saúde de Domínios para detalhes da resposta.
Troubleshooting
"DKIM signature not found"
Causas:
- Registro TXT não publicado — Adicione o registro no DNS
- Selector incorreto — O nome deve ser exatamente
notifica._domainkey.<domain> - Propagação DNS — Aguarde 5-30 minutos após adicionar
Diagnóstico:
# Verificar se o registro existe
dig TXT notifica._domainkey.suaempresa.com.br +short
# Verificar com DNS público (bypass de cache local)
dig TXT notifica._domainkey.suaempresa.com.br @8.8.8.8 +short
"DKIM key too short"
Se você vê este erro, a chave publicada no DNS está incompleta. Isso geralmente acontece quando o provedor DNS truncou o valor TXT.
Solução: Verifique se o valor completo da chave pública foi copiado. Chaves de 2048 bits têm ~400 caracteres.
"DKIM alignment failed"
O domínio no cabeçalho From: do email não corresponde ao domínio na assinatura DKIM.
Solução: Certifique-se de que está enviando emails usando um endereço @suaempresa.com.br (o mesmo domínio verificado no Notifica).
"Multiple SPF records"
Ter dois registros TXT com v=spf1 no mesmo domínio causa PermError.
Solução:
# Listar registros SPF existentes
dig TXT suaempresa.com.br +short | grep spf
Combine todos os include: em um único registro:
v=spf1 include:spf.usenotifica.com.br include:_spf.google.com ~all
"SPF too many DNS lookups"
O limite de SPF é 10 lookups DNS. Se você tem muitos include:, pode exceder.
Solução:
- Remova includes de serviços que você não usa mais
- Use ferramentas como MXToolbox SPF Checker para contar lookups
- Considere usar
ip4:eip6:diretos em vez deinclude:para serviços com IPs fixos
Segurança
- Chaves privadas são armazenadas criptografadas no servidor Notifica e nunca expostas via API
- Chaves públicas são fornecidas apenas para o tenant que as gerou
- Rotação de chaves está planejada para versões futuras — por enquanto, as chaves são permanentes
Referências
- Configuração de Domínio de Envio — Setup completo passo a passo
- Monitoramento de Saúde — Alertas automáticos de DNS
- Dashboard de Domínios — Gerenciamento visual
- RFC 6376 — DKIM Signatures — Especificação técnica
- RFC 7489 — DMARC — Especificação DMARC