Inicio / Guías / Configurar Amazon SES correctamente para entregabilidad y autenticación

Configurar Amazon SES con autenticación, MAIL FROM personalizado y warming

4,9 · 31 valoraciones
· Actualizado el 23 de junio de 2025

Pasos prácticos para configurar Amazon SES: identidad de dominio, DKIM 2048, MAIL FROM personalizado, DMARC alineado, SNS de bounces y warming de IP dedicada.

Configurar Amazon SES correctamente para entregabilidad y autenticación

Amazon SES (Simple Email Service) es una opción muy usada para envíos transaccionales y de marketing por su precio y su integración con AWS, pero requiere más cuidado que un ESP gestionado tipo Postmark o Klaviyo. La autenticación, el MAIL FROM personalizado, la gestión de bounces vía SNS y, sobre todo, el calentamiento de IPs dedicadas son la diferencia entre un SES bien configurado y un SES que envía mensajes que nadie recibe. Esta guía recorre la configuración recomendada paso a paso.

Verificación de identidad de dominio

SES exige verificar el dominio antes de enviar desde él. Hay dos modos:

  • Easy DKIM (recomendado). SES genera tres claves DKIM y te pide tres CNAMEs en tu DNS.
  • BYODKIM. Tú generas tu propia clave RSA y publicas el TXT.

Easy DKIM es más cómodo y permite a AWS rotar las claves automáticamente. BYODKIM tiene sentido si necesitas controlar el material criptográfico (políticas internas, multitenancy, sincronización con otros sistemas).

Pasos en la consola

  1. SES → Verified identities → Create identity.
  2. Tipo: Domain.
  3. Domain: tudominio.com.
  4. Marca “Use a custom MAIL FROM domain” (lo veremos abajo).
  5. Configura DKIM: Easy DKIM, RSA 2048.
  6. SES devuelve 3 CNAMEs del tipo xxx._domainkey.tudominio.com.
  7. Publícalos en tu DNS.
  8. Espera a que SES pase a “Verified” (15-60 minutos típicamente).

Verificación

dig +short CNAME 1234abc._domainkey.tudominio.com

Debe resolver a un nombre *.dkim.amazonses.com. SES gestiona la clave detrás del CNAME, lo que facilita rotación sin intervención.

SPF y MAIL FROM personalizado

Por defecto, SES usa un dominio de bounce propio (amazonses.com) en el Return-Path, lo que rompe alineamiento SPF con DMARC. Para que SPF “alinee” con tu dominio, hay que configurar un Custom MAIL FROM domain.

Configuración

  1. En la identidad verificada, “Custom MAIL FROM domain” → Edit.
  2. Define un subdominio dedicado, por ejemplo mail.tudominio.com o bounce.tudominio.com.
  3. SES pide dos registros:
    • MX hacia el endpoint de bounces de SES en tu región.
    • TXT con SPF.
  4. Publica:
mail.tudominio.com.   IN  MX   10 feedback-smtp.eu-west-1.amazonses.com.
mail.tudominio.com.   IN  TXT  "v=spf1 include:amazonses.com ~all"

(El sufijo de región varía: us-east-1, eu-west-1, etc.)

Por qué importa

Sin MAIL FROM personalizado:

  • Return-Path: [email protected].
  • SPF pasa, pero contra amazonses.com.
  • DMARC necesita alinear el From con SPF o DKIM. Solo DKIM alinea, no SPF.
  • Esto es frágil: si DKIM falla por cualquier razón, DMARC también.

Con MAIL FROM personalizado:

  • Return-Path: [email protected].
  • SPF pasa contra tu dominio.
  • DMARC alinea por SPF y DKIM. Más robusto.

DMARC sobre SES

Aplica la misma lógica que en cualquier dominio: empieza por p=none, monitoriza, sube a quarantine y, finalmente, reject. La diferencia es que SES, por su naturaleza, suele combinarse con otros remitentes en el mismo dominio. Asegúrate de que en los reportes RUA aparecen todas las IPs de SES (varias por región) y que cada flujo está pasando.

_dmarc.tudominio.com.  IN TXT  "v=DMARC1; p=quarantine; pct=100; rua=mailto:[email protected]"

Si quieres un control extra, puedes usar un subdominio dedicado para SES (transactional.tudominio.com) y aplicar política específica con sp=.

Procesamiento de bounces y quejas vía SNS

SES envía notificaciones de bounces, complaints y delivery a tópicos SNS configurables. Es imprescindible procesarlas para mantener la reputación.

Configuración mínima

  1. Crea un tópico SNS por tipo de notificación (ses-bounces, ses-complaints, ses-deliveries).
  2. En SES → Configuration sets, crea un set y vincúlalo a estos tópicos.
  3. En cada envío, indica el ConfigurationSetName.
  4. Suscribe a SNS un endpoint HTTPS o una cola SQS donde tu código procese.

Acciones por tipo

  • Bounce permanente (ver bounces SMTP 4xx vs 5xx): añade el destinatario a la lista de supresión y elimínalo de futuros envíos.
  • Bounce transient (soft): márcalo y reintenta solo si el flujo lo justifica; si se repite, trátalo como hard.
  • Complaint (queja): elimina al usuario de cualquier comunicación promocional inmediatamente. Ignorar quejas es la vía más rápida a un bloqueo de SES.
  • Delivery: útil para análisis pero no requiere acción.

SES tiene una lista de supresión propia (account-level y configuration-set-level). Activarla es una buena salvaguarda, pero no debe sustituir a tu propia gestión.

Sandbox y solicitud de acceso de producción

SES nuevo está en “sandbox”: solo puedes enviar a direcciones verificadas y con límites bajos. Para enviar a cualquier destinatario y aumentar la cuota:

  1. Configura SPF, DKIM y MAIL FROM personalizado.
  2. Implementa el procesamiento de bounces y complaints.
  3. Solicita acceso a producción desde la consola.
  4. AWS pide información sobre tipo de mensajes, lista, gestión de bajas y procesamiento de bounces. Responde con detalle.

Pasar a producción suele tardar entre 24 y 48 horas. Si te deniegan, AWS suele indicar qué falta.

IPs compartidas vs dedicadas

SES ofrece tres modelos:

  • IPs compartidas (por defecto). Buen punto de partida; reputación administrada por AWS.
  • Dedicated IPs (managed). Pool de IPs dedicadas con warming automático.
  • Dedicated IPs (BYO). Tú gestionas el warming completo.

Recomendaciones por volumen:

  • < 100k mensajes/mes: compartidas.
  • 100k - 1M mensajes/mes: managed dedicated.
  • 1M mensajes/mes: dedicadas BYO con plan propio de warming.

Una IP dedicada infrautilizada perjudica más que beneficia: los proveedores no ven volumen suficiente para asignarle reputación clara.

Configuration sets y métricas

Los configuration sets son la unidad lógica de configuración por flujo. Crea uno por caso de uso:

  • transactional-orders
  • marketing-newsletter
  • notifications-system

Cada uno puede tener:

  • Tópico SNS distinto.
  • Sending policy diferente (sandbox o producción).
  • Tracking abierto/clic activado o no.
  • IP pool específico (si usas dedicadas).

Esto permite analizar reputación por flujo y, sobre todo, aislar problemas: una campaña con problemas no contamina los OTPs.

CloudWatch expone métricas por configuration set: bounce rate, complaint rate, delivery rate, send count. Configura alarmas en bounce > 2 % y complaint > 0,1 % para detectar incidentes antes de que SES suspenda el envío.

Tracking de aperturas y clics

SES puede reescribir enlaces para tracking. Si lo activas:

  • Configura un dominio dedicado al wrapper (click.tudominio.com) bajo HTTPS válido.
  • Asegúrate de que el dominio del wrapper tiene su propio MX/A coherente.
  • Verifica que el wrapper no rompe el endpoint de unsubscribe: la URL de baja debe ser directa, sin pasar por tracking.

El tracking aumenta tasas reportadas, pero los proveedores algunos lo ven con sospecha si el wrapper no está bien autenticado. La regla: si activas tracking, hazlo con calidad técnica completa.

Verificación rápida

dig +short TXT tudominio.com                 # SPF principal
dig +short CNAME *._domainkey.tudominio.com  # DKIM (tres CNAMEs)
dig +short MX mail.tudominio.com             # MAIL FROM
dig +short TXT mail.tudominio.com            # SPF MAIL FROM
dig +short TXT _dmarc.tudominio.com          # DMARC

Envía un email desde SES a una cuenta de Gmail personal. En cabeceras:

Authentication-Results: mx.google.com;
       dkim=pass [email protected] header.s=u3xxx
       spf=pass smtp.mailfrom=mail.tudominio.com
       dmarc=pass header.from=tudominio.com

Si SPF aparece “neutral” o “softfail”, revisa MAIL FROM. Si DKIM falla, revisa CNAMEs.

Errores frecuentes

No configurar MAIL FROM personalizado

El error más común. Funciona técnicamente, pero rompe la robustez de DMARC.

No procesar bounces

SES suspende automáticamente el envío si la bounce rate supera el 5 % o complaint rate supera el 0,5 %. Procesar las notificaciones es prevención obligatoria.

Mezclar transaccional y marketing en la misma identidad

Una queja en marketing daña la reputación que necesitas para entregar OTPs. Sepáralos en subdominios y configuration sets distintos.

IP dedicada con bajo volumen

Pagar una dedicada y enviar 5.000 mensajes/mes da peor placement que las compartidas. Solo merece la pena con volumen alto.

Saltarse el warming en dedicadas

Una IP dedicada nueva manda mensajes a “ningún cliente” durante el warming. Si saltas pasos, los proveedores asumen comportamiento anómalo.

No contestar bien al cuestionario de salida de sandbox

Respuestas vagas suelen llevar a denegación. AWS quiere ver que entiendes lo que vas a enviar y cómo gestionarás bajas y bounces.

Recursos relacionados

Si quieres profundizar, prueba estas herramientas gratuitas: Domain Health, mail tester, validador SPF y validador DMARC.

¿Necesitas que alguien lleve tu canal de email entero? Abalola Mail es la agencia de retención y email marketing de Abalola para ecommerce: estrategia, producción y operación del stack sobre Klaviyo, Mailchimp o Brevo.

Preguntas frecuentes

¿Qué es MAIL FROM personalizado en SES y por qué importa?
MAIL FROM personalizado permite que el Return-Path use un subdominio bajo tu dominio en lugar de amazonses.com, lo que alinea SPF con tu From y mejora la conformidad DMARC.
¿Cuánto tarda el warming de una IP dedicada en SES?
Amazon aplica un plan automático de aproximadamente 45 días si activas el calentamiento gestionado. Si gestionas tú el ramp-up, planifica entre 4 y 6 semanas para alcanzar tu volumen objetivo.
¿IP compartida o dedicada en SES?
Compartida es suficiente cuando envías menos de 100.000 mensajes diarios o tu volumen es irregular. Dedicada compensa cuando envías volumen alto y constante y quieres aislar tu reputación.
¿Cómo gestiono bounces y quejas en SES?
Configura SNS topics para bounces y complaints, conéctalos a una Lambda o cola y suprime las direcciones afectadas en tu base de datos antes del siguiente envío.
¿Por qué SES exige DKIM 2048 en cuentas nuevas?
Las claves de 1024 bits están deprecadas por seguridad. SES genera por defecto DKIM 2048 con tres CNAMEs delegados que rotan automáticamente la clave en el dominio del cliente.
¿Puedo usar SES con mi dominio sin verificarlo?
No. La verificación de identidad de dominio (o de email) es obligatoria. Sin ella, SES rechaza los envíos.
¿Hace falta DMARC para usar SES?
No es obligatorio para enviar, pero sí para asegurar entregabilidad sostenida en Gmail/Yahoo y cumplir requisitos de bulk senders.