Ir al contenido principal

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

Por CaptainDNS
Publicado el 20 de enero de 2026

Actualizado el 29 de septiembre 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 $ por cada 1000 emails con la tarifa de pago por uso, con 7 regiones en Europa.
  • Easy DKIM genera 3 CNAME que sirven tanto para verificación de dominio como para firma DKIM (rotación automática gestionada por AWS).
  • 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).
  • Si los bounces suben mientras SPF y DKIM pasan, revisa la reputación por origen: los tenants de SES aíslan cada cliente o aplicación, sin proteger la cuenta.

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

Amazon SES procesa más de un billón de emails al año desde su lanzamiento en 2011. Con precios de 0,10 $ por cada 1000 emails en pago por uso (fuera de los planes Essentials, Pro y Enterprise), es una de las opciones más económicas para envío transaccional y marketing.

Lo que marca la diferencia:

  • API v2 (septiembre 2019): mensajes hasta 40 MB, gestión nativa de bajas, cabeceras personalizadas sin pasar por Raw email
  • 7 regiones en Europa: Fráncfort, Irlanda, Londres, París, Estocolmo, Milán, Zúrich
  • Virtual Deliverability Manager: panel 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 de claves, gestionada por 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

En Milán y Zúrich, el destino incluye la región: {token}.dkim.eu-south-1.amazonses.com y {token}.dkim.eu-central-2.amazonses.com.

Tamaño de clave: RSA 2048-bit por defecto (recomendado).

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):

TipoNombreValorPrioridad
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). Sirve sobre todo a los demás servicios que envían con tu dominio raíz:

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 activadoSíSí
Dominio con BYODKIMSíSí

Alineamiento SPF:

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

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=none → p=quarantine → p=reject
  • Supervisa los informes rua antes de endurecer

Tabla resumen DNS

TipoHost/NombreValorObligatorio
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 (seguimiento)

En Milán y Zúrich, el destino DKIM es {token}.dkim.<región>.amazonses.com.

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)
  • Cabeceras personalizadas nativas (List-Unsubscribe sin Raw email)
  • ListManagementOptions para la gestión de listas

Interfaz SMTP

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

PuertoProtocoloRecomendación
25STARTTLSLimitado por defecto en EC2
465TLS implícitoAlternativa
2465TLS implícitoAlternativa al 465
587STARTTLSRecomendado
2587STARTTLSAlternativa al 587

Cabeceras X-SES-* disponibles:

  • X-SES-CONFIGURATION-SET: asociar un configuration set
  • X-SES-MESSAGE-TAGS: añadir tags (key=value)
  • X-SES-TENANT: asociar el envío a un tenant (junto con X-SES-CONFIGURATION-SET)

Cuotas y límites a conocer

CuotaSandboxProducción
Emails/24h200Variable según el caso de uso
Tasa de envío1/segVariable según el caso de uso
Destinatarios/mensaje5050
Tamaño mensaje (API v2)40 MB40 MB

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

Umbrales de reputación: las cifras críticas

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

MétricaRevisión de la cuentaPausa posible
Bounce Rate5%10%
Complaint Rate0.1%0.5%

AWS recomienda mantenerse por debajo del 2% de bounces.

Mejores prácticas:

  • Comprobar que la account-level suppression list está activa (por defecto en las cuentas creadas desde finales de 2019): cubre los hard bounces y las quejas
  • Con tenants, limitar la lista de supresión a cada tenant (SuppressionScope=TENANT): un hard bounce va entonces a la lista del tenant y a la lista global gestionada por AWS, no a la de la cuenta (tenants: ver más abajo)
  • Configurar alertas CloudWatch sobre Reputation.BounceRate y Reputation.ComplaintRate
  • Soft bounces: SES reintenta hasta 14h por defecto, duración ajustable de 5 min a 14h en el configuration set (MaxDeliverySeconds)

Tenants de SES: aislar la reputación por cliente o aplicación

Una caída de la entregabilidad no siempre viene del DNS. SPF y DKIM pueden pasar mientras los bounces y las quejas de un cliente, una unidad de negocio o una aplicación dañan la reputación.

Un tenant es un contenedor lógico dentro de tu cuenta SES. Se le asocian identidades, configuration sets y plantillas. Tiene sus propias métricas de reputación: bounces, quejas (incluidos los bucles de retroalimentación de los proveedores de correo) y señales de terceros.

Para enviar en nombre de un tenant, pasa el parámetro TenantName en la API v2. Por SMTP, añade la cabecera X-SES-TENANT junto con X-SES-CONFIGURATION-SET. Los recursos utilizados deben estar asociados al tenant; si no, el envío falla.

Política de reputaciónComportamientoUmbrales publicados por AWS
Standard (por defecto, recomendada)Pausado cuando SES detecta un problema de gravedad altaBounces > 15% o quejas > 1%
StrictPausado ante cualquier problema, incluso de gravedad bajaBounces > 10% o quejas > 0,5%
NoneSin pausa derivada de la política, los problemas se siguen registrando. SES puede pausar igualmente el tenant ante un problema grave-

Un tenant pausado ya no puede enviar; los demás tenants siguen enviando. La reactivación es manual, mediante la API UpdateReputationEntityCustomerManagedStatus. Una pausa aplicada por el equipo Trust & Safety de AWS requiere abrir un caso en Support. SES publica los problemas detectados y los cambios de estado en EventBridge.

El aislamiento limita el impacto de un origen, pero la actividad acumulada de los tenants sigue pesando en la reputación de la cuenta, cuyos umbrales siguen aplicándose.

Los tenants no sustituyen a SPF, DKIM, DMARC ni al Custom MAIL FROM.

Un tenant es regional y no se replica: si envías desde varias regiones de Europa, créalo en cada una. Sin anidamiento, 10 000 tenants por defecto (hasta 300 000 bajo solicitud). Los tenants se facturan aparte, por tenant y por mes: consulta la página de precios de SES.

Precios de pago por uso

ComponentePrecio
Emails enviados0,10 $ / 1000
Datos salientes (adjuntos)0,12 $ / GB
IP dedicada estándar24,95 $ / mes / IP
Managed Dedicated IPs15 $ / mes + de 0,08 $ a 0,02 $ / 1000, decreciente según el volumen
Virtual Deliverability Manager0,07 $ / 1000 emails

Planes de SES: desde el 21 de julio de 2026, las cuentas nuevas (y las regiones de una cuenta existente sin actividad facturada en SES desde el 1 de junio de 2025) empiezan en el plan Essentials, a 0,16 $ / 1000 emails hasta 10 millones al mes, sin cuota fija. Se puede pasar en cualquier momento a la tarifa de pago por uso indicada arriba.

Cuentas de AWS nuevas: hasta 200 $ en créditos Free Tier, utilizables, entre otros servicios, en SES.

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

  1. Crear una identidad de dominio en la consola SES (región europea 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, monitorizar los informes
  6. Salir del sandbox: enviar la solicitud de acceso a producción

Guías técnicas: otras plataformas de email transaccional

Descubre nuestras guías completas para otras soluciones de email transaccional:

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 europea elegir para el RGPD?

SES ofrece 7 regiones en Europa (Fráncfort, Irlanda, Londres, París, Estocolmo, Milán, Zúrich), de las cuales Londres y Zúrich están fuera de la UE. Elige según la latencia y la disponibilidad SMTP (Milán y Zúrich no tienen endpoint SMTP).

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

AWS no documenta el papel de cada CNAME. Publica los tres: SES gestiona las claves y su rotación sin que tengas que tocar el DNS.

¿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 las cabeceras DKIM y SPF recibidas.

Mi tasa de bounces sube mientras SPF y DKIM pasan: ¿es un problema de DNS?

No necesariamente. SPF y DKIM autentican al remitente, no dicen nada sobre la calidad de la lista. Los bounces y las quejas de un origen (un cliente, una unidad de negocio, una aplicación) pesan en la reputación. Identifica primero el origen que genera los bounces. Si varios clientes o aplicaciones comparten la cuenta, aíslalos en tenants de SES para limitar el impacto de uno sobre los demás. Los umbrales de la cuenta siguen aplicándose.

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 seguimiento, notificaciones de eventos y políticas TLS.

  • Tenant: contenedor lógico dentro de una cuenta SES, con su propia reputación, al que se asocian identidades, configuration sets y plantillas.

  • 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 panel de métricas y recomendaciones automatizadas de entregabilidad.

Fuentes oficiales

Artículos relacionados