Tutorial: Criar fluxos de trabalho que processam emails usando os Aplicativos Lógicos do Azure, o Azure Functions e o Armazenamento do Azure

Aplica-se a: Aplicativos Lógicos do Azure (Consumo)

O Azure Logic Apps ajuda-o a automatizar fluxos de trabalho e a integrar dados nos serviços do Azure, nos serviços Microsoft, noutras aplicações de software como serviço (Saas) e em sistemas no local. Este tutorial mostra como criar um fluxo de trabalho de aplicativo lógico que lida com emails de entrada e quaisquer anexos, analisa o conteúdo de email usando o Azure Functions, salva o conteúdo no armazenamento do Azure e envia emails para revisar o conteúdo.

Neste tutorial, irá aprender a:

  • Configurar o Armazenamento do Azure e o Explorador de Armazenamento para verificar e-mails e anexos guardados.
  • Criar uma função do Azure que remove o HTML dos e-mails. Este tutorial inclui o código que pode utilizar para esta função.
  • Crie um fluxo de trabalho de aplicativo lógico de consumo em branco.
  • Adicionar um acionador que monitoriza os e-mails para verificar se há anexos.
  • Adicionar uma condição que verifica se os e-mails têm anexos.
  • Adicionar uma ação que chama a função do Azure quando um e-mail tem anexos.
  • Adicionar uma ação que cria blobs de armazenamento para e-mails e anexos.
  • Adicionar uma ação que envia notificações de e-mail.

A captura de tela a seguir mostra o fluxo de trabalho em um alto nível:

Captura de tela mostrando um exemplo de fluxo de trabalho de Consumo de alto nível para este tutorial.

Pré-requisitos

Configurar o armazenamento para guardar anexos

Pode guardar os e-mails e anexos recebidos como blobs num contentor de armazenamento do Azure.

  1. No portal do Azure com suas credenciais de conta do Azure, crie uma conta de armazenamento, a menos que você já tenha uma, usando as seguintes informações na guia Noções básicas:

    Property valor Description
    Subscrição <Azure-subscrição-nome> O nome da sua subscrição do Azure
    Grupo de recursos <Azure-resource-group> O nome do grupo de recursos do Azure utilizado para organizar e gerir os recursos relacionados. Este exemplo usa LA-Tutorial-RG.

    Nota: os grupos de recursos existem dentro de regiões específicas. Embora os itens neste tutorial possam não estar disponíveis em todas as regiões, tente utilizar a mesma região sempre que possível.
    Nome da conta de armazenamento <Azure-storage-account-name> O nome da sua conta de armazenamento, que deve ter de 3 a 24 caracteres e pode conter apenas letras minúsculas e números. Este exemplo usa attachmentstorageacct.
    Região <Azure-region> A região onde armazenar informações sobre sua conta de armazenamento. Este exemplo usa West US.
    Desempenho Standard Esta definição especifica os tipos de dados suportados e os suportes de dados para armazenar dados. Veja Tipos de contas de armazenamento.
    Redundância Armazenamento georredundante (GRS) Essa configuração permite armazenar várias cópias de seus dados como proteção contra eventos planejados e não planejados. Para obter mais informações, veja Redundância do Armazenamento do Microsoft Azure.

    Para criar a sua conta de armazenamento, também pode utilizar o Azure PowerShell ou a CLI do Azure.

  2. Quando terminar, selecione Rever>criação.

  3. Depois que o Azure implantar sua conta de armazenamento, localize sua conta de armazenamento e obtenha a chave de acesso da conta de armazenamento:

    1. No menu da sua conta de armazenamento, em Segurança + rede, selecione Chaves de acesso.

    2. Copie o nome e a chave da sua conta de armazenamento1 e guarde esses valores num local seguro.

    Para obter a chave de acesso à sua conta de armazenamento, também pode utilizar o Azure PowerShell ou a CLI do Azure.

  4. Crie um contentor de armazenamento de blobs para os anexos de e-mails.

    1. No menu da sua conta de armazenamento, em Armazenamento de dados, selecione Contêineres.

    2. Na barra de ferramentas da página Contêineres , selecione Contêiner.

    3. Em Novo contêiner, insira anexos como o nome do contêiner. Em Nível de acesso público, selecione Contêiner (acesso de leitura anônimo para contêineres e blobs)>OK.

    Quando terminar, a lista de contêineres agora mostra o novo contêiner de armazenamento.

    Para criar um contêiner de armazenamento, você também pode usar o Azure PowerShell ou a CLI do Azure.

Depois, ligue o Explorador de Armazenamento à conta de armazenamento.

Configurar o Explorador de Armazenamento

Agora, conecte o Storage Explorer à sua conta de armazenamento para que você possa confirmar se seu fluxo de trabalho pode salvar corretamente os anexos como blobs no contêiner de armazenamento.

  1. Inicie o Gerenciador de Armazenamento do Microsoft Azure. Inicie sessão com a sua conta do Azure.

    Nota

    Se nenhum prompt for exibido, na barra de atividades do Storage Explorer, selecione Gerenciamento de contas (ícone da conta).

  2. Na janela Selecionar Ambiente do Azure, selecione seu ambiente do Azure e selecione Avançar.

    Este exemplo continua selecionando o Azure global e multilocatário.

  3. Na janela do navegador exibida, entre com sua conta do Azure.

  4. Retorne ao Gerenciador de Armazenamento e à janela Gerenciamento de Conta e verifique se o locatário e a assinatura corretos do Microsoft Entra estão selecionados.

  5. Na barra de atividades do Gerenciador de Armazenamento, selecione Abrir caixa de diálogo Conectar.

  6. Na janela Selecionar recurso, selecione Conta ou serviço de armazenamento.

  7. Na janela Selecionar Método de Conexão, selecione Nome da conta e chave>Avançar.

  8. Na janela Conectar ao Armazenamento do Azure, forneça as seguintes informações e selecione Avançar.

    Property valor
    Nome a apresentar Um nome amigável para a sua ligação
    Nome da conta O nome da sua conta de armazenamento
    Chave da conta A chave de acesso que guardou anteriormente
  9. Na janela Resumo, confirme as informações de conexão e selecione Conectar.

    O Storage Explorer cria a conexão e mostra sua conta de armazenamento na janela Explorer em Emulator & Attached Storage Accounts>.

  10. Para localizar seu contêiner de armazenamento de blob, em Contas de armazenamento, expanda sua conta de armazenamento, que é attachmentstorageacct aqui, e expanda Contêineres de Blob onde você encontra o contêiner de anexos , por exemplo:

    Captura de ecrã a mostrar o Explorador de Armazenamento - localizar contentor de armazenamento.

Depois, crie uma função do Azure que remove o HTML dos e-mails recebidos.

Criar função para remover HTML

Agora, utilize o fragmento de código fornecido nestes passos para criar uma função do Azure que remove o HTML de cada e-mail recebido. Desta forma, o conteúdo dos e-mails fica mais limpo e é processado mais facilmente. Em seguida, você pode chamar essa função a partir do seu fluxo de trabalho.

  1. Antes de criar uma função, crie um aplicativo de função seguindo estas etapas:

    1. Na guia Noções básicas, forneça as seguintes informações:

      Property valor Description
      Subscrição <o-nome-da-sua-subscrição-do-Azure> A mesma subscrição do Azure que utilizou anteriormente
      Grupo de Recursos LA-Tutorial-RG O mesmo grupo de recursos do Azure que utilizou anteriormente
      Nome da Aplicação de Funções <nome-da-função-aplicativo> O nome do seu aplicativo de função, que deve ser globalmente exclusivo no Azure. Este exemplo já usa CleanTextFunctionApp, portanto, forneça um nome diferente, como MyCleanTextFunctionApp-your-name<>
      Deseja implantar código ou imagem de contêiner? Código Publique arquivos de código.
      Pilha de runtime <língua preferida> Selecione um tempo de execução que suporte sua linguagem de programação de função favorita. A edição no portal só está disponível para JavaScript, PowerShell, TypeScript e script C#. A biblioteca de classes C#, as funções Java e Python devem ser desenvolvidas localmente. Para funções C# e F#, selecione .NET.
      Versão <número-versão> Selecione a versão para o tempo de execução instalado.
      Região <Azure-region> A mesma região que você usou anteriormente. Este exemplo usa West US.
      Sistema operativo <seu sistema operacional> Um sistema operacional é pré-selecionado para você com base na sua seleção de pilha de tempo de execução, mas você pode selecionar o sistema operacional que suporta sua linguagem de programação de função favorita. A edição no portal só é suportada no Windows. Este exemplo seleciona Windows.
      Opções e planos de hospedagem Consumo (Sem servidor) Selecione o plano de hospedagem que define como os recursos são alocados ao seu aplicativo de função. No Plano de Consumo predefinido, os recursos são adicionados dinamicamente, conforme necessário por parte das suas funções. Nesta hospedagem sem servidor, você paga apenas pelo tempo em que suas funções são executadas. Quando executa num plano do Serviço de Aplicações, tem de gerir o dimensionamento da sua aplicação de funções.
    2. Selecione Next: Armazenamento. Na guia Armazenamento, forneça as seguintes informações:

      Property valor Description
      Conta de armazenamento CleanTextFunctionStorageAcct Crie uma conta de armazenamento para ser utilizada pela sua aplicação de funções. Os nomes das contas de armazenamento devem ter entre 3 e 24 caracteres e podem conter apenas letras minúsculas e números.

      Nota: Esta conta de armazenamento contém as suas aplicações funcionais e difere da sua conta de armazenamento criada anteriormente para anexos de e-mail. Você também pode usar uma conta existente, que deve atender aos requisitos da conta de armazenamento.
    3. Quando terminar, selecione Rever + criar. Confirme suas informações e selecione Criar.

    4. Depois que o Azure criar e implantar o recurso do aplicativo de função, selecione Ir para recurso.

  2. Agora, crie sua função localmente , pois a criação de funções no portal do Azure é limitada. Certifique-se de usar o modelo de gatilho HTTP, forneça as seguintes informações para sua função e use o código de exemplo incluído, que remove HTML e retorna os resultados para o chamador:

    Property valor
    Nome da função RemoveHTMLFunction
    Nível de autorização Função
    #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 testar sua função, você pode usar a seguinte entrada de exemplo:

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

    A saída da sua função é semelhante ao seguinte resultado:

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

Depois de confirmar que sua função funciona, crie o recurso e o fluxo de trabalho do aplicativo lógico. Embora este tutorial mostre como criar uma função que remove HTML de emails, os Aplicativos Lógicos do Azure também fornecem um conector HTML para Texto .

Crie seu fluxo de trabalho de aplicativo lógico

  1. Na caixa de pesquisa de nível superior do portal do Azure, insira aplicativos lógicos e selecione Aplicativos lógicos.

  2. Na página Aplicativos lógicos, selecione Adicionar.

  3. Na página Criar Aplicativo Lógico, em Plano, selecione Consumo como o tipo de plano, que mostra apenas as opções para fluxos de trabalho do aplicativo lógico de consumo. Forneça as seguintes informações e selecione Rever + criar.

    Property valor Description
    Subscrição <o-nome-da-sua-subscrição-do-Azure> A mesma subscrição do Azure que utilizou anteriormente
    Grupo de Recursos LA-Tutorial-RG O mesmo grupo de recursos do Azure que utilizou anteriormente
    Nome da Aplicação Lógica LA-ProcessAttachment O nome do seu aplicativo lógico e fluxo de trabalho. Um aplicativo de lógica de consumo e um fluxo de trabalho sempre têm o mesmo nome.
    Região E.U.A. Oeste A mesma região que utilizou anteriormente
    Habilite a análise de log Não Neste tutorial, mantenha a definição Desativado.
  4. Confirme as informações fornecidas e selecione Criar. Depois que o Azure implantar seu aplicativo, selecione Ir para recurso.

  5. No menu de recursos do aplicativo lógico, selecione Designer de aplicativo lógico para abrir o designer de fluxo de trabalho.

Adicionar um gatilho para verificar os e-mails recebidos

Agora, adicione um gatilho que verifica se há e-mails recebidos com anexos. Todo fluxo de trabalho deve começar com um gatilho, que é acionado quando a condição de gatilho é atendida, por exemplo, um evento específico acontece ou quando novos dados existem. Para obter mais informações, consulte Guia de início rápido: criar um exemplo de fluxo de trabalho de aplicativo lógico de consumo em aplicativos lógicos do Azure multilocatário.

Este exemplo usa o conector do Office 365 Outlook, que requer que você entre com uma conta corporativa ou de estudante da Microsoft. Se estiver a utilizar uma conta Microsoft pessoal, utilize o conector Outlook.com.

  1. No designer de fluxo de trabalho, selecione Adicionar um gatilho.

  2. Depois que o painel Adicionar um gatilho for aberto, na caixa de pesquisa, digite office 365 outlook. Na lista de resultados do gatilho, em Office 365 Outlook, selecione Quando chegar um novo email (V3).

  3. Se lhe forem solicitadas credenciais, inicie sessão na sua conta de e-mail, o que cria uma ligação entre o seu fluxo de trabalho e a sua conta de e-mail.

  4. Agora forneça os critérios de gatilho para verificar novos e-mails e executar seu fluxo de trabalho.

    Property valor Description
    Importância Qualquer Especifica o nível de importância do email desejado.
    Apenas com Anexos Sim Obter apenas os e-mails com anexos.

    Nota: o acionador não remove e-mails da sua conta; verifica apenas as mensagens novas e só processa os e-mails que correspondam ao filtro do assunto.
    Incluir Anexos Sim Obter os anexos como entrada para o seu fluxo de trabalho em vez de verificar apenas os anexos.
    Pasta Caixa de entrada A pasta de e-mail a verificar
  5. Na lista Parâmetros avançados, selecione Filtro de assunto.

  6. Depois que a caixa Filtro de assunto aparecer na ação, especifique o assunto conforme descrito aqui:

    Property valor Description
    Filtro de Assunto Analista de Negócios 2 #423501 O texto a localizar no assunto do e-mail
  7. Salve seu fluxo de trabalho. Na barra de ferramentas do estruturador, selecione Guardar.

    Seu fluxo de trabalho do aplicativo lógico agora está ativo, mas não faz nada além de verificar seus e-mails. Em seguida, adicione uma condição que especifique critérios para continuar as ações subsequentes no fluxo de trabalho.

Verificar a existência de anexos

Agora, adicione uma condição que seleciona apenas os e-mails que têm anexos.

  1. No gatilho, selecione o sinal de adição (+) e, em seguida, selecione Adicionar uma ação.

  2. No painel Adicionar uma ação, na caixa de pesquisa, insira a condição.

  3. Na lista de resultados da ação, selecione a ação chamada Condição.

  4. Renomeie a condição usando uma descrição melhor.

    1. No painel Informações da condição , substitua o nome padrão da condição pela seguinte descrição: Se o e-mail tiver anexos e frase de assunto chave
  5. Criar uma condição que verifica se os e-mails têm anexos.

    1. Na primeira linha da lista de operações E, selecione dentro da caixa mais à esquerda. Na lista de conteúdo dinâmico que aparece, selecione a propriedade Tem anexo.

      Captura de tela mostrando a ação da condição, a segunda linha com o cursor na caixa mais à esquerda, a lista de conteúdo dinâmico aberta e a propriedade Anexo selecionada.

    2. Na caixa do meio, mantenha o operador é igual a.

    3. Na caixa mais à direita, digite true, que é o valor a ser comparado com o valor da propriedade Tem Anexo que é saída do gatilho. Se ambos os valores forem iguais, o e-mail tem, pelo menos, um anexo, a condição é transmitida e o fluxo de trabalho continua.

      Captura de tela mostrando o estado completo.

    Na definição de fluxo de trabalho subjacente, que você pode mostrar selecionando Visualização de código no designer, a condição é semelhante ao exemplo a seguir:

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

Testar a condição

  1. Na barra de ferramentas do designer, selecione Executar execução de gatilho>.

    Esta etapa inicia e executa manualmente seu fluxo de trabalho, mas nada acontecerá até que o e-mail de teste chegue à sua caixa de entrada.

  2. Envie a si mesmo um e-mail que atenda aos seguintes critérios:

    • O assunto do e-mail tem o texto que especificou no filtro de assunto do acionador, Business Analyst 2 #423501

    • O e-mail tem um anexo. Por agora, crie apenas um ficheiro de texto vazia e anexe-o ao e-mail.

    Quando o e-mail chega, seu fluxo de trabalho verifica se há anexos e o texto do assunto especificado. Se a condição passar, o gatilho será acionado e fará com que os Aplicativos Lógicos do Azure instanciem e executem uma instância de fluxo de trabalho.

  3. Para verificar se o gatilho disparou e o fluxo de trabalho foi executado com êxito, no menu do aplicativo lógico, selecione Visão geral.

    • Para visualizar os gatilhos disparados com êxito, selecione Histórico de disparos.

    • Para exibir fluxos de trabalho executados com êxito, selecione Histórico de execuções.

    Se o gatilho não disparou ou o fluxo de trabalho não foi executado apesar de um gatilho bem-sucedido, consulte Solucionar problemas do fluxo de trabalho do aplicativo lógico.

Em seguida, defina as ações a serem executadas para a ramificação True . Para guardar o e-mail juntamente com eventuais anexos, remova todo o HTML do corpo do e-mail e crie blobs no contentor de armazenamento para a mensagem e os anexos.

Nota

Seu fluxo de trabalho pode deixar a ramificação Falso vazia e não executar nenhuma ação quando um email não tiver anexos. Como um exercício de bônus depois de terminar este tutorial, você pode adicionar qualquer ação apropriada que você deseja tomar para a ramificação Falso .

Chamar RemoveHTMLFunction

Esta etapa adiciona sua função do Azure criada anteriormente ao seu fluxo de trabalho e passa o conteúdo do corpo do email do gatilho de email para sua função.

  1. No menu do aplicativo lógico, selecione Designer do aplicativo lógico. Na ramificação True, selecione Adicionar uma ação.

  2. Na caixa Escolha uma pesquisa de operação, selecione Incorporado. Na caixa de pesquisa, insira azure functions e selecione a ação chamada Choose an Azure function.

    Captura de tela mostrando a ação selecionada chamada Escolher uma função do Azure.

  3. Selecione seu aplicativo de função criado anteriormente, que é CleanTextFunctionApp neste exemplo:

  4. Agora selecione sua função, que é chamada RemoveHTMLFunction neste exemplo.

  5. Renomeie sua forma de função com a seguinte descrição: Chame RemoveHTMLFunction para limpar o corpo do e-mail

  6. Agora, especifique a entrada para a função processar.

    1. Em Corpo do Pedido, introduza este texto com um espaço à esquerda:

      { "emailBody":

      Enquanto trabalha nesta entrada nos passos seguintes, obterá um erro relativo a JSON inválido até que a sua entrada esteja corretamente formatada como JSON. Quando testou esta função anteriormente, a entrada especificada para a mesma utilizou JavaScript Object Notation (JSON). Por isso, o corpo do pedido também tem de utilizar o mesmo formato.

      Além disso, quando o cursor está dentro da caixa Corpo do pedido, é apresentada uma lista de conteúdo dinâmico para que possa selecionar os valores das propriedades disponíveis de ações anteriores.

    2. Na lista de conteúdo dinâmico, em Quando é recebido um novo e-mail, selecione a propriedade Corpo. Após esta propriedade, lembre-se de adicionar a chave de fechamento (}).

      Especificar o corpo do pedido que vai ser transmitido à função

    Quando terminar, a entrada para sua função se parece com o exemplo a seguir:

    Concluiu o corpo do pedido a transmitir à sua função

  7. Salve seu fluxo de trabalho.

Em seguida, adicione uma ação que cria um blob no contentor de armazenamento para que possa guardar o corpo do e-mail.

Criar blob para o corpo do e-mail

  1. No designer, no bloco Verdadeiro , em sua função do Azure, selecione Adicionar uma ação.

  2. Na caixa de pesquisa Escolha uma operação, selecione Todos. Na caixa de pesquisa, digite create blob e selecione a ação chamada Create blob.

    Captura de tela mostrando a ação Armazenamento de Blobs do Azure chamada Criar blob selecionada.

  3. Forneça as informações de conexão para sua conta de armazenamento e selecione Criar, por exemplo:

    Property valor Description
    Nome da ligação AttachmentStorageConnection Um nome descritivo para a ligação
    Tipo de autenticação Chave de Acesso O tipo de autenticação a ser usado para a conexão
    Nome da conta de Armazenamento do Azure ou ponto de extremidade <nome da conta de armazenamento> O nome da sua conta de armazenamento criada anteriormente, que é attachmentstorageacct para este exemplo
    Chave de Acesso da Conta de Armazenamento do Azure <chave de acesso à conta de armazenamento> A chave de acesso para a sua conta de armazenamento criada anteriormente
  4. Renomeie a ação Criar blob com a seguinte descrição: Criar blob para o corpo do email

  5. Na ação Criar blob, forneça as seguintes informações:

    Property valor Description
    Nome da conta de armazenamento ou ponto de extremidade de blob Usar configurações de conexão (<nome> da conta de armazenamento) Selecione sua conta de armazenamento, que é attachmentstorageacct para este exemplo.
    Folder path <path-and-container-name> O caminho e o nome do contentor que criou anteriormente. Para este exemplo, selecione o ícone de pasta e, em seguida, selecione o contêiner de anexos .
    Blob name <nome-do-remetente> Neste exemplo, utilize o nome do remetente como o nome do blob. Selecione dentro desta caixa para que a lista de conteúdo dinâmico apareça. Na seção Quando um novo e-mail chegar, selecione o campo De.
    Blob content <conteúdo para blob> Neste exemplo, utilize o corpo do e-mail sem HTML como o conteúdo do blob. Selecione dentro desta caixa para que a lista de conteúdo dinâmico apareça. Na seção Call RemoveHTMLFunction to clean email body , selecione Body.

    A imagem a seguir mostra os campos a serem selecionados para a ação Criar blob :

    Captura de tela mostrando informações sobre o corpo do e-mail sem HTML na ação Criar blob.

    Quando terminar, a ação será semelhante ao exemplo a seguir:

    Captura de tela mostrando exemplos de entradas de e-mail sem HTML para a ação Criar blob concluída.

  6. Salve seu fluxo de trabalho.

Verificar o processamento de anexos

  1. Na barra de ferramentas do designer, selecione Executar execução de gatilho>.

    Esta etapa inicia e executa manualmente seu fluxo de trabalho, mas nada acontecerá até que o e-mail de teste chegue à sua caixa de entrada.

  2. Envie a si mesmo um e-mail que atenda aos seguintes critérios:

    • O assunto do e-mail tem o texto que especificou no filtro de assunto do acionador, Business Analyst 2 #423501

    • O e-mail tem, pelo menos, um anexo. Por enquanto, basta criar um arquivo de texto vazio e anexar esse arquivo ao seu e-mail.

    • Seu e-mail tem algum conteúdo de teste no corpo, por exemplo: Testing my logic app workflow

    Se o fluxo de trabalho não foi acionado ou executado apesar de um gatilho bem-sucedido, consulte Solucionar problemas do fluxo de trabalho do aplicativo lógico.

  3. Verifique se o fluxo de trabalho salvou o e-mail no contêiner de armazenamento correto.

    1. No Gerenciador de Armazenamento, expanda Emulator & Attached>Storage Accounts>attachmentstorageacct (Key)>Blob Containers>attachments.

    2. Verifique o contentor attachments relativamente ao e-mail.

      Neste ponto, apenas o e-mail aparece no contêiner porque o fluxo de trabalho ainda não processou os anexos.

      Captura de ecrã a mostrar o Explorador de Armazenamento apenas com o e-mail guardado.

    3. Quando tiver terminado, elimine o e-mail no Explorador de Armazenamento.

  4. Opcionalmente, para testar a ramificação False , que não faz nada neste momento, você pode enviar um e-mail que não atenda aos critérios.

Em seguida, adicione um Para cada loop para processar todos os anexos de e-mail.

Processar anexos

Para processar cada anexo no e-mail, adicione um Para cada loop ao seu fluxo de trabalho.

  1. Volte ao designer. Na ação Criar blob para corpo de email, selecione Adicionar uma ação.

  2. Na caixa Escolha uma pesquisa de operação, selecione Incorporado. Na caixa de pesquisa, digite para cada um e selecione a ação chamada Para cada um.

    Captura de tela mostrando a ação selecionada chamada Para cada um.

  3. Renomeie seu loop com a seguinte descrição: Para cada anexo de e-mail

  4. Agora selecione os dados para o loop processar. No loop Para cada anexo de email, selecione dentro da caixa Selecionar uma saída das etapas anteriores para que a lista de conteúdo dinâmico apareça. Na seção Quando um novo e-mail chegar, selecione Anexos.

    Captura de tela mostrando a lista de conteúdo dinâmico com o campo selecionado chamado Anexos.

    O campo Anexos transmite uma matriz que contém todos os anexos incluídos num e-mail. O ciclo For each repete as ações em cada item que é transmitido com a matriz.

  5. Salve seu fluxo de trabalho.

Em seguida, adicione a ação que guarda cada anexo como um blob no seu contentor de armazenamento attachments.

Criar blob para cada anexo

  1. No designer, no loop Para cada anexo de email , selecione Adicionar uma ação para especificar a tarefa a ser executada em cada anexo encontrado.

    Captura de tela mostrando o loop com a opção Adicionar uma ação selecionada.

  2. Na caixa de pesquisa Escolha uma operação, selecione Todos. Na caixa de pesquisa, digite create blob e selecione a ação chamada Create blob.

    Captura de tela mostrando a ação selecionada chamada Criar blob.

  3. Renomeie a ação Criar blob 2 com a seguinte descrição: Criar blob para cada anexo de email

  4. Na ação Criar blob para cada anexo de email, forneça as seguintes informações:

    Property valor Description
    Nome da conta de armazenamento ou ponto de extremidade de blob Usar configurações de conexão (<nome> da conta de armazenamento) Selecione sua conta de armazenamento, que é attachmentstorageacct para este exemplo.
    Folder path <path-and-container-name> O caminho e o nome do contentor que criou anteriormente. Para este exemplo, selecione o ícone de pasta e, em seguida, selecione o contêiner de anexos .
    Blob name <nome-anexo> Neste exemplo, utilize o nome do anexo como o nome do blob. Selecione dentro desta caixa para que a lista de conteúdo dinâmico apareça. Na seção Quando um novo e-mail chegar, selecione o campo Nome.
    Blob content <conteúdo de e-mail> Para este exemplo, use o conteúdo de e-mail como o conteúdo de blob. Selecione dentro desta caixa para que a lista de conteúdo dinâmico apareça. Na seção Quando um novo e-mail chegar, selecione Conteúdo.

    Captura de tela mostrando informações sobre o anexo na ação Criar blob.

    Quando terminar, a ação será semelhante ao exemplo a seguir:

    Captura de tela mostrando informações de anexo de exemplo para a ação Criar blob concluída.

  5. Salve seu fluxo de trabalho.

Verificar o processamento de anexos

  1. Na barra de ferramentas do designer, selecione Executar execução de gatilho>.

    Esta etapa inicia e executa manualmente seu fluxo de trabalho, mas nada acontecerá até que o e-mail de teste chegue à sua caixa de entrada.

  2. Envie a si mesmo um e-mail que atenda aos seguintes critérios:

    • O assunto do seu e-mail tem o texto especificado na propriedade de filtro Assunto do gatilho:Business Analyst 2 #423501

    • O seu e-mail tem, pelo menos, dois anexos. Por agora, crie apenas dois ficheiros de texto vazios e anexe-os ao e-mail.

    Se o fluxo de trabalho não foi acionado ou executado apesar de um gatilho bem-sucedido, consulte Solucionar problemas do fluxo de trabalho do aplicativo lógico.

  3. Verifique se o fluxo de trabalho salvou o e-mail e os anexos no contêiner de armazenamento correto.

    1. No Gerenciador de Armazenamento, expanda Emulator & Attached>Storage Accounts>attachmentstorageacct (Key)>Blob Containers>attachments.

    2. Verifique o contentor attachments relativamente ao e-mail e aos anexos.

      Captura de ecrã a mostrar o Explorador de Armazenamento e e-mails e anexos guardados.

    3. Quando tiver terminado, elimine o e-mail e os anexos no Explorador de Armazenamento.

Em seguida, adicione uma ação para que seu fluxo de trabalho envie e-mails para revisar os anexos.

Enviar notificações por e-mail

  1. Volte ao designer. Na ramificação True, feche o loop Para cada anexo de email.

  2. No loop, selecione Adicionar uma ação.

    Captura de tela mostrando o recolhido para cada loop. No loop, a opção Adicionar uma ação é selecionada.

  3. Na caixa de pesquisa Escolha uma operação, selecione Padrão. Na caixa de pesquisa, digite enviar e-mail.

  4. Na lista de ações, selecione a ação de envio de e-mail para seu provedor de e-mail. Para filtrar a lista de ações com base em um conector específico, você pode selecionar o conector primeiro.

    Este exemplo continua com o conector do Outlook do Office 365, que funciona apenas com uma conta corporativa ou de estudante do Azure. Em contas Microsoft pessoais, selecione o conector Outlook.com.

    Captura de ecrã a mostrar a ação de envio de e-mail do Office 365 Outlook selecionada.

  5. Se lhe forem solicitadas credenciais, inicie sessão na sua conta de e-mail para que as Aplicações Lógicas do Azure criem uma ligação à sua conta de e-mail.

  6. Renomeie a ação Enviar um e-mail com a seguinte descrição: Enviar e-mail para revisão

  7. Forneça as seguintes informações de ação e selecione os campos a serem incluídos no e-mail.

    • Para adicionar linhas em branco a uma caixa de edição, prima Shift + Enter.
    • Se não conseguir encontrar um campo esperado na lista de conteúdo dinâmico, selecione Ver mais junto a Quando chega um novo e-mail.
    Property valor Description
    De <recipient-email-address> Para fins de teste, pode utilizar o seu próprio endereço de e-mail.
    Assunto ASAP - Review applicant for position:Assunto O assunto do e-mail que pretende incluir. Clique no interior desta caixa, introduza o texto de exemplo e, na lista de conteúdo dinâmico, selecione o campo Assunto em Quando é recebido um novo e-mail.
    Corpo Please review new applicant:

    Applicant name:De

    Application file location:Caminho

    Application email content:Corpo

    O conteúdo do corpo do e-mail. Clique dentro desta caixa, insira o texto de exemplo e, na lista de conteúdo dinâmico, selecione estes campos:

    - O campo De em Quando um novo e-mail chega-
    O campo Caminho em Criar blob para o corpo
    do
    e-mail- O campo Corpo em Chamar RemoveHTMLFunction para limpar o corpo do e-mail

    Captura de ecrã a mostrar o exemplo de e-mail a enviar.

    Nota

    Se você selecionar um campo que contenha uma matriz, como o campo Conteúdo , que é uma matriz que contém anexos, o designer adicionará automaticamente um Para cada loop em torno da ação que faz referência a esse campo. Dessa forma, seu fluxo de trabalho pode executar essa ação em cada item de matriz. Para remover o loop, remova o campo da matriz, mova a ação de referência para fora do loop, selecione as reticências (...) na barra de título do loop e selecione Excluir.

  8. Salve seu fluxo de trabalho.

Agora, teste seu fluxo de trabalho, que agora se parece com o exemplo a seguir:

Captura de tela mostrando o fluxo de trabalho concluído.

Executar o fluxo de trabalho

  1. Envie um e-mail para si próprio que cumpra estes critérios:

    • O assunto do seu e-mail tem o texto especificado na propriedade de filtro Assunto do gatilho:Business Analyst 2 #423501

    • O seu e-mail tem um ou mais anexos. Pode reutilizar um ficheiro de texto vazio do teste anterior. Para um cenário realista, anexe um ficheiro de currículo.

    • O corpo do e-mail tem este texto, que pode copiar e colar:

      
      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. Execute seu fluxo de trabalho. Se for bem-sucedido, seu fluxo de trabalho enviará um e-mail semelhante ao exemplo a seguir:

    Captura de tela mostrando um exemplo de e-mail enviado pelo fluxo de trabalho do aplicativo lógico.

    Se não receber nenhuma mensagem de e-mail, verifique a pasta de lixo do e-mail. O filtro de lixo de e-mail poderá redirecionar estes tipos de mensagem de e-mail. Caso contrário, se você não tiver certeza de que seu fluxo de trabalho foi executado corretamente, consulte Solucionar problemas de fluxo de trabalho do aplicativo lógico.

Parabéns, agora você criou e executa um fluxo de trabalho que automatiza tarefas em diferentes serviços do Azure e chama algum código personalizado.

Clean up resources (Limpar recursos)

Quando não precisar mais desse exemplo, exclua o grupo de recursos que contém o fluxo de trabalho do aplicativo lógico e os recursos relacionados.

  1. Na caixa de pesquisa de nível superior do portal do Azure, insira grupos de recursos e selecione Grupos de recursos.

  2. Na lista Grupos de recursos, selecione o grupo de recursos para este tutorial.

  3. Na barra de ferramentas da página Visão geral do grupo de recursos, selecione Excluir grupo de recursos.

  4. Quando o painel de confirmação aparecer, insira o nome do grupo de recursos e selecione Excluir.

Próximos passos

Neste tutorial, você criou um fluxo de trabalho de aplicativo lógico que processa e armazena anexos de email integrando serviços do Azure, como o Armazenamento do Azure e o Azure Functions. Agora, saiba mais sobre outros conectores que você pode usar para criar fluxos de trabalho de aplicativos lógicos.