Amazon SES es el servicio de correo saliente de AWS: barato y fiable para los correos que envía una aplicación (confirmaciones, avisos, facturas). Pero que el correo salga no es lo difícil; lo difícil es que llegue a la bandeja de entrada y no al spam. Para eso Gmail, Outlook y compañía exigen tres cosas que se demuestran en el DNS de tu dominio: DKIM (una firma criptográfica), SPF (qué servidores pueden enviar en tu nombre) y DMARC (qué hacer con lo que no cumpla lo anterior).
Si tu dominio está en Route 53, en la misma cuenta de AWS, SES puede crear buena parte de los registros por ti. Aun así conviene saber qué está poniendo y por qué.
Antes de empezar: qué significa cada cosa
- SES
- Simple Email Service, el servicio de Amazon para que tus aplicaciones envíen correo (confirmaciones, avisos, facturas).
- Route 53
- El servicio de DNS de Amazon, es decir, donde se gestiona a qué servidores apunta tu dominio.
- DNS y registros
- La "guía telefónica" de internet: traduce tu dominio a direcciones y guarda textos de configuración. Cada entrada es un registro, con un nombre, un tipo (TXT, CNAME, MX...) y un valor.
- Verificar el dominio
- Demostrarle a Amazon que el dominio es tuyo, añadiendo en su DNS unos registros que solo el dueño puede poner.
- DKIM
- Una firma digital que SES añade a cada correo y que el receptor comprueba con una clave publicada en tu DNS. Demuestra que el correo no se ha alterado y que sale de tu dominio.
- SPF
- Un registro de texto en tu DNS que dice qué servidores tienen permiso para enviar correo con tu dominio.
- DMARC
- Otro registro de texto que indica a los receptores qué hacer con los correos que no pasen DKIM o SPF (nada, cuarentena o rechazo) y dónde enviarte informes.
- MAIL FROM personalizado
- Un subdominio tuyo que SES usa como remitente técnico, para que las comprobaciones se hagan contra tu dominio y no contra el de Amazon.
- Sandbox
- El modo de pruebas en el que empieza toda cuenta de SES: solo permite enviar a direcciones verificadas. Hay una guía aparte para salir de él.
Paso a paso
Elige la región de SES
SES funciona por regiones y las identidades verificadas no se comparten entre ellas. Elige una cercana a tus usuarios o donde ya tengas el resto (por ejemplo Europa - Irlanda,
eu-west-1) y quédate con ella para siempre: la aplicación tendrá que enviar a esa región.Crea la identidad de dominio
En la consola de SES, Identidades, Crear identidad, tipo Dominio. Escribe el dominio sin "www" (
midominio.com). En la sección de DKIM deja Easy DKIM con la longitud de clave que SES proponga. Si el dominio está en Route 53 en esta cuenta, verás la casilla para publicar los registros DNS automáticamente: márcala. Crea la identidad.SES genera tres registros CNAME del tipo
xxxx._domainkey.midominio.com. Con la casilla marcada ya están en Route 53; si no, cópialos y créalos a mano en la zona alojada. La verificación tarda desde minutos hasta algunas horas; la identidad pasará a "Verificada" sola.Configura un dominio MAIL FROM personalizado (para el SPF)
Por defecto, los correos de SES salen con un remitente técnico en
amazonses.com, que es lo que mira el SPF. Para que la comprobación se haga contra tu dominio y DMARC pueda "alinear", configura un dominio MAIL FROM personalizado: dentro de la identidad, pestaña Dominio MAIL FROM personalizado, Editar, y pon un subdominio que no uses para nada más, por ejemplocorreo.midominio.com. Elige que SES use el valor por defecto de amazonses.com si el MX falla, para no dejar de enviar por un error de DNS.SES te pide dos registros en ese subdominio (de nuevo, con Route 53 puede ponerlos solo):
Nombre Tipo Valor correo.midominio.comMX 10 feedback-smtp.eu-west-1.amazonses.com(cambia la región por la tuya)correo.midominio.comTXT "v=spf1 include:amazonses.com ~all"Añade SPF también al dominio principal
Si envías correo desde más sitios (tu servidor de correo, un proveedor de boletines), tu dominio raíz ya tendrá un registro TXT
v=spf1. Añadeinclude:amazonses.coma ese mismo registro; nunca crees un segundo TXT que empiece por v=spf1, porque dos registros SPF invalidan los dos. Si no tienes ninguno, créalo en Route 53:Nombre: midominio.com Tipo: TXT Valor: "v=spf1 include:amazonses.com ~all"Si además usas Google Workspace o Microsoft 365, el valor llevará también su
includecorrespondiente, separados por espacios.Publica la política DMARC
DMARC es un registro TXT en el subdominio
_dmarc. Empieza en modo observación (p=none) para que nadie rechace tu correo mientras ajustas, y pide informes a una dirección que leas:Nombre: _dmarc.midominio.com Tipo: TXT Valor: "v=DMARC1; p=none; rua=mailto:dmarc@midominio.com"En Route 53: Crear registro, nombre
_dmarc, tipo TXT, valor entre comillas. Pasadas unas semanas sin sorpresas en los informes, sube ap=quarantiney después ap=reject. Gmail y Yahoo exigen DMARC para quien envía mucho correo, así que no te lo saltes.Verifica y envía una prueba
En la identidad de SES debe aparecer todo en verde: identidad verificada, DKIM correcto y MAIL FROM configurado. Envía un correo de prueba a una cuenta de Gmail y abre "Mostrar original": debe poner SPF: PASS, DKIM: PASS y DMARC: PASS. Si estás todavía en el sandbox de SES, solo podrás enviar a direcciones verificadas; tienes la guía para salir del sandbox en esta misma sección.
Qué puede salir mal
DKIM lleva horas en "pendiente"
Comprueba que los tres CNAME están exactamente como los dio SES, sin que el panel de DNS haya añadido el dominio dos veces (xxx._domainkey.midominio.com.midominio.com es el error típico fuera de Route 53). Y asegúrate de que los servidores NS del dominio en el registrador son los de la zona de Route 53 que estás editando; si el dominio se gestiona en otro sitio, Route 53 no sirve de nada.
SPF pasa pero DMARC falla
Falta la alineación: el SPF se evaluó contra amazonses.com, no contra tu dominio, porque no has configurado el MAIL FROM personalizado (paso 3). Con DKIM alineado suele bastar para que DMARC pase, pero configura el MAIL FROM igualmente.
El correo llega a spam con todo en PASS
La autenticación es necesaria, no suficiente. Influyen el contenido, que el dominio sea nuevo, la cantidad de rebotes y quejas. Empieza con poco volumen, retira las direcciones que rebotan y da siempre una forma clara de darse de baja. Y mira la reputación en el panel de SES.
Tengo el dominio en otra cuenta de AWS
SES no podrá publicar los registros solo. Cópialos de la identidad y créalos a mano en la zona de Route 53 de la otra cuenta. Funciona igual, solo que a mano.
En Simplio
En Simplio la pantalla Correo (SES) enseña tus dominios por región y te dice qué registros faltan (DKIM, SPF, DMARC, MAIL FROM) con el valor exacto de cada uno. Si el dominio está en Route 53, los pone con un botón. También ves la cuota, lo enviado, el porcentaje de rebotes y quejas, y recibes un aviso si una identidad deja de estar verificada.
Lo mismo, en AWS y en Simplio
| En la consola de AWS | En Simplio | |
|---|---|---|
| Saber qué registros faltan | Comparar SES con Route 53 a mano, uno por uno | La pantalla Correo te dice qué falta (DKIM, SPF, DMARC, MAIL FROM) con el valor exacto |
| Crear los registros | Hasta 7 registros en Route 53, con nombres largos que se copian mal: 30 minutos | Botón "Poner registros" si el dominio está en Route 53: 1 clic |
| Si deja de estar verificado | Nadie avisa hasta que el correo falla | Aviso por correo |