SendGrid es un servicio que nos permite administrar el envío de correos electrónicos y hoy aprenderemos a utilizarlo mediante nuestra suscripción de Microsoft Azure.
Ingresamos en Microsoft Azure, seleccionamos «Servicios de desarrollo», «SendGrid Email Delivery» y vamos a ingresar los siguientes datos:
- Nombre
- Clave
- Grupo de recursos (el que ustedes deseen)
- Tipo de plan (en esta ocasión seleccionamos gratuito)
Una vez que se crea se nos despliega la siguiente información, seleccionamos el icono de la llave para que nos despliegue nuestro usuario y lo copiamos
Ahora vamos a crear un proyecto de ASP en Visual Studio
Será de tipo MVC
Instalamos el paquete NuGet de SendGrid
Ahora en nuestro Home Controller vamos a agregar la siguiente función
private async void sendEmail() { // Creamos el objeto de tipo Email SendGridMessage myMessage = new SendGridMessage(); // Se agrega el remitente del email myMessage.From = new MailAddress("myname@example.com"); // Se crea una lista con los destinarios List<String> recipients = new List<String> { @"Bacon Ipsum <user@domain.com>", @"Lorem Ipsum <user@domain.com>" }; // se agregan los destinarios myMessage.AddTo(recipients); // se agrega el tema del email myMessage.Subject = "Testing the SendGrid Library on Sir-Rover!"; // Se agrega el contenido del mensaje, cabe destacar que se puede hacer mediante texto o html myMessage.Html = "<p>Hello World from SendGrid!</p>"; //myMessage.Text = "Hello World!"; // Creamos las credenciales de nuestro servicio, enviamos : // 1 - el nombre de usuario que copiamos de azure // 2 - clave que ingresamos cuando se creo el servicio var credentials = new NetworkCredential("username", "password"); // Creamos Web transport para enviar el email var transportWeb = new Web(credentials); // enviamos el email, nótese que es una tarea asíncrona por lo que utilizamos el await await transportWeb.DeliverAsync(myMessage); }
Ahora solo debemos llamar la función, en este ejemplo lo realizaremos cuando se desee navegar a la sección de Contacto de manera que la función Contact queda así
public ActionResult Contact() { ViewBag.Message = "Your contact page."; sendEmail(); return View(); }
En GitHub se puede encontrar el ejemplo, hasta la próxima 🙂