Tutorial: Creación de flujos de trabajo para procesar correos electrónicos mediante Azure Logic Apps, Azure Functions y Azure Storage

Se aplica a: Azure Logic Apps (consumo)

Azure Logic Apps le ayuda a automatizar los flujos de trabajo y a integrar los datos entre servicios de Azure, servicios de Microsoft, otras aplicaciones de software como servicio (SaaS) y sistemas locales. En este tutorial se muestra cómo crear un flujo de trabajo de aplicación lógica que administra los correos electrónicos entrantes y los datos adjuntos, analiza el contenido del correo electrónico mediante Azure Functions, lo guarda en Azure Storage y envía un correo electrónico para revisarlo.

En este tutorial, aprenderá a:

  • Configurar Azure Storage y el Explorador de Storage para comprobar los correos electrónicos y los datos adjuntos guardados.
  • Crear una función de Azure que elimina el código HTML de los correos electrónicos. Este tutorial incluye el código que puede usar para esta función.
  • Crear un flujo de trabajo de aplicación lógica de Consumo en blanco.
  • Agregar un desencadenador que supervise los datos adjuntos en los correos electrónicos
  • Agregar una condición que compruebe si los correos electrónicos tienen datos adjuntos
  • Agregar una acción que llama a la función de Azure cuando un correo electrónico tiene datos adjuntos
  • Agregar una acción que crea blobs de almacenamiento para correos electrónicos y datos adjuntos
  • Agregar una acción que envía notificaciones por correo electrónico

En la captura de pantalla siguiente se muestra el flujo de trabajo general:

Captura de pantalla que muestra un ejemplo de flujo de trabajo general de Consumo para este tutorial.

Requisitos previos

Configuración del almacenamiento para guardar datos adjuntos

Puede guardar los correos electrónicos entrantes y los datos adjuntos como blobs en un contenedor de Azure Storage.

  1. En Azure Portal y con las credenciales de la cuenta de Azure, cree una cuenta de almacenamiento (a menos que ya tenga una) con la siguiente información en la pestaña Aspectos básicos:

    Propiedad Valor Descripción
    Suscripción <Azure-subscription-name> El nombre de la suscripción a Azure
    Grupos de recursos <Azure-resource-group> El nombre del grupo de recursos de Azure usado para organizar y administrar los recursos relacionados. En este ejemplo se usa LA-Tutorial-RG.

    Nota: Un grupo de recursos existe dentro de una región específica. Aunque es posible que los elementos de este tutorial no estén disponibles en todas las regiones, intente usar la misma región siempre que sea posible.
    Nombre de cuenta de almacenamiento <Azure-storage-account-name> El nombre de la cuenta de almacenamiento, que tiene que tener entre 3 y 24 caracteres, y solo puede contener letras minúsculas y números. En este ejemplo se usa attachmentstorageacct.
    Región <Azure-region> La región en la que se va a almacenar la información sobre su cuenta de almacenamiento. En este ejemplo se usa West US.
    Rendimiento Estándar Esta configuración especifica los tipos de datos admitidos y los medios para almacenar los datos. Consulte Tipos de cuentas de almacenamiento.
    Redundancia Almacenamiento con redundancia geográfica (GRS) Esta configuración permite almacenar varias copias de los datos como protección frente a eventos planeados y no planeados. Para más información, vea Redundancia de Azure Storage.

    Para crear una cuenta de almacenamiento también puede usar Azure PowerShell o la CLI de Azure.

  2. Cuando haya acabado, seleccione Revisar>Crear.

  3. Una vez que Azure implemente su cuenta de almacenamiento, búsquela y obtenga la clave para acceder a ella:

    1. En el menú de la cuenta de almacenamiento, en Seguridad y redes, seleccione Claves de acceso.

    2. Copie el nombre de la cuenta de almacenamiento y key1; después, guarde dichos valores en un lugar seguro.

    Para obtener la clave de acceso de su cuenta de almacenamiento, también puede usar Azure PowerShell o la CLI de Azure.

  4. Cree un contenedor de almacenamiento de blobs para los datos adjuntos de correo electrónico.

    1. En el menú de la cuenta de almacenamiento, en Almacenamiento de datos, seleccione Contenedores.

    2. En la barra de herramientas de la página Contenedores, seleccione Contenedor.

    3. En Nuevo contenedor, escriba datos adjuntos como nombre. En Nivel de acceso público, seleccione Contenedor (acceso de lectura anónimo para contenedores y blobs)>Aceptar.

    Cuando haya terminado, la lista de contenedores mostrará el nuevo contenedor de almacenamiento.

    Para crear un contenedor de almacenamiento, también puede usar Azure PowerShell o la CLI de Azure.

A continuación, conecte el Explorador de Storage a la cuenta de almacenamiento.

Configurar el Explorador de Storage

Ahora, conecte el Explorador de Azure Storage a la cuenta de almacenamiento para que pueda confirmar que el flujo de trabajo puede guardar correctamente los datos adjuntos como blobs en el contenedor de almacenamiento.

  1. Inicie Explorador de Microsoft Azure Storage. Inicie sesión con su cuenta de Azure.

    Nota

    Si no aparece ningún mensaje, en la barra de actividad del Explorador de Azure Storage, seleccione Administración de cuentas (icono de cuenta).

  2. En la ventana Seleccionar entorno de Azure, seleccione el entorno de Azure y, luego, elija Siguiente.

    En este ejemplo, se sigue seleccionando Azure global y multiinquilino.

  3. En la ventana del explorador que aparece, inicie sesión con su cuenta de Azure.

  4. Vuelva al Explorador de Storage y a la ventana Administración de cuentas, y compruebe que estén seleccionadas la suscripción y el inquilino de Microsoft Entra correctos.

  5. En la barra de actividades del Explorador de Azure Storage, seleccione Abrir cuadro de diálogo Conectar.

  6. En la ventana Seleccionar recurso, elija Cuenta de almacenamiento o servicio.

  7. En la ventana Seleccionar método de conexión, elija Nombre de cuenta y clave>Siguiente.

  8. En la ventana Conectar a Azure Storage, proporcione la siguiente información y seleccione Siguiente.

    Propiedad Value
    Nombre para mostrar Nombre descriptivo de la conexión.
    Nombre de cuenta El nombre de la cuenta de almacenamiento
    Clave de cuenta La clave de acceso que guardó anteriormente.
  9. En la ventana Resumen, confirme la información de la conexión y, luego, seleccione Conectar.

    El Explorador de Storage crea la conexión y muestra la cuenta de almacenamiento en la ventana del Explorador en Emulador y adjunto>Cuentas de almacenamiento.

  10. Para buscar un contenedor de almacenamiento de blobs, en Cuentas de almacenamiento, expanda su cuenta de almacenamiento, que es attachmentstorageacct aquí, y después expanda Contenedores de blobs, donde se encuentra el contenedor attachments, por ejemplo:

    Captura de pantalla que muestra el Explorador de Azure Storage: búsqueda del contenedor de almacenamiento.

A continuación, cree una función de Azure que elimine el código HTML del correo electrónico entrante.

Creación de una función para quitar HTML

Ahora, use el fragmento de código proporcionado en estos pasos para crear una función de Azure que quite el código HTML de cada correo electrónico entrante. De este modo, el contenido del correo electrónico es más limpio y se procesa de manera más fácil. A continuación, puede llamar a esta función desde el flujo de trabajo.

  1. Antes de crear una función, cree una aplicación de funciones mediante estos pasos:

    1. En la pestaña Básico, especifique la siguiente información:

      Propiedad Valor Descripción
      Suscripción <nombre-de-su-suscripción-a-Azure> La misma suscripción de Azure que usó anteriormente.
      Grupo de recursos LA-Tutorial-RG El mismo grupo de recursos de Azure que usó anteriormente.
      Nombre de la aplicación de función <function-app-name> El nombre de la aplicación de función, que debe ser globalmente único en Azure. En este ejemplo ya se usa CleanTextFunctionApp, por lo que debe proporcionar un nombre diferente, como MyCleanTextFunctionApp-<su-nombre>.
      ¿Desea implementar código o imágenes de contenedor? Código Publicación de los archivos de código.
      Pila en tiempo de ejecución <preferred-language> Seleccione un runtime que admita el lenguaje de programación de funciones que prefiera. La edición en el portal solo está disponible para JavaScript, PowerShell, TypeScript y el script de C#. Las funciones de la biblioteca de clases de C#, Java y Python deben estar desarrolladas en el entorno local. Para las funciones de C# y F#, seleccione .NET.
      Versión <version-number> Seleccione la versión del entorno de ejecución instalado.
      Región <Azure-region> La misma región que usó anteriormente. En este ejemplo se usa West US.
      Sistema operativo <su-sistema-operativo> Un sistema operativo se preselecciona según la selección de la pila en tiempo de ejecución, pero puede seleccionar el sistema operativo que admita su lenguaje de programación de funciones favorito. La edición en el portal solo se admite en Windows. En este ejemplo se selecciona Windows.
      Opciones y planes de hospedaje Consumo (sin servidor) Seleccione el plan de hospedaje que define cómo se asignan los recursos a la aplicación de funciones. En el plan de Consumo predeterminado, los recursos se agregan dinámicamente según lo requieran sus funciones. En este hospedaje sin servidor, solo paga por el tiempo durante el cual se ejecutan las funciones. Si ejecuta un plan de App Service, debe administrar el escalado de la aplicación de función.
    2. Seleccione Siguiente: Storage (Almacenamiento). En la pestaña Almacenamiento, especifique la siguiente información:

      Propiedad Valor Descripción
      Cuenta de almacenamiento cleantextfunctionstorageacct Cree una cuenta de almacenamiento que use la aplicación de función. Los nombres de las cuentas de almacenamiento deben tener entre 3 y 24 caracteres y solo pueden incluir números y letras en minúscula.

      Nota: Esta cuenta de almacenamiento contiene las aplicaciones de función y se diferencia de la cuenta de almacenamiento creada anteriormente para los datos adjuntos de correo electrónico. También puede usar una cuenta existente que debe cumplir los requisitos de la cuenta de almacenamiento.
    3. Seleccione Revisar y crear cuando haya terminado. Confirme la información y seleccione Crear.

    4. Después de que Azure cree e implemente el recurso de aplicación de funciones, seleccione Ir al recurso.

  2. Ahora, cree la función localmente, ya que la creación de funciones en Azure Portal está limitada. Asegúrese de usar la plantilla de desencadenador HTTP, proporcione la siguiente información para la función y use el código de ejemplo incluido, que quita el código HTML y devuelve los resultados al autor de la llamada:

    Propiedad Value
    Nombre de la función RemoveHTMLFunction
    Nivel de autorización Function
    #r "Newtonsoft.Json"
    
    using System.Net;
    using Microsoft.AspNetCore.Mvc;
    using Microsoft.Extensions.Primitives;
    using Newtonsoft.Json;
    using System.Text.RegularExpressions;
    
    public static async Task<IActionResult> Run(HttpRequest req, ILogger log) 
    {
       log.LogInformation("HttpWebhook triggered");
    
       // Parse query parameter
       string emailBodyContent = await new StreamReader(req.Body).ReadToEndAsync();
    
       // Replace HTML with other characters
       string updatedBody = Regex.Replace(emailBodyContent, "<.*?>", string.Empty);
       updatedBody = updatedBody.Replace("\\r\\n", " ");
       updatedBody = updatedBody.Replace(@"&nbsp;", " ");
    
       // Return cleaned text
       return (ActionResult)new OkObjectResult(new { updatedBody });
    }
    
  3. Para probar la función, puede usar la siguiente entrada de ejemplo:

    {"name": "<p><p>Testing my function</br></p></p>"}

    La salida de la función tiene el siguiente aspecto:

    {"updatedBody":"{\"name\": \"Testing my function\"}"}
    

Después de confirmar el funcionamiento de la función, cree el recurso y el flujo de trabajo de la aplicación lógica. Aunque en este tutorial se muestra cómo crear una función que elimina el código HTML de los mensajes de correo electrónico, Azure Logic Apps también proporciona un conector de HTML a texto.

Creación del flujo de trabajo de aplicación lógica

  1. En el cuadro de búsqueda de nivel superior de Azure Portal, escriba aplicaciones lógicas y seleccione Aplicaciones lógicas.

  2. En la página Logic Apps, seleccione en Agregar.

  3. En la página Crear aplicación lógica, en Plan, seleccione Consumo como tipo de plan. Se muestran entonces solo las opciones para flujos de trabajo de aplicación lógica de Consumo. Proporcione los siguientes datos y, luego, elija Revisar y crear.

    Propiedad Valor Descripción
    Suscripción <nombre-de-su-suscripción-a-Azure> La misma suscripción de Azure que usó anteriormente.
    Grupo de recursos LA-Tutorial-RG El mismo grupo de recursos de Azure que usó anteriormente.
    Nombre de la aplicación lógica LA-ProcessAttachment Nombre de la aplicación lógica y el flujo de trabajo. Una aplicación lógica y un flujo de trabajo de Consumo siempre tienen el mismo nombre.
    Región Oeste de EE. UU. La misma región que usó anteriormente.
    Habilitación de análisis de registros No En este tutorial, mantenga el valor Off (Desactivado).
  4. Confirme la información proporcionada y seleccione Crear. Una vez que Azure implemente la aplicación, seleccione Ir al recurso.

  5. En el menú del recurso de aplicación lógica, seleccione el Diseñador de aplicaciones lógicas para abrir el diseñador de flujos de trabajo.

Adición de un desencadenador para comprobar el correo electrónico entrante

Ahora, agregue un desencadenador que compruebe si hay correos electrónicos entrantes que tengan datos adjuntos. Cada flujo de trabajo debe comenzar con un desencadenador, que se activa cuando se cumple la condición, por ejemplo, se produce un evento específico o existen nuevos datos. Para obtener más información, consulte Inicio rápido: creación de un ejemplo de flujo de trabajo de aplicación lógica de Consumo en Azure Logic Apps multiinquilino.

En este ejemplo se usa el conector Office 365 Outlook, que requiere que inicie sesión con una cuenta profesional o educativa de Microsoft. Si usa una cuenta Microsoft personal, use el conector Outlook.com.

  1. En el diseñador de flujos de trabajo, seleccione Agregar un desencadenador.

  2. Una vez que se abra el panel Agregar un desencadenador, en el cuadro de búsqueda, escriba office 365 outlook. En la lista de resultados de desencadenadores, en Office 365 Outlook, seleccione Cuando llegue un nuevo correo electrónico (V3).

  3. Si se le solicitan credenciales, inicie sesión en su cuenta de correo electrónico, lo que crea una conexión entre el flujo de trabajo y la cuenta de correo electrónico.

  4. Ahora, proporcione los criterios del desencadenador para comprobar el nuevo correo electrónico y ejecutar el flujo de trabajo.

    Propiedad Valor Descripción
    Importancia Cualquiera Especifica el nivel de importancia del correo electrónico que desea.
    Solo con datos adjuntos Obtener solo los correos electrónicos con datos adjuntos.

    Nota: El desencadenador no elimina los correos electrónicos de la cuenta, solo comprueba si existen nuevos mensajes y procesa únicamente los correos electrónicos que coinciden con el filtro del asunto.
    Include Attachments (Incluir datos adjuntos) Obtener los datos adjuntos como entrada del flujo de trabajo, en lugar de solamente buscar datos adjuntos.
    Carpeta Bandeja de entrada La carpeta de correo electrónico para comprobar.
  5. En la lista Parámetros avanzados, seleccione Filtro de asunto.

  6. Después de que el cuadro Filtro de asunto aparezca en la acción, especifique el asunto como se describe aquí:

    Propiedad Valor Descripción
    Subject Filter (Filtro de asunto) Analista de negocios 2 #423501 El texto para encontrar el asunto del correo electrónico.
  7. Guarde el flujo de trabajo. En la barra de herramientas del diseñador, seleccione Save (Guardar).

    El flujo de trabajo de aplicación lógica está ahora activo, pero no hace otra cosa que comprobar los correos electrónicos. A continuación, agregue una condición que especifique criterios para continuar las acciones subsiguientes del flujo de trabajo.

Comprobar datos adjuntos

Ahora, agregue una condición que seleccione solo los correos electrónicos que tienen datos adjuntos.

  1. En el desencadenador, seleccione el signo más (+) y, a continuación, seleccione Agregar una acción.

  2. En el panel Agregar una acción, en el cuadro de búsqueda, escriba condición.

  3. En la lista de resultados de acciones, seleccione la acción llamada Condición.

  4. Cambie el nombre de la condición por algo más descriptivo.

    1. En el panel de información Condición, reemplace el nombre predeterminado de la condición por la siguiente descripción: Si el correo electrónico tiene datos adjuntos y frase clave de asunto
  5. Cree una condición que busque correos electrónicos que tienen datos adjuntos.

    1. En la primera fila de la lista de operaciones And, seleccione dentro del cuadro del extremo izquierdo. En la lista de contenido dinámico que aparece, seleccione la propiedad Tiene datos adjuntos.

      Captura de pantalla que muestra la acción de condición, la segunda fila con el cursor en el cuadro del extremo izquierdo, la lista de contenido dinámico abierta y la propiedad

    2. En el cuadro central, mantenga el operador es igual que.

    3. En el cuadro del extremo derecho, escriba true, que es el valor que se compara con la propiedad Contiene datos adjuntos del desencadenador. Si ambos valores son iguales, el correo electrónico tiene al menos un archivo adjunto, la condición pasa y el flujo de trabajo continúa.

      Captura de pantalla que muestra la condición completa.

    En la definición de flujo de trabajo subyacente, que puede mostrar seleccionando vista Código en el diseñador, la condición es similar al ejemplo siguiente:

    "Condition": {
       "actions": { <actions-to-run-when-condition-passes> },
       "expression": {
          "and": [ {
             "equals": [
                "@triggerBody()?['HasAttachment']",
                  "true"
             ]
          } ]
       },
       "runAfter": {},
       "type": "If"
    }
    
  6. Guarde el flujo de trabajo.

Prueba de la condición

  1. En la barra de herramientas del diseñador, seleccione Ejecutar desencadenador>Ejecutar.

    Este paso inicia y ejecuta manualmente el flujo de trabajo, pero no ocurrirá nada hasta que llegue el correo electrónico de prueba a la bandeja de entrada.

  2. Envíese un correo electrónico que cumpla este criterio:

    • El asunto del correo electrónico tiene el texto que especificó en el filtro de asunto del desencadenador: Business Analyst 2 #423501

    • El correo electrónico tiene un archivo adjunto. Por ahora, cree un archivo de texto vacío y asocie ese archivo a su correo electrónico.

    Cuando llega el correo electrónico, el flujo de trabajo comprueba si hay datos adjuntos y el texto de asunto especificado. Si se pasa la condición, el desencadenador se activa y hace que Azure Logic Apps cree instancias y ejecute una instancia de flujo de trabajo.

  3. Para comprobar que el desencadenador se activó y que el flujo de trabajo se ejecutó correctamente, en el menú de la aplicación lógica, elija Información general.

    • Para ver los desencadenadores activados correctamente, seleccione Historial de desencadenadores.

    • Para ver los flujos de trabajo ejecutados correctamente, seleccione Historial de ejecuciones.

    Si el desencadenador no se activó o el flujo de trabajo no se ejecutó a pesar de que el desencadenador era correcto, consulte Solución de problemas del flujo de trabajo de aplicación lógica.

A continuación, defina las acciones que se realizarán para la rama True. Para guardar el correo electrónico junto con los datos adjuntos, elimine el código HTML del cuerpo del correo electrónico y, luego, cree blobs en el contenedor de almacenamiento para el correo electrónico y los datos adjuntos.

Nota

El flujo de trabajo puede dejar vacía la rama False y no realizar ninguna acción cuando un correo electrónico no tenga datos adjuntos. Como ejercicio adicional, cuando termine este tutorial, puede agregar una acción adecuada que quiera realizar con la rama False.

Llamada a RemoveHTMLFunction

Este paso agrega la función de Azure que creó previamente a su flujo de trabajo y pasa el contenido del cuerpo del correo electrónico del desencadenador de correo electrónico a su función.

  1. En el menú de la aplicación lógica, seleccione Diseñador de aplicación lógica. En la rama True, seleccione Agregar una acción.

  2. En el cuadro de búsqueda Elegir una operación, seleccione Incorporado. En el cuadro de búsqueda, escriba azure functions y seleccione la acción denominada Elegir una función de Azure.

    Captura de pantalla que muestra la acción seleccionada

  3. Seleccione la aplicación de funciones creada anteriormente, que en este ejemplo es CleanTextFunctionApp:

  4. Ahora seleccione la función, que se llama RemoveHTMLFunction en este ejemplo.

  5. Cambie el nombre de la forma de la función por la siguiente descripción: Llamada a RemoveHTMLFunction para limpiar el cuerpo de correo electrónico.

  6. Ahora, especifique la entrada de la función que se va a procesar.

    1. En Request Body (Cuerpo de la solicitud), escriba este texto con un espacio al final:

      { "emailBody":

      Mientras trabaja en esta entrada en los pasos siguientes, aparece un error que indica que el código de JSON no es válido, hasta que la entrada tiene el formato JSON correcto. Cuando anteriormente probó esta función, la entrada especificada para esta función usaba notación de objetos JavaScript (JSON). Por lo tanto, el cuerpo de la solicitud también debe usar el mismo formato.

      Además, cuando el cursor está dentro del cuadro Request body (Cuerpo de la solicitud), aparece la lista de contenido dinámico, con el fin de que pueda seleccionar los valores de la propiedad disponibles de las acciones anteriores.

    2. En la lista de contenido dinámico, en Cuando llega un nuevo correo electrónico, seleccione la propiedad Body. Después de esta propiedad, no olvide agregar la llave de cierre (}).

      Especificar el cuerpo de la solicitud para pasar a la función

    Cuando haya terminado, la entrada a la función debe ser parecida a la de este ejemplo:

    Cuerpo de la solicitud finalizado para pasar a la función

  7. Guarde el flujo de trabajo.

A continuación, agregue una acción que cree un blob en el contenedor de almacenamiento para que pueda guardar el cuerpo del correo electrónico.

Creación del blob para el cuerpo del correo electrónico

  1. En el diseñador, en el bloque True, en la función de Azure, seleccione Agregar una acción.

  2. En el cuadro de búsqueda Choose an operation (Elegir una operación), escriba Todo. En el cuadro de búsqueda, escriba crear blob y seleccione la acción Crear blob.

    Captura de pantalla que muestra la acción de Azure Blob Storage

  3. Proporcione la información de conexión de la cuenta de almacenamiento y elija Crear, por ejemplo:

    Propiedad Valor Descripción
    Nombre de la conexión AttachmentStorageConnection Un nombre descriptivo para la conexión.
    Tipo de autenticación Clave de acceso Tipo de autenticación que se va a usar para la conexión
    Nombre o punto de conexión de la cuenta de Azure Storage. <storage-account-name> Nombre de la cuenta de almacenamiento creada anteriormente, que es attachmentstorageacct en este ejemplo.
    Clave de acceso de la cuenta de Azure Storage <storage-account-access-key> Clave de acceso de la cuenta de almacenamiento creada anteriormente.
  4. Cambie el nombre de la acción Crear blob por la siguiente descripción: Creación de un blob para el cuerpo del correo electrónico.

  5. En el panel Crear blob, proporcione la siguiente información:

    Propiedad Valor Descripción
    Nombre de la cuenta de almacenamiento o punto de conexión de blob Usar la configuración de conexión(<storage-account-name>) Seleccione la cuenta de almacenamiento, que es attachmentstorageacct en este ejemplo.
    Folder path (Ruta de acceso a la carpeta) <path-and-container-name> La ruta de acceso y el nombre del contenedor que creó anteriormente. En este ejemplo, seleccione el icono de carpeta y, después, elija el contenedor datos adjuntos.
    Blob name (Nombre de blob) <sender-name> En este ejemplo, utilice el nombre del remitente como nombre del blob. Seleccione dentro de este cuadro para que aparezca la lista de contenido dinámico. En la sección Cuando llega un nuevo correo electrónico, seleccione el campo De.
    Blob content (Contenido del blob) <content-for-blob> Para este ejemplo, use el cuerpo del correo electrónico sin HTML como contenido del blob. Seleccione dentro de este cuadro para que aparezca la lista de contenido dinámico. En la sección Llamada a RemoveHTMLFunction para limpiar el cuerpo de correo electrónico, seleccione Cuerpo.

    En la imagen siguiente se muestran los campos que se van a seleccionar para la acción Crear blob:

    Captura de pantalla que muestra información sobre el cuerpo de correo electrónico sin HTML en la acción

    Cuando haya terminado, la acción tendrá una apariencia similar a la del siguiente ejemplo:

    Captura de pantalla que muestra entradas de correo electrónico sin HTML de ejemplo para la acción

  6. Guarde el flujo de trabajo.

Comprobación del tratamiento de los datos adjuntos

  1. En la barra de herramientas del diseñador, seleccione Ejecutar desencadenador>Ejecutar.

    Este paso inicia y ejecuta manualmente el flujo de trabajo, pero no ocurrirá nada hasta que llegue el correo electrónico de prueba a la bandeja de entrada.

  2. Envíese un correo electrónico que cumpla este criterio:

    • El asunto del correo electrónico tiene el texto que especificó en el filtro de asunto del desencadenador: Business Analyst 2 #423501

    • El correo electrónico tiene al menos un archivo adjunto. Por ahora, cree un archivo de texto vacío y asocie ese archivo a su correo electrónico.

    • El correo electrónico tiene algún contenido de prueba en el cuerpo, por ejemplo, Testing my logic app workflow

    Si el flujo de trabajo no se desencadenó o ejecutó a pesar de que el desencadenador era correcto, consulte Solución de problemas del flujo de trabajo de aplicación lógica.

  3. Compruebe que el flujo de trabajo guardó el correo electrónico en el contenedor de almacenamiento correcto.

    1. En el Explorador de Azure Storage, expanda Emulador y adjunto>Cuentas de almacenamiento>attachmentstorageacct (clave)>Contenedores de blobs>attachments.

    2. Busque en el contenedor attachments (datos adjuntos) el correo electrónico.

      En este momento, solo el correo electrónico aparece en el contenedor, porque la aplicación lógica no ha procesado aún los datos adjuntos.

      Captura de pantalla que muestra el Explorador de Azure Storage solo con el correo electrónico guardado.

    3. Cuando haya terminado, elimine el correo electrónico del Explorador de Storage.

  4. Opcionalmente, para probar la rama False, que en este momento no hace nada, puede enviar un correo electrónico que no cumpla los criterios.

A continuación, agregue un bucle Para cada uno para procesar todos los datos adjuntos de correo electrónico.

Procesamiento de los datos adjuntos

Para procesar los datos adjuntos del correo electrónico, agregue un bucle Para cada uno al flujo de trabajo.

  1. Vuelva al diseñador. En la acción Crear blob para el cuerpo del correo electrónico, seleccione Agregar una acción.

  2. En el cuadro de búsqueda Elegir una operación, seleccione Incorporado. En el cuadro de búsqueda, escriba para cada uno y seleccione la acción Para cada uno.

    Captura de pantalla que muestra la acción seleccionada

  3. Cambie el nombre del bucle por la siguiente descripción: Para cada adjunto de correo electrónico.

  4. Ahora, seleccione los datos del bucle que se van a procesar. En el bucle Para cada adjunto de correo electrónico, seleccione dentro del cuadro Seleccionar una salida de los pasos anteriores para que se abra la lista de contenido dinámico. En la sección Cuando llega un nuevo correo electrónico, seleccione Datos adjuntos.

    Captura de pantalla que muestra la lista de contenido dinámico con el campo seleccionado

    El campo Attachments (Datos adjuntos) pasa una matriz que contiene todos los datos adjuntos incluidos en un correo electrónico. El bucle For each (Para cada uno) repite las acciones en cada elemento que se pasa con la matriz.

  5. Guarde el flujo de trabajo.

A continuación, agregue la acción que guarda cada archivo adjunto como un blob en el contenedor de almacenamiento attachments (datos adjuntos).

Creación de un blob para cada archivo adjunto

  1. En el diseñador, en el bucle Para cada adjunto de correo electrónico, elija Agregar una acción para especificar la tarea que se realizará en cada adjunto encontrado.

    Captura de pantalla que muestra el bucle con

  2. En el cuadro de búsqueda Choose an operation (Elegir una operación), escriba Todo. En el cuadro de búsqueda, escriba crear blob y seleccione la acción Crear blob.

    Captura de pantalla que muestra la acción

  3. Cambie el nombre de la acción Crear blob 2 por la siguiente descripción: Creación de un blob para cada adjunto de correo electrónico.

  4. En la acción Crear blob para cada adjunto de correo electrónico, proporcione la siguiente información:

    Propiedad Valor Descripción
    Nombre de la cuenta de almacenamiento o punto de conexión de blob Usar la configuración de conexión(<storage-account-name>) Seleccione la cuenta de almacenamiento, que es attachmentstorageacct en este ejemplo.
    Folder path (Ruta de acceso a la carpeta) <path-and-container-name> La ruta de acceso y el nombre del contenedor que creó anteriormente. En este ejemplo, seleccione el icono de carpeta y, después, elija el contenedor datos adjuntos.
    Blob name (Nombre de blob) <attachment-name> En este ejemplo, utilice el nombre del archivo adjunto como nombre del blob. Seleccione dentro de este cuadro para que aparezca la lista de contenido dinámico. En la sección Cuando llega un nuevo correo electrónico, seleccione el campo Nombre.
    Blob content (Contenido del blob) <email-content> En este ejemplo, use el contenido del correo electrónico como contenido del blob. Seleccione dentro de este cuadro para que aparezca la lista de contenido dinámico. En la sección Cuando llega un nuevo correo electrónico, seleccione Contenido.

    Captura de pantalla que muestra información sobre los datos adjuntos en la acción

    Cuando haya terminado, la acción tendrá una apariencia similar a la del siguiente ejemplo:

    Captura de pantalla que muestra información de datos adjuntos de ejemplo para la acción

  5. Guarde el flujo de trabajo.

Comprobación del tratamiento de los datos adjuntos

  1. En la barra de herramientas del diseñador, seleccione Ejecutar desencadenador>Ejecutar.

    Este paso inicia y ejecuta manualmente el flujo de trabajo, pero no ocurrirá nada hasta que llegue el correo electrónico de prueba a la bandeja de entrada.

  2. Envíese un correo electrónico que cumpla este criterio:

    • El asunto del correo electrónico tiene el texto que especificó en la propiedad Filtro de asunto del desencadenador: Business Analyst 2 #423501

    • El correo electrónico tiene al menos dos archivos adjuntos. Por ahora, cree dos archivos de texto vacío y adjunte esos archivos a su correo electrónico.

    Si el flujo de trabajo no se desencadenó o ejecutó a pesar de que el desencadenador era correcto, consulte Solución de problemas del flujo de trabajo de aplicación lógica.

  3. Compruebe que el flujo de trabajo guardó el correo electrónico y los datos adjuntos en el contenedor de almacenamiento correcto.

    1. En el Explorador de Azure Storage, expanda Emulador y adjunto>Cuentas de almacenamiento>attachmentstorageacct (clave)>Contenedores de blobs>attachments.

    2. Compruebe que en el contenedor attachments (datos adjuntos) se encuentren el correo electrónico y los datos adjuntos.

      Captura de pantalla que muestra el Explorador de Azure Storage y los datos adjuntos y el correo electrónico guardados.

    3. Cuando haya terminado, elimine el correo electrónico y los datos adjuntos del Explorador de Storage.

A continuación, agregue una acción para que el flujo de trabajo envíe un correo electrónico para revisar los datos adjuntos.

Envío de notificaciones por correo electrónico

  1. Vuelva al diseñador. En la rama True, contraiga el bucle Para cada adjunto de correo electrónico.

  2. En el bucle, seleccione Agregar una acción.

    Captura de pantalla que muestra el bucle

  3. En el cuadro de búsqueda Elegir una operación, seleccione Estándar. En el cuadro de búsqueda, escriba send email (enviar correo electrónico).

  4. En la lista de acciones, seleccione la acción "Enviar correo electrónico" para el proveedor de correo electrónico. Para filtrar la lista de acciones según un conector específico, puede seleccionar primero el conector.

    Este ejemplo continúa con el conector Office 365 Outlook, que solo funciona con una cuenta profesional o educativa de Azure. Para las cuentas de Microsoft personales, seleccione el conector de Outlook.com.

    Captura de pantalla que muestra la acción

  5. Si se le piden credenciales, inicie sesión en su cuenta de correo electrónico para que Azure Logic Apps cree una conexión a su cuenta de correo electrónico.

  6. Cambie el nombre de la acción Enviar un correo electrónico por la siguiente descripción: Enviar correo electrónico para revisar.

  7. Proporcione la siguiente información de la acción y seleccione los campos que quiere incluir en el correo electrónico.

    • Para agregar líneas en blanco en el cuadro de edición, presione Mayús + Entrar.
    • Si no puede encontrar campo que esperaba que estuviera en la lista de contenido dinámico, seleccione See more (Ver más) junto a When a new email arrives (Cuando llega un nuevo correo electrónico).
    Propiedad Valor Descripción
    To <recipient-email-address> Para realizar pruebas, puede usar su propia dirección de correo electrónico.
    Subject ASAP - Review applicant for position:Subject (Asunto) El asunto del correo electrónico que quiere incluir. Haga clic en este cuadro, escriba el texto de ejemplo y, en la lista de contenido dinámico, seleccione el campo Asunto en Cuando llega un nuevo correo electrónico.
    Cuerpo Please review new applicant:

    Applicant name:From

    Application file location:Path

    Application email content:Body

    El contenido del cuerpo del correo electrónico. Haga clic en este cuadro, escriba el texto de ejemplo y, en la lista de contenido dinámico, seleccione estos campos:

    - El campo From en Cuando llega un nuevo correo electrónico
    - El campo Path en Crear blob para el cuerpo del correo electrónico
    - El campo Body en Llamar a RemoveHTMLFunction para limpiar el cuerpo del correo electrónico

    Captura de pantalla que muestra el correo electrónico de ejemplo que se va a enviar.

    Nota

    Si selecciona un campo que contiene una matriz, como el campo Contenido, que es una matriz que contiene datos adjuntos, el diseñador agrega automáticamente un bucle Para cada uno en torno a la acción que hace referencia a ese campo. De este modo, el flujo de trabajo puede realizar esa acción en cada elemento de la matriz. Para quitar el bucle, quite el campo de la matriz, mueva la acción de referencia fuera del bucle, seleccione el botón de puntos suspensivos ( ... ) en la barra de título del bucle y seleccione Delete (Eliminar).

  8. Guarde el flujo de trabajo.

Ahora, pruebe el flujo de trabajo, que ahora es similar al ejemplo siguiente:

Captura de pantalla que muestra el flujo de trabajo finalizado.

Ejecución del flujo de trabajo

  1. Envíese un correo electrónico que cumpla este criterio:

    • El asunto del correo electrónico tiene el texto que especificó en la propiedad Filtro de asunto del desencadenador: Business Analyst 2 #423501

    • El correo electrónico tiene uno o varios datos adjuntos. Puede volver a usar un archivo de texto vacío de la prueba anterior. Si quiere un escenario más realista, adjunte un archivo de reanudación.

    • El cuerpo del correo electrónico tiene este texto, que puede copiar y pegar:

      
      Name: Jamal Hartnett
      
      Street address: 12345 Anywhere Road
      
      City: Any Town
      
      State or Country: Any State
      
      Postal code: 00000
      
      Email address: jamhartnett@outlook.com
      
      Phone number: 000-000-0000
      
      Position: Business Analyst 2 #423501
      
      Technical skills: Dynamics CRM, MySQL, Microsoft SQL Server, JavaScript, Perl, Power BI, Tableau, Microsoft Office: Excel, Visio, Word, PowerPoint, SharePoint, and Outlook
      
      Professional skills: Data, process, workflow, statistics, risk analysis, modeling; technical writing, expert communicator and presenter, logical and analytical thinker, team builder, mediator, negotiator, self-starter, self-managing  
      
      Certifications: Six Sigma Green Belt, Lean Project Management
      
      Language skills: English, Mandarin, Spanish
      
      Education: Master of Business Administration
      
  2. Ejecución del flujo de trabajo. Si la operación tiene éxito, el flujo de trabajo le envía un correo electrónico parecido al de este ejemplo:

    Captura de pantalla que muestra el correo electrónico de ejemplo enviado por el flujo de trabajo de aplicación lógica.

    Si no recibe ningún correo electrónico, compruebe la carpeta de correo electrónico no deseado. El filtro de correo electrónico no deseado podría redirigir esta clase de correo. De lo contrario, si no está seguro de que el flujo de trabajo se ejecutara correctamente, consulte Solución de problemas del flujo de trabajo de aplicación lógica.

Enhorabuena, ya ha creado y ejecutado un flujo de trabajo que automatiza tareas en diferentes servicios de Azure y llama a código personalizado.

Limpieza de recursos

Cuando ya no necesite este ejemplo, elimine el grupo de recursos que contiene el flujo de trabajo de aplicación lógica y los recursos relacionados.

  1. En el cuadro de búsqueda de nivel superior de Azure Portal, escriba grupos de recursos y seleccione Grupos de recursos.

  2. En la lista Grupos de recursos, seleccione el grupo de recursos para este tutorial.

  3. En la barra de herramientas de la página Información general, seleccione Eliminar grupo de recursos.

  4. Cuando aparezca el panel de confirmación, escriba el nombre del grupo de recursos y seleccione Eliminar.

Pasos siguientes

En este tutorial, ha creado un flujo de trabajo de aplicación lógica que procesa y almacena datos adjuntos de correo electrónico mediante la integración de servicios de Azure, como Azure Storage y Azure Functions. Ahora, conozca más sobre otros conectores que puede usar para crear flujos de trabajo de aplicación lógica.