Tutorial: Integración con Azure Logic Apps para enviar correo electrónico

En este tutorial, aprenderá a integrar la aplicación de App Service con los procesos empresariales mediante Azure Logic Apps. Cree una aplicación lógica que envíe correo electrónico a través de Gmail desde la aplicación de Azure App Service.

Hay otras maneras de enviar correos electrónicos desde una aplicación web, como el uso de la configuración del Protocolo de transferencia de correo simple (SMTP) en el marco de lenguaje. Sin embargo, Logic Apps proporciona una interfaz de configuración sencilla para muchas integraciones empresariales sin agregar complejidad al código.

Puede usar los pasos que se muestran en este tutorial para implementar varios escenarios comunes de aplicaciones web, como:

  • Enviar un correo electrónico de confirmación para una transacción.
  • Agregar usuarios al grupo de Facebook.
  • Conexión a sistemas externos como SAP y Salesforce.
  • Intercambio de mensajes B2B estándar.

Prerrequisitos

Debe tener los siguientes requisitos previos para completar este tutorial:


Creación de la aplicación lógica

  1. Cree una aplicación de consumo multiinquilino en Azure Logic Apps siguiendo las instrucciones de Creación de un recurso de aplicación lógica de consumo. Cuando se cree la aplicación, seleccione Ir al recurso.

  2. En la página de la aplicación lógica, seleccione Diseñador de aplicaciones lógicas en Herramientas de desarrollo en el menú de navegación izquierdo.

Adición del desencadenador

  1. Seleccione Agregar un desencadenador en el lienzo del diseñador de aplicaciones lógicas.

    Captura de pantalla que muestra el lienzo del diseñador de Logic Apps con Agregar un desencadenador resaltado.

  2. En la pantalla Agregar un desencadenadoren Herramientas integradas, seleccione Solicitar y, en la siguiente pantalla, seleccione Cuando se recibe una solicitud HTTP.

    Captura de pantalla que muestra Solicitud y Cuándo se recibe una solicitud HTTP resaltada.

    El desencadenador aparece en el lienzo del diseñador.

  3. En la pantalla Cuando se recibe una solicitud HTTP , seleccione Usar carga de ejemplo para generar el esquema.

    Captura de pantalla que muestra la pantalla Cuando se recibe una solicitud HTTP con el vínculo generar esquema resaltado.

  4. Pegue el código siguiente en la pantalla Escribir o pegar una carga JSON de ejemplo y, a continuación, seleccione Listo.

    {
        "task": "<description>",
        "due": "<date>",
        "email": "<email-address>"
    }
    

    Azure genera el esquema para los datos de solicitud especificados. En la práctica, puede capturar los datos de solicitud reales del código de la aplicación y usarlos para generar el esquema JSON.

  5. En la barra de herramientas superior del diseñador de aplicaciones lógicas, seleccione Guardar.

  6. La dirección URL HTTP generada aparece ahora en dirección URL HTTP en la pantalla Cuando se recibe una solicitud HTTP . Seleccione el icono de copia para copiar la dirección URL que se usará más adelante.

    Captura de pantalla que muestra la pantalla Cuando se recibe una solicitud HTTP con el vínculo generar esquema y la dirección URL HTTP resaltada.

La definición de solicitud HTTP es un desencadenador para cualquier cosa que quiera hacer en este flujo de trabajo de la aplicación lógica, como el envío de correo. Más adelante, invoque esta dirección URL en la aplicación de App Service. Para más información sobre el desencadenador de solicitud, consulte Recepción y respuesta a llamadas HTTPS entrantes enviadas a flujos de trabajo en Azure Logic Apps.

Creación del correo electrónico

Agregue una acción enviar correo electrónico y rellene el correo electrónico con las tres propiedades de solicitud HTTP que especificó anteriormente.

  1. En el lienzo del diseñador, seleccione en + el desencadenador y seleccione Agregar una acción.

  2. En la pantalla Agregar una acción, escriba gmail en el cuadro de búsqueda y seleccione Enviar correo electrónico (V2).

    Sugerencia

    Puede buscar otros tipos de integraciones, como SendGrid, MailChimp, Microsoft 365 y SalesForce. Para más información, consulte Conectores administrados para Azure Logic Apps.

  3. En la pantalla Crear conexión , seleccione Iniciar sesión para autenticar el acceso a la cuenta de Gmail desde la que quiere enviar el correo electrónico.

    Captura de pantalla que muestra la acción de Gmail en la que inicia sesión en su cuenta de Gmail.

  4. Después de iniciar sesión, seleccione dentro del campo Para en la pantalla Enviar correo electrónico (V2) para mostrar el icono de contenido dinámico. Seleccione la parte superior del rayo del icono.

  5. Aparece la lista de contenido dinámico, que muestra las tres propiedades de solicitud HTTP que especificó anteriormente. Seleccione correo electrónico en la lista.

    Captura de pantalla que muestra el icono de contenido dinámico y la lista con el correo electrónico resaltado.

  6. En la pantalla Enviar correo electrónico (V2), el elemento de correo electrónico aparece en el campo Para . En la lista desplegable, en Parámetros avanzados, seleccione Asunto y Cuerpo.

    Captura de pantalla que muestra la selección de Asunto y Cuerpo en la lista de parámetros.

  7. Los campos Asunto y Cuerpo aparecen en la pantalla Enviar correo electrónico (V2). Seleccione en el campo Asunto para mostrar el icono de contenido dinámico y seleccione la tarea en la lista de contenido dinámico.

  8. En el campo Asunto situado junto a la tarea, escriba un espacio seguido de creado.

  9. Seleccione dentro del campo Cuerpo , muestre la lista de contenido dinámico y seleccione Due.

  10. En el campo Cuerpo , mueva el cursor antes de que se deba y escriba Este elemento de trabajo debe ir seguido de un espacio.

    Captura de pantalla que muestra el formulario Enviar correo electrónico (V2) completado.

Agregar una respuesta

Agregue una respuesta HTTP asincrónica al desencadenador HTTP.

  1. En el lienzo del diseñador, seleccione entre + el desencadenador de solicitud HTTP y la acción de Gmail y seleccione Agregar una rama paralela.

    Captura de pantalla que muestra la opción + sign y Add a parallel branch (Agregar una rama paralela) resaltada.

  2. En la pantalla Agregar una acción , escriba respuesta en el campo de búsqueda y, a continuación, seleccione Respuesta.

    Captura de pantalla que muestra la barra de búsqueda y la acción Respuesta resaltadas.

    De forma predeterminada, la acción de respuesta envía un HTTP 200, que es suficiente para este tutorial. Para más información, consulte Recepción y respuesta a llamadas HTTPS entrantes enviadas a flujos de trabajo en Azure Logic Apps.

  3. Seleccione Guardar en la barra de herramientas del diseñador de aplicaciones lógicas.

Adición del código de solicitud HTTP a la aplicación de App Service

Debe evitar colocar información confidencial como la dirección URL del desencadenador de solicitud directamente en el código de la aplicación de App Service. En su lugar, puede hacer referencia a la dirección URL como una variable de entorno desde la configuración de la aplicación de App Service. El comando siguiente crea una variable de entorno denominada LOGIC_APP_URL para la dirección URL HTTP de la aplicación lógica.

  1. En Azure Cloud Shell, ejecute el siguiente comando de la CLI de Azure para crear la configuración de la aplicación. Reemplace <app-name> y <resource-group-name> por los nombres de la aplicación y el grupo de recursos de App Service. Reemplace por <http-url> la dirección URL HTTP que copió de la aplicación lógica.

    az webapp config appsettings set --name <app-name> --resource-group <resource-group-name> --settings LOGIC_APP_URL="<http-url>"
    
  2. En el código, realice una publicación HTTP estándar en la dirección URL de la aplicación lógica mediante un lenguaje de cliente HTTP disponible para el marco de lenguaje, con la siguiente configuración:

    • Asegúrese de que la solicitud contiene el encabezado Content-Type: application/json.

    • Use el mismo formato JSON que proporcionó a la aplicación lógica en el cuerpo de la solicitud:

      {
          "task": "<description>",
          "due": "<date>",
          "email": "<email-address>"
      }
      
    • Para optimizar el rendimiento, envíe la solicitud de forma asincrónica, si es posible.

    • Para obtener instrucciones de registro, consulte la documentación de su marco preferido.

Ejemplos de código de solicitud y respuesta de ejemplo

Seleccione su lenguaje o marco preferido para ver una solicitud y respuesta de ejemplo. Algunos ejemplos requieren usar o instalar paquetes de código.

En ASP.NET Core, puede enviar la solicitud HTTP POST con la clase System.Net.Http.HttpClient. El ejemplo de código siguiente requiere usar System.Net.Http y System.Text.Json. Requiere HttpResponseMessage la configuración de inserción de dependencias (DI) para acceder a la configuración de la aplicación. Para obtener más información, consulte Variables de entorno de Access.

// requires using System.Net.Http;
var client = new HttpClient();
// requires using System.Text.Json;
var jsonData = JsonSerializer.Serialize(new
{
    email = "someone@example.com",
    due = "4/1/2025",
    task = "My new task!"
});

HttpResponseMessage result = await client.PostAsync(
    // Requires DI configuration to access app settings
    _configuration["LOGIC_APP_URL"],
    new StringContent(jsonData, Encoding.UTF8, "application/json"));
    
var statusCode = result.StatusCode.ToString();

Nota

Este código de demostración se escribe por motivos de simplicidad. En la práctica, no crea instancias de un HttpClient objeto para cada solicitud. Siga las instrucciones que se indican en Uso de IHttpClientFactory para implementar solicitudes HTTP resistentes.

Sugerencia

Si usa la aplicación de ejemplo de Tutorial: Compilación de una aplicación de ASP.NET Core y SQL Database en Azure App Service, puede usar este código para enviar una confirmación de correo electrónico en la acción Crear después de agregar un Todo elemento.