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

- 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

Cuando envías a través de SES:
- Tu aplicación llama a la API v2 o usa SMTP
- SES firma el mensaje con tu clave DKIM (dominio
d=captaindns.com) - 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):
| Tipo | Nombre | Valor | Prioridad |
|---|---|---|---|
| MX | mail.captaindns.com | feedback-smtp.eu-west-1.amazonses.com | 10 |
| TXT | mail.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

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) | No | No |
| Dominio con Easy DKIM activado | Sí | Sí |
| Dominio con BYODKIM | Sí | Sí |
Alineamiento SPF:
| Configuración | ¿Alineado? | ¿DMARC vía SPF? |
|---|---|---|
MAIL FROM por defecto (amazonses.com) | No | No |
| Custom MAIL FROM + aspf=r (relaxed) | Sí | Sí |
| Custom MAIL FROM + aspf=s (strict) | No | No (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=ryaspf=r: alineamiento relaxed (autoriza subdominios)- Progresa de
p=none→p=quarantine→p=reject - Supervisa los informes
ruaantes de endurecer
Tabla resumen DNS
| Tipo | Host/Nombre | Valor | Obligatorio |
|---|---|---|---|
| CNAME | {token1}._domainkey.captaindns.com | {token1}.dkim.amazonses.com | Sí (Easy DKIM) |
| CNAME | {token2}._domainkey.captaindns.com | {token2}.dkim.amazonses.com | Sí (Easy DKIM) |
| CNAME | {token3}._domainkey.captaindns.com | {token3}.dkim.amazonses.com | Sí (Easy DKIM) |
| MX | mail.captaindns.com | feedback-smtp.{region}.amazonses.com | Sí (Custom MAIL FROM) |
| TXT | mail.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 |
| CNAME | track.captaindns.com | r.{region}.awstrack.me | Opcional (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)
ListManagementOptionspara la gestión de listas
Interfaz SMTP
Endpoint: email-smtp.{region}.amazonaws.com
| Puerto | Protocolo | Recomendación |
|---|---|---|
| 25 | STARTTLS | Limitado por defecto en EC2 |
| 465 | TLS implícito | Alternativa |
| 2465 | TLS implícito | Alternativa al 465 |
| 587 | STARTTLS | Recomendado |
| 2587 | STARTTLS | Alternativa al 587 |
Cabeceras X-SES-* disponibles:
X-SES-CONFIGURATION-SET: asociar un configuration setX-SES-MESSAGE-TAGS: añadir tags (key=value)X-SES-TENANT: asociar el envío a un tenant (junto conX-SES-CONFIGURATION-SET)
Cuotas y límites a conocer
| Cuota | Sandbox | Producción |
|---|---|---|
| Emails/24h | 200 | Variable según el caso de uso |
| Tasa de envío | 1/seg | Variable según el caso de uso |
| Destinatarios/mensaje | 50 | 50 |
| Tamaño mensaje (API v2) | 40 MB | 40 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

| Métrica | Revisión de la cuenta | Pausa posible |
|---|---|---|
| Bounce Rate | 5% | 10% |
| Complaint Rate | 0.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.BounceRateyReputation.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ón | Comportamiento | Umbrales publicados por AWS |
|---|---|---|
| Standard (por defecto, recomendada) | Pausado cuando SES detecta un problema de gravedad alta | Bounces > 15% o quejas > 1% |
| Strict | Pausado ante cualquier problema, incluso de gravedad baja | Bounces > 10% o quejas > 0,5% |
| None | Sin 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
| Componente | Precio |
|---|---|
| Emails enviados | 0,10 $ / 1000 |
| Datos salientes (adjuntos) | 0,12 $ / GB |
| IP dedicada estándar | 24,95 $ / mes / IP |
| Managed Dedicated IPs | 15 $ / mes + de 0,08 $ a 0,02 $ / 1000, decreciente según el volumen |
| Virtual Deliverability Manager | 0,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
- Crear una identidad de dominio en la consola SES (región europea de tu elección)
- Configurar Easy DKIM: publicar los 3 CNAME proporcionados por SES
- Esperar la verificación: hasta 72h para la propagación DNS
- Configurar Custom MAIL FROM: crear el subdominio con MX y TXT SPF
- Publicar el registro DMARC: comenzar con
p=none, monitorizar los informes - 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:
- Postmark: configuración DKIM y API REST - Especialista en entregabilidad, DKIM 1024 bits, Message Streams
- SendGrid: autenticación de dominio y Web API v3 - DKIM 2048 bits con rotación, IP dedicada desde 50k/mes
- Mailgun: DKIM con rotación automática - Return-Path nativo, rotación DKIM 120 días
- Mailjet: API v3.1 y configuración DKIM - DKIM 2048/4096 bits, adquisición Sinch
- Mandrill: integración Mailchimp transaccional - Requisito Mailchimp Standard, bloques de 25k emails
- Brevo: configuración DKIM y SPF - 300 emails/día gratis, DKIM TXT o CNAME
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
- Amazon SES Developer Guide
- SES Pricing
- SES Quotas
- Tenants de SES: aislamiento de la reputación (documentación de AWS)
- Lista de supresión a nivel de tenant (documentación de AWS)
- Anuncio de AWS de agosto de 2025: aislamiento por tenant y políticas de reputación automatizadas
- Blog de AWS: implementar tenants en Amazon SES, parte 3 (umbrales de las políticas)


