Amazon SES: guía completa de configuración DNS y autenticación de email

Por CaptainDNS
Publicado el 20 de enero de 2026

Esquema mostrando el flujo de envío de email de Amazon SES con autenticación DKIM, SPF y DMARC
TL;DR
  • Amazon SES ofrece envío de email a 0.10$/1000 emails con 7 regiones EU para cumplimiento RGPD.
  • Easy DKIM genera 3 CNAME que sirven tanto para verificación de dominio como para firma DKIM (rotación automática cada 90 días).
  • Custom MAIL FROM es indispensable para el alineamiento SPF DMARC, sin él, SPF autentica con amazonses.com.
  • Para p=reject, combine Easy DKIM + Custom MAIL FROM + alineamiento relaxed (adkim=r, aspf=r).

¿Por qué Amazon SES merece tu atención?

Amazon SES procesa más de un trillón de emails al año desde su lanzamiento en 2011. Con precios de 0.10$ por 1 000 emails (sin niveles de volumen), es la opción más económica para envío transaccional y marketing.

Lo que marca la diferencia:

  • API v2 (septiembre 2019): mensajes hasta 40 MB, gestión nativa de unsubscribes, headers custom sin pasar por Raw email
  • 7 regiones EU: Frankfurt, Ireland, London, Paris, Stockholm, Milan, Zurich - DPA RGPD incluido automáticamente
  • Virtual Deliverability Manager: dashboard de reputación y recomendaciones automatizadas

Esta guía se centra en la configuración DNS y la autenticación. El objetivo: una entregabilidad óptima compatible con p=reject.

Arquitectura de envío SES y flujo de autenticación

Flujo de autenticación de email de Amazon SES con DKIM, SPF y DMARC

Cuando envías a través de SES:

  1. Tu aplicación llama a la API v2 o usa SMTP
  2. SES firma el mensaje con tu clave DKIM (dominio d=captaindns.com)
  3. El servidor destinatario verifica SPF (IP de envío), DKIM (firma), luego DMARC (alineamiento)

Configuración DNS completa

Easy DKIM: el método recomendado

Easy DKIM genera 3 registros CNAME que cumplen dos funciones:

  • Verificación de propiedad del dominio (no se necesita TXT _amazonses)
  • Firma DKIM con rotación automática cada 90 días
{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

Tamaño de clave: RSA 2048-bit por defecto (recomendado). La rotación gestiona automáticamente los roles active/passive/pending entre los 3 CNAME.

Custom MAIL FROM: el elemento crítico para DMARC

Sin Custom MAIL FROM, el sobre SMTP usa amazonses.com como dominio MAIL FROM. Resultado: SPF autentica con amazonses.com, no tu dominio, el alineamiento SPF DMARC falla.

Registros requeridos (ejemplo para mail.captaindns.com):

TipoNameValuePriority
MXmail.captaindns.comfeedback-smtp.eu-west-1.amazonses.com10
TXTmail.captaindns.com"v=spf1 include:amazonses.com ~all"-

Restricciones:

  • El Custom MAIL FROM debe ser un subdominio del dominio verificado
  • Un solo registro MX (varios = falla)
  • Este subdominio no debe recibir otros emails

SPF en el dominio raíz: opcional pero recomendado

Si usas Easy DKIM + Custom MAIL FROM, SPF en el dominio raíz no es requerido para DMARC (DKIM es suficiente). Sin embargo, AWS recomienda configurarlo:

captaindns.com  TXT  "v=spf1 include:amazonses.com ~all"

Alineamiento DMARC: configuración para p=reject

Matriz de alineamiento DMARC con Amazon SES

Lo que funciona (y lo que falla)

Alineamiento DKIM (método principal):

Configuración¿Alineado?¿DMARC vía DKIM?
Email verificado solo (sin dominio DKIM)NoNo
Dominio con Easy DKIM activado
Dominio con BYODKIM

Alineamiento SPF:

Configuración¿Alineado?¿DMARC vía SPF?
MAIL FROM por defecto (amazonses.com)NoNo
Custom MAIL FROM + aspf=r (relaxed)
Custom MAIL FROM + aspf=s (strict)NoNo (mismatch subdomain)

Registro DMARC recomendado

_dmarc.captaindns.com  TXT  "v=DMARC1;p=reject;adkim=r;aspf=r;rua=mailto:dmarc@captaindns.com"

Puntos clave:

  • adkim=r y aspf=r: alineamiento relaxed (autoriza subdominios)
  • Progresa de p=nonep=quarantinep=reject
  • Supervisa los informes rua antes de endurecer

Tabla resumen DNS

TipoHost/NameValueObligatorio
CNAME{token1}._domainkey.captaindns.com{token1}.dkim.amazonses.comSí (Easy DKIM)
CNAME{token2}._domainkey.captaindns.com{token2}.dkim.amazonses.comSí (Easy DKIM)
CNAME{token3}._domainkey.captaindns.com{token3}.dkim.amazonses.comSí (Easy DKIM)
MXmail.captaindns.comfeedback-smtp.{region}.amazonses.comSí (Custom MAIL FROM)
TXTmail.captaindns.com"v=spf1 include:amazonses.com ~all"Sí (Custom MAIL FROM)
TXT_dmarc.captaindns.com"v=DMARC1;p=reject;adkim=r;aspf=r;..."Recomendado
CNAMEtrack.captaindns.comr.{region}.awstrack.meOpcional (tracking)

Métodos de envío: 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"

Ventajas v2:

  • Mensajes hasta 40 MB (vs 10 MB en v1)
  • Headers custom nativos (List-Unsubscribe sin Raw email)
  • ListManagementOptions para la gestión de listas

Interfaz SMTP

Endpoint: email-smtp.{region}.amazonaws.com

PuertoProtocoloRecomendación
25STARTTLSFrecuentemente bloqueado por ISPs
465TLS implícitoAlternativa
587STARTTLSRecomendado
2587STARTTLSAlternativa al 587

Headers X-SES-* disponibles:

  • X-SES-CONFIGURATION-SET: asociar un configuration set
  • X-SES-MESSAGE-TAGS: añadir tags (key=value)

Cuotas y límites a conocer

CuotaSandboxProducción
Emails/24h200~50 000-100 000 (inicial)
Tasa de envío1/seg~14-50/seg (inicial)
Destinatarios/mensaje5050
Tamaño mensaje (API v2)40 MB40 MB

Salir del sandbox: vía Console SES o AWS CLI, plazo ~24h si la solicitud está completa.

Umbrales de reputación: las cifras críticas

Dashboard de reputación de Amazon SES con umbrales de alerta

MétricaWarningMáximoAcción
Bounce Rate5%10%Account review
Complaint Rate0.1%0.2%Account review

Mejores prácticas:

  • Activar la account-level suppression list (suprime automáticamente los hard bounces)
  • Configurar alertas CloudWatch sobre Reputation.BounceRate y Reputation.ComplaintRate
  • Soft bounces: SES reintenta automáticamente durante 12h

Precios 2025

ComponentePrecio
Emails enviados$0.10 / 1 000
Datos salientes (attachments)$0.12 / GB (1er GB gratis)
IP dedicada estándar$24.95 / mes / IP
Managed Dedicated IPs$15/mes + $0.08-0.02/1000 según volumen
Virtual Deliverability Manager$0.07 / 1 000 emails

Free tier (cuentas nuevas): 3 000 emails/mes durante 12 meses.

Plan de acción: configuración en 6 pasos

  1. Crear una identidad de dominio en la consola SES (región EU de tu elección)
  2. Configurar Easy DKIM: publicar los 3 CNAME proporcionados por SES
  3. Esperar la verificación: hasta 72h para la propagación DNS
  4. Configurar Custom MAIL FROM: crear el subdominio con MX y TXT SPF
  5. Publicar el registro DMARC: comenzar con p=none, monitorear los informes
  6. Salir del sandbox: enviar la solicitud de production access

FAQ

¿Es obligatorio configurar Custom MAIL FROM?

Para el alineamiento SPF DMARC, sí. Sin Custom MAIL FROM, SPF autentica con amazonses.com, lo que rompe el alineamiento. Si solo cuentas con DKIM para DMARC (lo cual funciona), Custom MAIL FROM sigue siendo recomendado para defensa en profundidad.

¿Qué región EU elegir para el RGPD?

Las 7 regiones EU (Frankfurt, Ireland, London, Paris, Stockholm, Milan, Zurich) son todas conformes con el RGPD con DPA incluido automáticamente. Elige según la latencia y la disponibilidad SMTP (Milan y Zurich no tienen endpoint SMTP).

¿Los 3 CNAME de Easy DKIM están activos simultáneamente?

No. Solo un CNAME está activo (resuelve con una clave pública p=...) en un momento dado. Los otros dos están en rotación (passive/pending). SES gestiona automáticamente la rotación cada ~90 días.

¿Cómo probar la configuración antes de enviar en producción?

En sandbox, envía a direcciones verificadas. Usa aws sesv2 send-email con un configuration set configurado para publicar eventos hacia SNS o CloudWatch. Verifica los headers DKIM y SPF recibidos.

Glosario

  • Easy DKIM: método SES que genera y gestiona automáticamente las claves DKIM mediante 3 registros CNAME, con rotación automática.

  • Custom MAIL FROM: subdominio configurado para reemplazar el dominio MAIL FROM por defecto (amazonses.com), requerido para el alineamiento SPF DMARC.

  • BYODKIM: Bring Your Own DKIM - opción para usar tus propias claves DKIM en lugar de las generadas por SES (1 solo registro TXT).

  • Configuration Set: conjunto de reglas SES para tracking, notificaciones de eventos y políticas TLS.

  • Sandbox: modo inicial de las cuentas SES que limita el envío a 200 emails/día hacia direcciones verificadas únicamente.

  • Virtual Deliverability Manager (VDM): funcionalidad de pago de SES que ofrece un dashboard de métricas y recomendaciones automatizadas de entregabilidad.

Fuentes oficiales

Artículos relacionados