SPF, DKIM & DMARC para Mailgun.
O Mailgun (agora parte da Sinch) autentica seu domínio a partir da área Sending → Domains, onde você adiciona um pequeno conjunto de registros DNS a um subdomínio de envio dedicado, como mg.yourdomain.com, em vez do seu domínio raiz puro. Diferentemente de provedores exclusivamente CNAME, como SendGrid ou Klaviyo, o Mailgun é um verdadeiro provedor de include SPF: você mesmo publica v=spf1 include:mailgun.org ~all, junto de um registro DKIM (um par CNAME moderno com rotação automática via Automatic Sender Security, ou um TXT estático clássico) e um CNAME de rastreamento opcional. Os hostnames e valores de chave exatos são por conta e aparecem no seu painel. Assim que cada registro exibir um sinal de confirmação verde, o Mailgun envia como seu domínio com SPF e DKIM alinhados, de modo que o DMARC passe.
Por que autenticar o Mailgun?
Autenticar seu domínio no Mailgun é o que faz seu e-mail chegar à caixa de entrada em vez de cair na pasta de spam ou voltar como bounce. Desde fevereiro de 2024, o Gmail e o Yahoo passaram a exigir que todo remetente em massa (aproximadamente 5.000+ mensagens por dia) passe em SPF, DKIM e DMARC com alinhamento, e a Microsoft começou a impor requisitos semelhantes para remetentes de alto volume ao Outlook/Hotmail/Live em 2025. Até você adicionar e verificar seu próprio domínio, o Mailgun só permite enviar a partir do domínio sandbox dele (sandboxXXXX.mailgun.org), que é limitado a um punhado de destinatários pré-autorizados e não carrega reputação própria — inútil para produção. Verificar seu domínio move você para o envio real, em que tanto o SPF quanto o DKIM se alinham ao seu domínio organizacional, o DMARC passa e a reputação de envio que você constrói fica atrelada ao seu domínio em vez da infraestrutura compartilhada. Como o Mailgun é focado em API/SMTP e muito usado para e-mails transacionais (redefinições de senha, recibos, alertas), um registro quebrado aqui descarta silenciosamente e-mails que seus usuários estão ativamente esperando.
A realidade do SPF para o Mailgun
O Mailgun é um verdadeiro provedor de include SPF, então há um registro real a adicionar: v=spf1 include:mailgun.org ~all. Não existe um CNAME que satisfaça o SPF por você da forma como o subdomínio em do SendGrid faz — você mesmo publica esse TXT, e ele vale tanto se você usar o moderno Automatic Sender Security quanto o método DKIM clássico (essa opção só muda o DKIM, nunca o SPF). O detalhe é que o include:mailgun.org é excepcionalmente pesado. Verificado contra o DNS ativo, ele se resolve em cinco lookups aninhados: mailgun.org publica v=spf1 include:_spf.mailgun.org include:_spf.eu.mailgun.org -all, o _spf.mailgun.org aninha ainda include:_spf1.mailgun.org e include:_spf2.mailgun.org, de modo que uma única linha cobre tanto a região de envio dos EUA quanto a da UE. Isso é metade do orçamento de dez lookups da RFC 7208 em um único include. A jogada certa — e a própria recomendação do Mailgun — é colocar o Mailgun em um subdomínio de envio dedicado, como mg.yourdomain.com. O include então passa a viver no próprio registro SPF desse subdomínio e não custa nada contra o SPF do seu domínio raiz, então nunca colide com o Google Workspace, o Microsoft 365 ou outros remetentes já empilhados no seu domínio raiz. Se você só envia da região da UE, pode estreitar o mecanismo para include:_spf.eu.mailgun.org, que é puro ip4 e custa um único lookup.
Duas maneiras de configurar
Automatic Sender Security — DKIM por CNAME (recomendado)
- Dois CNAMEs (rótulos exibidos no seu painel, por exemplo pdk1._domainkey e pdk2._domainkey) delegam o DKIM à infraestrutura do Mailgun
- O Mailgun gera chaves de 2048 bits e as rotaciona automaticamente em um cronograma que ele gerencia (você pode forçar uma rotação a qualquer momento)
- Nenhuma chave pública para colar e nada para reeditar no DNS quando as chaves são renovadas
- Ative a opção ao adicionar o domínio — ela vem desligada por padrão
- O SPF continua sendo v=spf1 include:mailgun.org ~all; o Automatic Sender Security só muda a forma como o DKIM é entregue
Clássico — DKIM TXT único (padrão / legado)
- Um registro TXT no host <selector>._domainkey que o Mailgun exibe, contendo k=rsa; p=<longa base64>
- A chave é estática: você precisa rotacioná-la no Mailgun e reeditar o DNS manualmente
- Chaves de 2048 bits frequentemente ultrapassam o limite de string única do TXT e precisam ser divididas em duas strings entre aspas
- É isto que você obtém se deixar o Automatic Sender Security desligado — funcional, mas sem rotação automática
Passo a passo
- 1
Abra Sending → Domains
Faça login em app.mailgun.com (EUA) ou app.eu.mailgun.com (UE), depois vá em Sending → Domains no menu à esquerda e clique em Add New Domain.
- 2
Use um subdomínio de envio, não seu domínio raiz
Informe um subdomínio como mg.yourdomain.com (mail. ou email. também servem) em vez do yourdomain.com puro. Isso mantém a reputação de envio do Mailgun separada das suas caixas corporativas, evita conflitos de MX com Google/Microsoft e mantém o pesado include SPF fora do seu domínio raiz.
- 3
Escolha a região correta
Escolha US ou EU ao criar o domínio. A região decide se seus registros de rastreamento/MX apontam para hosts mailgun.org ou eu.mailgun.org e qual URL de app gerencia o domínio. Registros da região errada nunca serão verificados.
- 4
Ative o Automatic Sender Security
Durante a configuração, ligue o Automatic Sender Security (ele vem desligado por padrão). Isso entrega o DKIM como dois CNAMEs de 2048 bits com rotação automática, então você nunca reedita chaves. Deixe-o desligado apenas se você especificamente quiser um DKIM TXT estático e autogerenciado.
- 5
Abra a lista de registros DNS
Depois que o domínio for criado, abra-o e veja Domain Settings → DNS records (o painel Domain Verification & DNS). O Mailgun lista seu SPF TXT, o(s) registro(s) DKIM, o CNAME de rastreamento opcional e o MX opcional — com os valores exatos por conta para copiar.
- 6
Adicione o registro SPF TXT
No subdomínio de envio, adicione um registro TXT: host mg (ou seja, mg.yourdomain.com), valor v=spf1 include:mailgun.org ~all. Se esse subdomínio de alguma forma já tiver um registro SPF, mescle o include:mailgun.org ao existente — nunca publique dois registros SPF no mesmo host.
- 7
Adicione o(s) registro(s) DKIM
Com o Automatic Sender Security ligado, adicione os dois CNAMEs que o Mailgun exibe (rótulos como pdk1._domainkey.mg e pdk2._domainkey.mg) apontando para seus destinos hospedados no Mailgun em dkim1.mailgun.com. Com ele desligado, adicione o DKIM TXT único no seletor exibido (um host <selector>._domainkey.mg) contendo k=rsa; p=…; divida uma chave de 2048 bits em duas strings entre aspas se o seu provedor de DNS exigir.
- 8
Adicione o CNAME de rastreamento (recomendado)
Adicione um CNAME: host email.mg → valor mailgun.org (EUA) ou eu.mailgun.org (UE). Isso reescreve os links de rastreamento de abertura/clique para usar seu domínio em vez do Mailgun. É opcional para a entrega, mas recomendado para branding e entregabilidade.
- 9
Adicione MX apenas se você recebe e-mails
Se o Mailgun deve receber/rotear e-mails de entrada no subdomínio, adicione dois registros MX com prioridade 10: mxa.mailgun.org e mxb.mailgun.org (UE: mxa.eu.mailgun.org / mxb.eu.mailgun.org). Pule o MX inteiramente para envio apenas, e nunca reaponte o MX do seu domínio raiz para o Mailgun se o Google ou a Microsoft hospedam sua caixa de entrada.
- 10
Deixe qualquer CNAME do Cloudflare em nuvem cinza
Se seu DNS está no Cloudflare, configure os CNAMEs DKIM _domainkey e o CNAME de rastreamento de e-mail como DNS only (nuvem cinza). Um CNAME em proxy de nuvem laranja não resolverá para o Mailgun e a verificação falha. (SPF, DKIM TXT e DMARC são registros TXT e não são afetados pelo proxy.)
- 11
Clique em Verify DNS Settings
De volta ao Domain Settings do Mailgun, clique em Verify DNS Settings e aguarde um sinal de confirmação verde em cada registro. A propagação geralmente leva minutos, mas pode levar de 24 a 48 horas; o Mailgun também reverifica automaticamente, então clique de novo se um registro ainda estiver âmbar.
- 12
Envie a partir do domínio verificado
No seu app ou nas configurações de SMTP, envie a partir de um endereço no subdomínio verificado (por exemplo, no-reply@mg.yourdomain.com) — nunca a partir do domínio sandbox. Envie um teste e confirme que ele autentica (SPF, DKIM e DMARC todos PASS, alinhados ao seu domínio) antes de direcionar o tráfego de produção para ele.
Registros a adicionar
O Mailgun gera os valores exatos no seu assistente de configuração — estes mostram o formato do que você vai adicionar no seu provedor de DNS.
| Tipo | Host | Valor |
|---|---|---|
| TXT | mg | v=spf1 include:mailgun.org ~allSPF no subdomínio de envio (mg.yourdomain.com). Mescle no registro existente se já houver um presente — um SPF por host. Remetentes exclusivamente da UE podem usar include:_spf.eu.mailgun.org (um único lookup). |
| CNAME | pdk1._domainkey.mg | pdk1._domainkey.<hash>.dkim1.mailgun.comChave DKIM 1 — Automatic Sender Security (rotação automática). O rótulo do host e o destino são exibidos por conta no seu painel. |
| CNAME | pdk2._domainkey.mg | pdk2._domainkey.<hash>.dkim1.mailgun.comChave DKIM 2 — rotacionada automaticamente junto da chave 1 para transições de chave suaves e sem lacunas. |
| TXT | <selector>._domainkey.mg | k=rsa; p=MIGfMA0GCSqGSIb3DQEB...IDAQABDKIM TXT único clássico — SOMENTE se o Automatic Sender Security estiver desligado. Seletor e chave são por conta; divida chaves de 2048 bits em duas strings entre aspas se seu provedor exigir. |
| CNAME | email.mg | mailgun.orgRastreamento de abertura/clique no seu domínio. A região da UE usa eu.mailgun.org. Opcional. |
| MX | mg | mxa.mailgun.orgPrioridade 10. Apenas se o Mailgun recebe e-mails de entrada. Adicione também mxb.mailgun.org (prioridade 10). UE: mxa/mxb.eu.mailgun.org. |
| TXT | _dmarc | v=DMARC1; p=none; rua=mailto:dmarc@yourdomain.comPolítica DMARC no domínio ORGANIZACIONAL (não no subdomínio mg) — um por domínio. Comece com p=none. |
Mantenha exatamente um registro TXT de SPF (v=spf1) no seu domínio raiz — combine todos os remetentes nele. Ter dois registros SPF já é, por si só, um erro.
O limite de 10 consultas de DNS
O SPF tem um limite rígido de 10 consultas de DNS — se passar disso, ele retorna um permerror e para de validar em todo lugar. Veja quanto a configuração do Mailgun consome desse limite.
O Mailgun usa 5 das suas 10 consultas; os mecanismos ip4: e ip6: são gratuitos.
DKIM
O Mailgun oferece dois métodos de DKIM, e a escolha só afeta o DKIM, nunca o SPF. O caminho recomendado é o Automatic Sender Security: ative-o ao adicionar o domínio e o Mailgun lhe entrega dois registros CNAME (os rótulos são exibidos por conta, por exemplo pdk1._domainkey.mg.yourdomain.com e pdk2._domainkey.mg.yourdomain.com), cada um apontando para um destino hospedado pelo Mailgun em dkim1.mailgun.com que é exclusivo da sua conta. Como esses são CNAMEs delegados ao Mailgun, o Mailgun detém as chaves privadas, publica chaves públicas de 2048 bits atrás desses seletores e as rotaciona automaticamente em um cronograma que ele gerencia (você também pode forçar uma rotação a qualquer momento) — você nunca mais copia uma chave ou edita o DNS. Existem dois seletores para que uma nova chave possa ser publicada antes de a antiga se aposentar, sem lacuna na assinatura. A alternativa clássica (o padrão se você deixar o Automatic Sender Security desligado) é um único registro DKIM TXT estático no seletor que o Mailgun exibe — um host <selector>._domainkey.mg.yourdomain.com — contendo k=rsa; p=<longa chave pública em base64>. Essa chave é estática: rotacioná-la significa regenerar no Mailgun e reeditar o DNS, e um valor de 2048 bits frequentemente ultrapassa o limite de 255 caracteres de string única do TXT, então você precisará dividi-lo em duas strings entre aspas (o Mailgun mostra a divisão). De qualquer forma, o d= do DKIM é seu subdomínio de envio, que se alinha de modo relaxado ao seu domínio organizacional, de forma que o DMARC passe.
DMARC
O DMARC é um registro TXT separado e não é um dos registros que o Mailgun gera. Publique-o uma vez em _dmarc.yourdomain.com no seu domínio organizacional (raiz) — não no subdomínio mg — começando com v=DMARC1; p=none; rua=mailto:dmarc@yourdomain.com. p=none é apenas monitoramento, então não afetará a entrega enquanto você confirma que o e-mail do Mailgun está passando em SPF e DKIM alinhados ao seu domínio. O alinhamento do DMARC funciona aqui mesmo quando o seu From visível é you@yourdomain.com e o Mailgun assina com d=mg.yourdomain.com, porque o alinhamento relaxado trata um subdomínio e seu domínio pai como o mesmo domínio organizacional (e o Return-Path do Mailgun vive no mesmo subdomínio de envio, então o SPF também se alinha). Como um registro DMARC na raiz também cobre subdomínios, seu registro _dmarc existente já governa o mg.yourdomain.com; só adicione uma política específica de subdomínio (via sp= no registro raiz, ou um registro _dmarc.mg dedicado) se quiser que o subdomínio seja tratado de forma diferente. Acompanhe os relatórios agregados (rua) por uma ou duas semanas, depois aperte para p=quarantine e, por fim, p=reject assim que o Mailgun aparecer consistentemente como uma origem alinhada e aprovada. Mantenha exatamente um registro _dmarc para o domínio, não importa quantos remetentes você opere.
Confirme que funcionou de verdade
Não confie apenas nos sinais de confirmação verdes do painel de DNS do Mailgun — eles confirmam que os registros se resolvem, não que uma mensagem real autentica. Envie a si mesmo um teste a partir de um endereço no subdomínio verificado (o Mailgun tem um botão Send test email, ou use seu app), abra-o no Gmail e escolha o menu de três pontos → Show original: você quer ver SPF: PASS e DKIM: PASS ambos exibindo seu domínio, além de DMARC: PASS, e o d= da assinatura DKIM deve ser mg.yourdomain.com. Passe o subdomínio de envio pela verificação de saúde de domínio da Qualisend para confirmar que os registros SPF, DKIM e DMARC todos se resolvem e que o include SPF não está empurrando você além de dez lookups, e, assim que os relatórios agregados de DMARC começarem a chegar, jogue um deles no analisador de relatórios DMARC — o Mailgun deve aparecer como uma origem alinhada e aprovada. A própria aba Logs do Mailgun também sinaliza falhas de entrega e autenticação por mensagem.
Pegadinhas comuns
- Configuração de DNS
include:mailgun.org é pesado — verificado ao vivo, ele se resolve em cinco lookups DNS porque uma única linha cobre ambas as regiões (mailgun.org → _spf.mailgun.org, que aninha _spf1 e _spf2, mais _spf.eu.mailgun.org). Isso é metade do orçamento de dez lookups da RFC 7208. Colocar o Mailgun em seu próprio subdomínio de envio mantém o include totalmente fora do SPF do seu domínio raiz; remetentes exclusivamente da UE podem estreitar para include:_spf.eu.mailgun.org (um lookup).
- Cobertura
As regiões EUA e UE são separadas: domínios da UE são gerenciados em app.eu.mailgun.com e seus registros de rastreamento/MX apontam para hosts eu.mailgun.org. Copiar registros da região errada — ou entrar no painel errado — faz o domínio nunca ser verificado.
- Cobertura
O domínio sandbox (sandboxXXXX.mailgun.org) é apenas para testes: ele envia para um punhado de destinatários pré-autorizados e não constrói reputação. Nunca o use em produção — adicione e verifique seu próprio domínio.
- Cobertura
Não reaponte o MX do seu domínio raiz para o Mailgun se o Google Workspace ou o Microsoft 365 hospedam suas caixas de correio — isso vai quebrar os e-mails de entrada. Use um subdomínio dedicado para o Mailgun, ou pule o MX inteiramente para envio apenas.
- Configuração de DNS
Comprimento do DKIM TXT de 2048 bits: uma única string p= longa frequentemente ultrapassa o limite de 255 caracteres do TXT e é rejeitada ou truncada. Divida-a em duas strings entre aspas exatamente como o Mailgun mostra. Os CNAMEs do Automatic Sender Security evitam esse problema inteiramente.
- Configuração de DNS
O proxy do Cloudflare quebra CNAMEs: configure os CNAMEs DKIM _domainkey e o CNAME de rastreamento de e-mail como DNS only (nuvem cinza). Um registro em proxy de nuvem laranja não resolverá para o Mailgun e a verificação falha.
- Quebra a autenticação
Mantenha um SPF TXT por host: se o subdomínio de envio já tem um registro SPF, mescle o include:mailgun.org nele em vez de adicionar um segundo SPF TXT — dois registros SPF em um host é um PermError que reprova o SPF de imediato.
- Configuração de DNS
Duplicação do campo host: muitos registradores anexam automaticamente seu domínio, então digitar mg.yourdomain.com resulta em mg.yourdomain.com.yourdomain.com. Informe apenas o rótulo que o painel espera (mg, pdk1._domainkey.mg, email.mg).
Monte seu registro SPF
O Mailgun já vem pré-selecionado abaixo. Adicione as outras plataformas pelas quais você envia e publique o registro único e combinado.
This domain's own servers
Authorize the domain itself, if it sends mail directly (not through a platform above).
Other senders & IPs
Anything not in the list — another provider's SPF host, or specific IP addresses.
We add the include: prefix — enter the hostname your provider documents.
Policy for everyone else
What receivers should do with mail from any server not listed above (the all mechanism).
- Publish it as a TXT record at your root domain — host @ (the bare domain), value the full string above.
- Keep only one SPF record per domain. Merge every sending source into this single line — a second TXT record starting v=spf1 makes both invalid.
- Stay at or under 10 DNS lookups. Each include:, a and mx counts, and an include can trigger more lookups inside itself — ip4: and ip6: are free.
Authentication published? The next step is sending to a clean, verified list.
Verify a listSPF do Mailgun — Perguntas frequentes
Leituras relacionadas
Depois de publicado, confirme se tudo resolve corretamente com o verificação de saúde do domínio e, em seguida, veja quem está enviando em seu nome com o analisador de relatórios DMARC. Explore todas as fontes de envio no gerador. A autenticação, porém, é só metade da entregabilidade — um IP ou domínio de envio que esteja listado ainda te joga no spam por mais limpo que seu SPF esteja, então vale a pena acompanhar as blacklists com o monitoramento de blacklists.
Autenticado — agora mantenha a lista limpa
Passar em SPF, DKIM e DMARC te leva à caixa de entrada; uma lista limpa te mantém lá. Verifique a sua — comece grátis com 100 créditos, sem precisar de cartão.