Una web envía más correo del que parece: el aviso de un formulario de contacto, la confirmación de un pedido, el enlace para recuperar la contraseña. Por defecto el servidor los envía él mismo, "a pelo", y los grandes proveedores de correo desconfían de un servidor cualquiera: muchos acaban en spam o directamente rechazados. La solución habitual es que la web entregue sus correos a un servicio especializado, y Amazon SES es uno de los más baratos y fiables.
La mayoría de las aplicaciones, WordPress incluido, saben enviar por SMTP, el protocolo clásico del correo. SES ofrece exactamente eso: un servidor SMTP con un usuario y una contraseña. Esta guía los crea y los pone en la web.
Antes de empezar: qué significa cada cosa
- SES
- Simple Email Service, el servicio de Amazon para que las aplicaciones envíen correo.
- SMTP
- El protocolo con el que los programas envían correo a un servidor de correo. Casi cualquier aplicación lo admite: solo necesita la dirección del servidor, el puerto, un usuario y una contraseña.
- Credenciales SMTP
- El usuario y la contraseña que SES te da para enviar por SMTP. No son tu usuario de AWS: SES crea unos específicos.
- Identidad verificada
- Un dominio o una dirección de correo que has demostrado a Amazon que es tuyo. Solo se puede enviar "desde" una identidad verificada.
- Sandbox
- El modo de pruebas con el que empieza toda cuenta de SES: solo permite enviar a direcciones verificadas. Para una web real hay que pedir la salida (guía en esta sección).
- Puerto 587 y TLS
- El puerto es la "puerta" del servidor por la que se envía; 587 es la estándar para envío autenticado. TLS (o STARTTLS) es el cifrado de la conexión.
- Región
- Lugar del mundo donde está tu SES. La dirección del servidor SMTP incluye la región.
Paso a paso
Comprueba que el remitente está verificado
En la consola de SES, elige la región que vayas a usar (por ejemplo Irlanda,
eu-west-1) y entra en Identidades. Debe aparecer verificado el dominio desde el que envía la web (midominio.com) o, al menos, la dirección exacta (web@midominio.com). Si no hay nada, verifica el dominio siguiendo la guía de DKIM, SPF y DMARC de esta sección: sin eso, SES no dejará enviar y los correos irían al spam de todos modos.Crea las credenciales SMTP
En el menú de SES, Configuración de SMTP. Anota la dirección del servidor, que tiene la forma
email-smtp.eu-west-1.amazonaws.com, y el puerto 587. Pulsa Crear credenciales SMTP: te lleva a IAM con un nombre de usuario propuesto (algo comoses-smtp-user); puedes cambiarlo porsmtp-web-empresapara saber de qué es. Crea el usuario y, en la última pantalla, descarga o copia el usuario y la contraseña SMTP. La contraseña solo se muestra esta vez. Guárdala en un gestor de contraseñas.Configura WordPress
Instala un plugin de envío por SMTP (hay varios muy usados; busca "SMTP" en el instalador de plugins). En su configuración elige "Otro SMTP" o "Amazon SES por SMTP" y rellena: servidor
email-smtp.eu-west-1.amazonaws.com, puerto587, cifrado TLS, autenticación activada, usuario y contraseña SMTP del paso 2. Dirección y nombre del remitente: una dirección de tu dominio verificado (web@midominio.com) y el nombre de tu empresa. Guarda.O configura cualquier otra aplicación
Los mismos cinco datos sirven para cualquier programa que envíe correo: servidor, puerto 587, TLS, usuario y contraseña. En una aplicación propia suelen ir en un fichero de configuración o en variables de entorno; no los escribas en el código. Si la aplicación lo permite, añade también una cabecera o etiqueta que identifique de qué web vienen los correos: te ayudará cuando tengas varias.
Envía una prueba
Los plugins de SMTP tienen un botón de "enviar correo de prueba". Mándalo a una cuenta tuya. Si estás todavía en el sandbox de SES, esa cuenta debe ser una dirección verificada en SES; si no, SES rechazará el envío con un mensaje claro. Abre el correo recibido y mira que el remitente es el tuyo y que no ha caído en spam.
Pide salir del sandbox y vigila los envíos
Para que la web pueda escribir a cualquier dirección, pide a AWS la salida del sandbox (guía en esta sección). Después, en SES, Panel de la cuenta, verás cuántos correos salen cada día y qué porcentaje rebota o se marca como spam. Mira esa pantalla de vez en cuando: es la salud del correo de tu web.
Qué puede salir mal
El correo de prueba falla con "Email address is not verified"
O el remitente no es una identidad verificada en esa región, o estás en el sandbox y el destinatario tampoco lo es. Comprueba la región del servidor SMTP y la de la identidad: deben coincidir.
Falla con "authentication credentials invalid"
Las credenciales SMTP no son las claves de acceso normales de IAM, aunque se parezcan: hay que usar exactamente la contraseña SMTP que SES generó. Si la perdiste, crea unas nuevas y borra el usuario antiguo.
Se envía, pero llega al spam
Falta autenticación del dominio (DKIM, SPF, DMARC) o el contenido parece spam. Sigue la guía de verificación del dominio; después, revisa que el remitente sea de tu dominio y no uno gratuito.
El servidor no puede conectar por el puerto 587
Algunos alojamientos bloquean los puertos de correo salientes. Prueba el 2587 (SES también lo acepta con TLS) o pide a tu proveedor que lo abra. En máquinas Lightsail y EC2 nuevas, AWS limita el puerto 25, pero el 587 funciona.
En Simplio
En Simplio la pantalla Correo (SES) te muestra tus identidades por región y te dice si el dominio está verificado y qué registros DNS faltan; con un botón genera unas credenciales SMTP con permisos solo de envío y te enseña los cinco datos para pegar en WordPress o en tu aplicación. Después ves los envíos, rebotes y quejas de todas tus cuentas en el mismo sitio, con aviso por correo si el porcentaje de rebotes sube.
Lo mismo, en AWS y en Simplio
| En la consola de AWS | En Simplio | |
|---|---|---|
| Crear credenciales y configurarlas | SES, IAM, el plugin de la web: 3 herramientas, 6 pasos, unos 20 minutos | Botón "Credenciales SMTP" en la pantalla Correo: te da los 5 datos listos para pegar, 1 minuto |
| Saber si el correo de la web sale bien | Entrar en SES, región por región | Enviados, rebotes y quejas de todas tus cuentas en una pantalla, con aviso si se disparan |
| Varias webs y varias cuentas | Repetir todo en cada una | Lo mismo, en la misma lista |