Integrando SendGrid en Visual Studio
¿QUE ES SEND GRID?
SendGrid en un servicio que nos permite el envío de emails de forma automatizada a través de nuestra aplicación (NO te provee de un dominio, ese dominio lo pones tú, si es que te hace falta), cuenta con una arquitectura escalable y un servicio de analítica de datos personalizable en tiempo real, esto nos permite conocer el número de correos que ha enviado nuestra aplicación, si se entregan o no, si han sido leídos o si han entrado a través de la bandeja de spam.
Un Servicio muy completo que es gratuito si somos empresa para los primeros 12.000 correos que enviemos al mes () o 25.000/mes gratuitos si contamos con una suscripción de Azure. A partir de ahí, como es lógico, cuenta con un plan mensual de facturación escalable en función del tráfico de nuestra aplicación.
¿ COMO ME REGISTRO EN SENDGRID ?
Podemos registrarnos bien a través de su web, www.sendgrid.com , o bien a través de nuestra suscripción en Azure https://manage.windowsazure.com/ , (soy un romántico y utilizo el portal antiguo, sorry) en la pestaña inferior izquierda pinchamos en Nuevo / Tienda / Servicios de Desarrolladores / SendGrid. Elegimos el plan de datos (yo humildemente opto por el free), elegimos el nombre para nuestro servicio de correos, la región desde la cual se enviarán (por el momento no cuentan con servidores en Europa) y aceptamos la compra. Hecho esto, ya tenemos creado nuestro servicio SendGrid.
¿COMO LO INTEGRO EN MI APLICACIÓN?
SendGrid en su web cuenta con varios ejemplos de implementación según el lenguaje que vayamos a utilizar. En concreto, aporta soluciones para C#, Go, Java, Node.js, Perl, PHP, Python y Ruby
https://sendgrid.com/docs/Integrate/Code_Examples/index.html
También tiene documentación de implementación bastante detallada publicada en GitHub.
https://github.com/sendgrid/sendgrid-csharp#how-to-create-an-email
Si por ejemplo queremos integrar SendGrid en un proyecto MVC, podemos hacerlo por estas dos vías:
A) UTILIZANDO EL NUGET DE SENGRID
- Nos descargamos el Nuget – SendGrid.SmtpApi
- Accedemos a la página de SendGrid bien de la forma tradicional o redirigidos desde el portal de Azure. En el desplegable lateral, pulsamos Settings /ApiKeys / Create Api Key. Crearemos la API Key definiendo los permisos que tendrá esta key(desde solamente enviar correos , hasta poder configurar el acceso a estadísticas, alertas, estructura detallada de nuestro correo ).
- Una vez aceptemos la configuración de permisos nos genera la API Key. Copiadla en lugar seguro, pues una vez salimos de la pantalla de la key no se puede recuperar por seguridad y nos tocará volver a generar otra si la perdemos.
Crearemos una clase con un método como el siguiente
- Implementaremos el método en el Controller que queramos, recuperando a través de la Vista los datos que queremos que el usuario de nuestra aplicación nos facilite
B) A TRAVES DEL WEB. CONFIG
- En el Web Config añadimos el siguiente código al final
Donde userName y Password son respectivamente nuestro usuario y password para acceder a SendGrid. Si creas el servicio SendGrid a través de Azure nos los genera automáticamente al contratarlo. (El parámetro from que añadimos al smtp no es indispensable)
- Creamos una clase con un método con una estructura como esta:
- Igual que antes lo consumiremos en el Controller de turno pasándole los valores que necesitemos a través de la vista
BONUS TRACK
Tened especial cuidado de no publicar por error las claves de SendGrid en vuestro proyecto Github o similar, porque os las bloquean por seguridad casi al instante, comprobado personalmente. Os emplazo al siguiente post!!