Que es SendGrid:

SendGrid es un servicio de correo electrónico basado en la nube que ofrece un sistema confiable de entrega de correo electrónico transaccional, escalabilidad y análisis en tiempo real junto, con API flexibles que facilitan la integración personalizada.

A continuación se indican casos de uso comunes de SendGrid:

•             Envío automático de recepciones o compra de confirmaciones a clientes.

•             Administración de las listas de distribución para el envío mensual de folletos y promociones a clientes.

•             Recopilación de métricas en tiempo real para, por ejemplo, direcciones de correo electrónico bloqueadas y captación de clientes.

•             Reenvío de las consultas de los clientes.

•             Procesamiento de mensajes de correo electrónico entrantes.

Procedimientos a seguir para la implementación y el uso de SendGrid para nuestras aplicaciones:

En primer lugar, desde el portal de azure, crearemos un nuevo recurso y buscaremos SendGrid:

recurso

Pulsaremos en crear y rellenaremos los campos que nos pide a continuación:

creacion
sendgrid

Una vez hecho esto, pulsaremos en revisar y crear. Se completara la implementación de SendGrid en nuestro portal de azure y pulsaremos en administrar, botón el cual nos llevara al panel de control que posee SendGrid:

dashboard

Desde aquí pulsaremos en Settings y en API keys. Nos proporcionara una clave única para conectar nuestra aplicación con SendGrid.

apikey

Una vez completados estos pasos, crearemos un nuevo proyecto .NET Core en el que lo primero que haremos será añadir el NuGet de SendGrid:

nuget

En el archivo appsettings.json, añadiremos el API key quedándonos un resultado similar a este:

{

  «Logging»: {

    «IncludeScopes»: false,

    «LogLevel»: {

      «Default»: «Debug»,

      «System»: «Information»,

      «Microsoft»: «Information»

    }

  },

  «SENDGRID_API_KEY»: «XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX»

}

Posteriormente, tenemos que agregar el siguiente código en el archivo Startup.cs del proyecto de la API de .NET Core:

public IConfigurationRoot Configuration { get; }

    public void ConfigureServices(IServiceCollection services)

    {

        // Add mvc here

        services.AddMvc();

        services.AddSingleton<IConfiguration>(Configuration);

    }

En el controller añadiremos el código necesario para enviar el correo a los destinatarios que deseemos, quedaría de la siguiente forma:

using System;

using System.Collections.Generic;

using System.Linq;

using System.Threading.Tasks;

using Microsoft.AspNetCore.Mvc;

using SendGrid;

using SendGrid.Helpers.Mail;

using Microsoft.Extensions.Configuration;

namespace SendgridMailApp.Controllers

{

    [Route(«api/[controller]»)]

    public class NotificationController : Controller

    {

       private readonly IConfiguration _configuration;

       public NotificationController(IConfiguration configuration)

       {

         _configuration = configuration;

       }

       [Route(«SendNotification»)]

       public async Task PostMessage()

       {

          var apiKey = _configuration.GetSection(«SENDGRID_API_KEY»).Value;

          var client = new SendGridClient(apiKey);

          var from = new EmailAddress(«test1@example.com», «Example User 1»);

          List<EmailAddress> tos = new List<EmailAddress>

          {

              new EmailAddress(«test2@example.com», «Example User 2»),

              new EmailAddress(«test3@example.com», «Example User 3»),

              new EmailAddress(«test4@example.com»,»Example User 4″)

          };

          var subject = «Hello world email from Sendgrid «;

          var htmlContent = «<strong>Hello world with HTML content</strong>»;

          var displayRecipients = false; // set this to true if you want recipients to see each others mail id

          var msg = MailHelper.CreateSingleEmailToMultipleRecipients(from, tos, subject, «», htmlContent, false);

          var response = await client.SendEmailAsync(msg);

      }

   }

}

Con esto ya tendríamos todo lo necesario para poder hacer uso de SendGrid para el envio de correos, espero que os haya servido de ayuda!!!

Autor/a: Javier Ruano Manzanares

Curso: Desarrollo Web Full Stack, MultiCloud y Multiplataforma

Centro: Tajamar

Año académico: 2020-2021

Leave a Comment

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.