Amazon SES: guia completo de configuração DNS e autenticação de email
Por CaptainDNS
Publicado em 20 de janeiro de 2026
Atualizado em 29 de setembro de 2026

- Amazon SES oferece envio de email a US$ 0,10 por 1.000 emails na tarifa de pagamento por uso, com 7 regiões na Europa.
- Easy DKIM gera 3 CNAMEs que servem tanto para verificação de domínio quanto para assinatura DKIM (rotação automática gerenciada pela AWS).
- Custom MAIL FROM é indispensável para o alinhamento SPF DMARC; sem ele, o SPF autentica com
amazonses.com. - Para
p=reject, combine Easy DKIM + Custom MAIL FROM + alinhamento relaxed (adkim=r,aspf=r). - Se os bounces sobem enquanto SPF e DKIM passam, olhe a reputação por origem: os tenants do SES isolam cada cliente ou aplicação, sem proteger a conta.
Por que o Amazon SES merece sua atenção?
O Amazon SES processa mais de um trilhão de emails por ano desde seu lançamento em 2011. Com uma precificação de US$ 0,10 por 1.000 emails no pagamento por uso (fora dos planos Essentials, Pro e Enterprise), é uma das opções mais econômicas para envio transacional e marketing.
O que faz a diferença:
- API v2 (setembro 2019): mensagens de até 40 MB, gerenciamento nativo de descadastros, cabeçalhos personalizados sem precisar de Raw email
- 7 regiões na Europa: Frankfurt, Irlanda, Londres, Paris, Estocolmo, Milão, Zurique
- Virtual Deliverability Manager: painel de reputação e recomendações automatizadas
Este guia foca na configuração DNS e autenticação. O objetivo: uma entregabilidade otimizada compatível com p=reject.
Arquitetura de envio SES e fluxo de autenticação

Quando você envia via SES:
- Sua aplicação chama a API v2 ou usa SMTP
- O SES assina a mensagem com sua chave DKIM (domínio
d=captaindns.com) - O servidor destinatário verifica SPF (IP de envio), DKIM (assinatura), depois DMARC (alinhamento)
Configuração DNS completa
Easy DKIM: o método recomendado
Easy DKIM gera 3 registros CNAME que cumprem duas funções:
- Verificação de propriedade do domínio (não precisa de TXT
_amazonses) - Assinatura DKIM com rotação automática das chaves, gerenciada pela AWS
{token1}._domainkey.captaindns.com CNAME {token1}.dkim.amazonses.com
{token2}._domainkey.captaindns.com CNAME {token2}.dkim.amazonses.com
{token3}._domainkey.captaindns.com CNAME {token3}.dkim.amazonses.com
Em Milão e Zurique, o destino inclui a região: {token}.dkim.eu-south-1.amazonses.com e {token}.dkim.eu-central-2.amazonses.com.
Tamanho da chave: RSA 2048-bit por padrão (recomendado).
Custom MAIL FROM: o elemento crítico para DMARC
Sem Custom MAIL FROM, o envelope SMTP usa amazonses.com como domínio MAIL FROM. Resultado: SPF autentica com amazonses.com, não com seu domínio, o alinhamento SPF DMARC falha.
Registros necessários (exemplo para mail.captaindns.com):
| Tipo | Nome | Valor | Prioridade |
|---|---|---|---|
| MX | mail.captaindns.com | feedback-smtp.eu-west-1.amazonses.com | 10 |
| TXT | mail.captaindns.com | "v=spf1 include:amazonses.com ~all" | - |
Restrições:
- O Custom MAIL FROM deve ser um subdomínio do domínio verificado
- Apenas um registro MX (vários = falha)
- Este subdomínio não deve receber outros emails
SPF no domínio raiz: opcional mas recomendado
Se você usa Easy DKIM + Custom MAIL FROM, SPF no domínio raiz não é necessário para DMARC (DKIM é suficiente). Ele serve principalmente aos outros serviços que enviam com seu domínio raiz:
captaindns.com TXT "v=spf1 include:amazonses.com ~all"
Alinhamento DMARC: configuração para p=reject

O que funciona (e o que quebra)
Alinhamento DKIM (método principal):
| Configuração | Alinhado? | DMARC via DKIM? |
|---|---|---|
| Email verificado sozinho (sem domínio DKIM) | Não | Não |
| Domínio com Easy DKIM ativado | Sim | Sim |
| Domínio com BYODKIM | Sim | Sim |
Alinhamento SPF:
| Configuração | Alinhado? | DMARC via SPF? |
|---|---|---|
MAIL FROM padrão (amazonses.com) | Não | Não |
| Custom MAIL FROM + aspf=r (relaxed) | Sim | Sim |
| Custom MAIL FROM + aspf=s (strict) | Não | Não (subdomínio não alinhado) |
Registro DMARC recomendado
_dmarc.captaindns.com TXT "v=DMARC1;p=reject;adkim=r;aspf=r;rua=mailto:dmarc@captaindns.com"
Pontos-chave:
adkim=reaspf=r: alinhamento relaxed (permite subdomínios)- Progrida de
p=none→p=quarantine→p=reject - Monitore os relatórios
ruaantes de endurecer
Tabela resumo DNS
| Tipo | Host/Nome | Valor | Obrigatório |
|---|---|---|---|
| CNAME | {token1}._domainkey.captaindns.com | {token1}.dkim.amazonses.com | Sim (Easy DKIM) |
| CNAME | {token2}._domainkey.captaindns.com | {token2}.dkim.amazonses.com | Sim (Easy DKIM) |
| CNAME | {token3}._domainkey.captaindns.com | {token3}.dkim.amazonses.com | Sim (Easy DKIM) |
| MX | mail.captaindns.com | feedback-smtp.{region}.amazonses.com | Sim (Custom MAIL FROM) |
| TXT | mail.captaindns.com | "v=spf1 include:amazonses.com ~all" | Sim (Custom MAIL FROM) |
| TXT | _dmarc.captaindns.com | "v=DMARC1;p=reject;adkim=r;aspf=r;..." | Recomendado |
| CNAME | track.captaindns.com | r.{region}.awstrack.me | Opcional (tracking) |
Em Milão e Zurique, o destino DKIM é {token}.dkim.<região>.amazonses.com.
Métodos de envio: API v2 vs SMTP
API v2 (recomendada)
Endpoint: https://email.{region}.amazonaws.com
aws sesv2 send-email \
--from-email-address "sender@captaindns.com" \
--destination '{"ToAddresses":["recipient@captaindns.com"]}' \
--content '{
"Simple": {
"Subject": {"Data": "Test"},
"Body": {"Html": {"Data": "<h1>Hello</h1>"}}
}
}' \
--configuration-set-name "my-config-set"
Vantagens v2:
- Mensagens de até 40 MB (vs 10 MB na v1)
- Cabeçalhos personalizados nativos (List-Unsubscribe sem Raw email)
ListManagementOptionspara gerenciamento de listas
Interface SMTP
Endpoint: email-smtp.{region}.amazonaws.com
| Porta | Protocolo | Recomendação |
|---|---|---|
| 25 | STARTTLS | Limitado por padrão no EC2 |
| 465 | TLS implícito | Alternativa |
| 2465 | TLS implícito | Alternativa ao 465 |
| 587 | STARTTLS | Recomendado |
| 2587 | STARTTLS | Alternativa ao 587 |
Cabeçalhos X-SES-* disponíveis:
X-SES-CONFIGURATION-SET: associar um configuration setX-SES-MESSAGE-TAGS: adicionar tags (key=value)X-SES-TENANT: vincular o envio a um tenant (junto comX-SES-CONFIGURATION-SET)
Cotas e limites a conhecer
| Cota | Sandbox | Produção |
|---|---|---|
| Emails/24h | 200 | Variável conforme o caso de uso |
| Taxa de envio | 1/seg | Variável conforme o caso de uso |
| Destinatários/mensagem | 50 | 50 |
| Tamanho mensagem (API v2) | 40 MB | 40 MB |
Sair do sandbox: pelo console do SES ou pela AWS CLI, prazo de ~24h se a solicitação estiver completa.
Limites de reputação: os números críticos

| Métrica | Revisão da conta | Pausa possível |
|---|---|---|
| Bounce Rate | 5% | 10% |
| Complaint Rate | 0.1% | 0.5% |
A AWS recomenda manter os bounces abaixo de 2%.
Boas práticas:
- Conferir se a account-level suppression list está ativa (padrão nas contas criadas desde o fim de 2019): ela cobre hard bounces e reclamações
- Com tenants, restringir a lista de supressão a cada tenant (
SuppressionScope=TENANT): um hard bounce vai então para a lista do tenant e para a lista global gerenciada pela AWS, e não para a da conta (tenants: veja abaixo) - Configurar alertas CloudWatch em
Reputation.BounceRateeReputation.ComplaintRate - Soft bounces: o SES tenta novamente por até 14h por padrão, duração ajustável de 5 min a 14h no configuration set (
MaxDeliverySeconds)
Tenants do SES: isolar a reputação por cliente ou aplicação
Uma queda de entregabilidade nem sempre vem do DNS. SPF e DKIM podem passar enquanto os bounces e as reclamações de um cliente, de uma unidade de negócio ou de uma aplicação prejudicam a reputação.
Um tenant é um contêiner lógico dentro da sua conta SES. Você vincula a ele identidades, configuration sets e templates. Ele tem métricas de reputação próprias: bounces, reclamações (incluindo os feedback loops dos provedores) e sinais de terceiros.
Para enviar em nome de um tenant, passe o parâmetro TenantName na API v2. Via SMTP, adicione o cabeçalho X-SES-TENANT junto com X-SES-CONFIGURATION-SET. Os recursos usados precisam estar vinculados ao tenant; caso contrário, o envio falha.
| Política de reputação | Comportamento | Limites publicados pela AWS |
|---|---|---|
| Standard (padrão, recomendada) | Pausado quando o SES detecta um problema de alta gravidade | Bounces > 15% ou reclamações > 1% |
| Strict | Pausado diante de qualquer problema, mesmo de baixa gravidade | Bounces > 10% ou reclamações > 0,5% |
| None | Nenhuma pausa causada pela política, os problemas continuam registrados. O SES ainda pode pausar o tenant diante de um problema grave | - |
Um tenant pausado não consegue mais enviar; os outros tenants continuam enviando. A reativação é manual, pela API UpdateReputationEntityCustomerManagedStatus. Uma pausa aplicada pela equipe Trust & Safety da AWS exige abrir um chamado no Support. O SES publica os problemas detectados e as mudanças de status no EventBridge.
O isolamento limita o impacto de uma origem, mas a atividade somada dos tenants continua pesando na reputação da conta, cujos limites seguem valendo.
Os tenants não substituem SPF, DKIM, DMARC nem o Custom MAIL FROM.
Um tenant é regional e não é replicado: se você envia a partir de várias regiões na Europa, crie-o em cada uma. Sem aninhamento, 10.000 tenants por padrão (até 300.000 sob solicitação). Os tenants são cobrados à parte, por tenant e por mês: veja a página de preços do SES.
Preços com pagamento por uso
| Componente | Preço |
|---|---|
| Emails enviados | US$ 0,10 / 1.000 |
| Dados de saída (anexos) | US$ 0,12 / GB |
| IP dedicado padrão | US$ 24,95 / mês / IP |
| Managed Dedicated IPs | US$ 15 / mês + de US$ 0,08 a US$ 0,02 / 1.000, decrescente conforme o volume |
| Virtual Deliverability Manager | US$ 0,07 / 1.000 emails |
Planos do SES: desde 21 de julho de 2026, as contas novas (e as regiões de uma conta existente sem atividade SES faturada desde 1º de junho de 2025) começam no plano Essentials, a US$ 0,16 / 1.000 emails até 10 milhões por mês, sem custo fixo. É possível migrar a qualquer momento para a tarifa de pagamento por uso indicada acima.
Contas AWS novas: até US$ 200 em créditos Free Tier, que podem ser usados no SES, entre outros serviços.
Plano de ação: configuração em 6 etapas
- Criar uma identidade de domínio no console SES (região europeia de sua escolha)
- Configurar Easy DKIM: publicar os 3 CNAMEs fornecidos pelo SES
- Aguardar a verificação: até 72h para a propagação DNS
- Configurar Custom MAIL FROM: criar o subdomínio com MX e TXT SPF
- Publicar o registro DMARC: começar com
p=none, monitorar os relatórios - Sair do sandbox: enviar a solicitação de acesso à produção
Guias técnicos: outras plataformas de email transacional
Descubra nossos guias completos para outras soluções de email transacional:
- Postmark: configuração DKIM e REST API - Especialista em entregabilidade, DKIM 1024 bits, Message Streams
- SendGrid: autenticação de domínio e Web API v3 - DKIM 2048 bits com rotação, IP dedicado a partir de 50k/mês
- Mailgun: DKIM com rotação automática - Return-Path nativo, rotação DKIM 120 dias
- Mailjet: API v3.1 e configuração DKIM - DKIM 2048/4096 bits, aquisição Sinch
- Mandrill: integração Mailchimp transacional - Requisito Mailchimp Standard, blocos de 25k emails
- Brevo: configuração DKIM e SPF - 300 emails/dia grátis, DKIM TXT ou CNAME
FAQ
É obrigatório configurar Custom MAIL FROM?
Para o alinhamento SPF DMARC, sim. Sem Custom MAIL FROM, SPF autentica com amazonses.com, o que quebra o alinhamento. Se você conta apenas com DKIM para DMARC (o que funciona), Custom MAIL FROM ainda é recomendado para defesa em profundidade.
Qual região europeia escolher para o RGPD?
O SES oferece 7 regiões na Europa (Frankfurt, Irlanda, Londres, Paris, Estocolmo, Milão, Zurique), das quais Londres e Zurique ficam fora da UE. Escolha com base na latência e disponibilidade SMTP (Milão e Zurique não têm endpoint SMTP).
Os 3 CNAMEs Easy DKIM estão todos ativos simultaneamente?
A AWS não documenta o papel de cada CNAME. Publique os três: o SES gerencia as chaves e a rotação delas sem nenhuma ação sua no DNS.
Como testar a configuração antes de enviar em produção?
No sandbox, envie para endereços verificados. Use aws sesv2 send-email com um configuration set configurado para publicar eventos no SNS ou CloudWatch. Verifique os cabeçalhos DKIM e SPF recebidos.
Minha taxa de bounce está subindo enquanto SPF e DKIM passam: é um problema de DNS?
Não necessariamente. SPF e DKIM autenticam o remetente, mas não dizem nada sobre a qualidade da lista. Os bounces e as reclamações de uma origem (um cliente, uma unidade de negócio, uma aplicação) pesam na reputação. Identifique primeiro a origem que gera os bounces. Se vários clientes ou aplicações compartilham a conta, isole-os em tenants do SES para limitar o impacto de um sobre os outros. Os limites da conta continuam valendo.
Glossário
-
Easy DKIM: método SES que gera e gerencia automaticamente as chaves DKIM via 3 registros CNAME, com rotação automática.
-
Custom MAIL FROM: subdomínio configurado para substituir o domínio MAIL FROM padrão (
amazonses.com), necessário para o alinhamento SPF DMARC. -
BYODKIM: Bring Your Own DKIM - opção para usar suas próprias chaves DKIM em vez das geradas pelo SES (apenas 1 registro TXT).
-
Configuration Set: conjunto de regras SES para tracking, notificações de eventos e políticas TLS.
-
Tenant: contêiner lógico dentro de uma conta SES, com reputação própria, ao qual são vinculados identidades, configuration sets e templates.
-
Sandbox: modo inicial das contas SES limitando o envio a 200 emails/dia apenas para endereços verificados.
-
Virtual Deliverability Manager (VDM): funcionalidade paga do SES oferecendo um painel de métricas e recomendações automatizadas de entregabilidade.
Fontes oficiais
- Amazon SES Developer Guide
- SES Pricing
- SES Quotas
- Tenants do SES: isolamento de reputação (documentação da AWS)
- Lista de supressão no nível do tenant (documentação da AWS)
- Anúncio da AWS de agosto de 2025: isolamento por tenant e políticas de reputação automatizadas
- Blog da AWS: como implementar tenants no Amazon SES, parte 3 (limites das políticas)


