Como mandar correos con AWS
Hola, soy Álvaro Moya Herraiz, alumno del máster de Desarrollo Web Full Stack, MultiCloud y Multiplataforma y voy a enseñaros a como enviar correos con AWS.
Imaginemos que tenemos una aplicación en AWS la cual queremos que mande un correo cuando se registre un usuario, se realice una compra, etc. Para poder hacer esto, es necesario crear un usuario smtp en AWS.
Para hacer esto, primero nos dirigimos a la página de AWS. Una vez dentro iniciamos sesión y después buscamos el servicio «Amazon Simple Email Service».
Una vez dentro vamos al apartado «Verified identities» y clicamos en «Create identity».
Se nos abrirá una pantalla de configuración que deberemos rellenar de la siguiente forma
Una vez lo tenemos configurado, creamos la identidad. Nos saldrá que el correo no está verificado. Para ello iniciamos sesión en nuestro correo y lo verificamos mediante el correo que nos habrá mandado Amazon.
Si hemos seguido los pasos correctamente, ya tendremos nuestro correo verificado. Volvemos a «Verified identities» y veremos que ya tenemos una creada. El siguiente paso será clicar en «Account dashboard», y dentro de esta página bajamos un poco hasta que veamos lo siguiente
Clicamos en el botón para crear una credencial SMTP. Dentro, le damos un nombre y después clicamos en crear. Debería haber quedado algo parecido a lo siguiente
Para los siguientes pasos podemos sacar las credenciales desde aquí, pero también podemos descargarlas si así lo preferimos.
El siguiente paso será ir a IAM, y en usuarios, clicamos en el que acabamos de crear. Ahora, clicaremos en permisos y después en añadir permisos, donde haremos lo siguiente
Una vez añadido el permiso, vamos a «Credenciales de seguridad» y pulsamos el botón que dice «Crear una clave de acceso». Igual que antes, estas credenciales podemos descargarlas (lo mas recomendable ya que luego no será tan fácil acceder a ellas) o cogerlas directamente. Una vez tenemos las credenciales, vamos a una ventana de cmd (yo usaré cmder) y hacemos lo siguiente
Con esto, habremos iniciado sesión en nuestro dispositivo con las credenciales del usuario que tiene permisos de SES. A partir de ahora nos vamos al Mvc.
En nuestro Mvc nos dirigimos a appsettings.json y ponemos lo siguiente
Los campos UserName y Password corresponden a las credenciales SMTP que habíamos creado al principio. El campo server dependerá de la región donde hayamos creado la identidad de SES (en mi caso es us-east-1).
También deberemos instalar el nuget «AWSSDK.SimpleEmail»
Ahora escribimos el código necesario para poder mandar correos en nuestro EmailController
Creamos la vista con un pequeño formulario que reciba el email del destinatario, el asunto y el mensaje
Una vez tenemos el código, comprobamos que la aplicación funciona. Una cosa a tener en cuenta es que todo este tutorial esta basado en la capa gratuita de AWS y por tanto, debido a sus limitaciones, sólo podremos mandar correos al email que habíamos usado al principio, si usamos cualquier otro dará error
Ahora volvemos a nuestro correo para comprobar que efectivamente nos ha llegado el correo
Como podemos ver, el correo ha llegado tal cual lo habíamos escrito. Si no os aparece por ningún lado, recordad mirar en la carpeta de no deseados
Espero que este post te haya ayudado y haya resuelto todas tus dudas.
En el enlace a mi Git encontrarás el proyecto completo.
Un saludo.
Autor: Álvaro Moya Herraiz
Curso: Desarrollo Web Full Stack, MultiCloud y Multiplataforma
Centro: Tajamar
Año académico: 2021-2022
Enlace a Github: https://github.com/alvaroyako/PostCorreoAWS