Verificación de correos con AWS SES, Lambda y Terraform: de cero al envío

Guía de IaC para verificar remitentes con AWS SES y una Lambda en Node.js (SDK v3) usando Terraform. Incluye sandbox, pruebas y salida a producción.

19 ago 2025 • 5 min de lectura • Equipo Q2BSTUDIO

Inteligencia-Artificial-

Quiero llevarte desde cero hasta el primer correo de verificación enviado por AWS usando Terraform para crear la infraestructura y AWS Lambda Node.js con AWS SDK v3 para enviar mensajes. La idea es provisionar todo como código, empaquetar una pequeña función de envío y probar en minutos.

Problema que resolvemos Casi toda aplicación necesita confirmar que un correo realmente pertenece al usuario. En lugar de acoplar el envío al backend principal vamos a aislar la responsabilidad en una Lambda ligera aplicando buenas prácticas de ingeniería como separación de capas y principios SOLID y DRY. Resultado bajo acoplamiento, escalado automático y gobernanza sencilla.

Qué vamos a montar Un Email Identity en Amazon SES para el remitente. Una IAM Role mínima para la Lambda. Una Lambda en Node.js 20 que usa AWS SDK v3 SESv2 para enviar correos. Opcionalmente una Function URL para llamar la Lambda por HTTP y testar con curl o Postman.

Observación importante sobre SES Las cuentas nuevas empiezan en sandbox. En sandbox solo se puede enviar a direcciones verificadas tanto remitente como destinatario y con límites bajos. Para enviar a cualquier dirección hay que solicitar salida del sandbox. Aquí mostraremos cómo validar identidades y cómo probar aun estando en sandbox.

Prerequisitos Cuenta AWS configurada con aws configure. Terraform 1.5. Node.js 20 y npm. Región compatible con SES ejemplo us-east-1.

Estructura de carpetas sugerida ses-verify slash app slash package json tsconfig json src slash config ts dto ts email slash SesEmailClient ts EmailService ts handler ts build generado por el script infra slash main tf variables tf outputs tf

Paso 1 Infra con Terraform crea los recursos SES Lambda IAM y Function URL mediante archivos variables tf main tf y outputs tf. Variables clave project_name aws_region sender_email lambda_package_path expose_function_url function_url_auth_type. El main tf debe definir provider aws recurso aws sesv2 email identity para el remitente rol IAM con politica basica de logs y politica que permita ses SendEmail recurso aws lambda function apuntando al paquete zip y opcional recurso aws lambda function_url cuando se quiera exponer para pruebas.

Paso 2 Lambda en Node.js diseño recomendado Separar responsabilidades en SesEmailClient que encapsula el cliente SESv2 EmailService que implementa el caso de uso enviar verificacion config para centralizar variables de entorno y handler que expone la función Lambda. Usar SendEmail del SESv2 con FromEmailAddress Destination Content Simple y codificar tanto HTML como texto plano.

Dependencias sugeridas en app package json @aws-sdk slash client-sesv2 y devDependencies typescript y tipos para aws lambda. Compilacion con tsc salida en dist y empaquetado en build slash lambda zip incluyendo dist node_modules y package json.

Ejemplo de variables de entorno SES_REGION y SENDER_EMAIL pasar desde Terraform como environment variables a la Lambda. En TypeScript centralizar en un modulo config que lea process env y proporcione region y sender.

Paso 3 Build y empaquetado dentro de app ejecutar npm ci luego npm run build y npm run package para generar build slash lambda zip que referenciará Terraform.

Paso 4 Deploy con Terraform en la raiz del proyecto ejecutar terraform -chdir=infra init y luego terraform -chdir=infra apply -var=aws_region=us-east-1 -var=sender_email=tu-remitente@ejemplo.com -var=lambda_package_path=../build/lambda.zip -var=expose_function_url=true. SES enviará un correo de verificación al remitente proporcionado y será necesario hacer clic en el enlace recibido para confirmar la identidad.

Nota sobre sandbox en SES el destinatario también debe estar verificado o usar el mailbox simulator. Para envío a cualquier dominio solicitar acceso a producción en SES y configurar buenas prácticas de reputación.

Paso 5 Pruebas Opcion A invocar directamente la Lambda con AWS CLI usando aws lambda invoke y un payload JSON subido desde un fichero para evitar inline JSON. Opcion B si activaste expose_function_url capturar la URL desde terraform output function_url y llamar con curl o desde Postman enviando un POST con body JSON que contenga to code subject y link.

Recomendaciones para producción Si usas Function URL considerar autorizacion AWS_IAM WAF y CDN. Verificar dominio y configurar DKIM y DMARC para mejorar entregabilidad. Usar templates de SES Configuration Sets IP pools y metricas para observabilidad y control de reputacion.

Buenas practicas de seguridad Minimizar permisos IAM otorgar solo ses SendEmail y logs basicos a la Lambda. Aplicar validacion del payload y limites de tasa desde la capa de invocacion. Para APIs públicas usar autenticacion y protecciones adicionales.

Proximos pasos y escalado Integrar con sistemas de plantilla y personalizacion para email transaccional. Monitorizar bounces y complaints. Automatizar solicitud de salida de sandbox y rotacion de claves si corresponde.

Sobre Q2BSTUDIO Q2BSTUDIO es una empresa de desarrollo de software a medida especializada en aplicaciones a medida y software a medida. Ofrecemos servicios cloud aws y azure, soluciones de inteligencia artificial e ia para empresas, agentes IA, servicios inteligencia de negocio y consultoria en power bi. Tambien contamos con equipos expertos en ciberseguridad para proteger tus sistemas y datos. Si buscas un partner para crear flujos de verificacion de correo integrados con tu aplicacion o desplegar infra como codigo con Terraform podemos ayudar desde el diseno hasta la puesta en produccion.

Palabras clave para posicionamiento aplicaciones a medida software a medida inteligencia artificial ciberseguridad servicios cloud aws y azure servicios inteligencia de negocio ia para empresas agentes IA power bi

Resumen rapido sigue estos pasos preparar codigo TypeScript y handler compilar y empaquetar crear infra con Terraform validar el remitente en SES probar con Lambda invoke o Function URL y cuando estés listo salir del sandbox y verificar dominio con DKIM DMARC para buena entregabilidad. Con este enfoque obtienes un envio de verificacion desacoplado, seguro y escalable listo para integrarse en aplicaciones modernas.

¿UNA PAUSA?

Juega un momento antes de irte

NUESTROS SERVICIOS

Cómo podemos ayudarte

Inteligencia artificial

Agentes de IA, chatbots y asistentes inteligentes que automatizan tareas y atienden a tus clientes 24/7 para mejorar la eficiencia de tu negocio.

Más info

Desarrollo de software

Aplicaciones web, móviles y de escritorio, intranets, e-commerce, SaaS y plataformas de gestión diseñadas para las necesidades concretas de tu empresa.

Más info

Servicios cloud

Migración, infraestructura, hosting gestionado, alta disponibilidad y seguridad en Microsoft Azure y Amazon Web Services para que tu negocio escale sin límites.

Más info

Ciberseguridad y pentesting

Auditorías de seguridad, test de intrusión (pentesting) y protección de aplicaciones, datos e infraestructura on-premise y cloud, con hacking ético y cumplimiento normativo.

Más info

Business Intelligence

Cuadros de mando y análisis de datos con Power BI: integramos tus fuentes, diseñamos dashboards y KPIs y convertimos tus datos en decisiones.

Más info

Automatización de procesos

Automatizamos tareas repetitivas y conectamos tus aplicaciones con n8n, Power Automate, Make y RPA, eliminando trabajo manual y aumentando la productividad.

Más info

Formación para empresas

Formamos a tus equipos en tecnología con criterio: desarrollo web, bases de datos, Git, buenas prácticas y seguridad, automatización con n8n, inteligencia artificial para empresas y creación de soluciones de IA con Azure AI Foundry.

Más info

Auditoría de código

Auditamos el código que creas tú, tu equipo o una IA: te decimos qué está bien y qué mejorar, lo securizamos y lo dejamos listo para producción, web o app.

Más info

Generación de imágenes con IA

Creamos por ti las imágenes que necesita tu negocio con inteligencia artificial: producto, redes, publicidad, ilustración y avatares. Tú nos dices qué quieres y te lo entregamos listo para usar.

Más info

Generación de vídeos con IA

Creamos por ti vídeos con inteligencia artificial: promocionales, para redes, presentadores virtuales, doblaje y animaciones. Nos cuentas la idea y te lo entregamos montado y listo para publicar.

Más info

Avatares conversacionales con IA

Creamos avatares conversacionales con IA —humanos digitales con cara y voz— que atienden a tus clientes y equipos con el conocimiento de tu empresa, en tu web, monitores interactivos, WhatsApp o Teams.

Más info

Marketing Online e IA

Google Ads, Meta Ads, LinkedIn Ads y posicionamiento en motores de IA (GEO/AEO): captamos clientes y hacemos que tu marca aparezca donde te buscan, también en ChatGPT, Gemini y Perplexity.

Más info

¿Tienes un proyecto en mente?

Cuéntanos tu visión y la convertimos en una solución de software. Sea cual sea el alcance, hacemos realidad tu idea.