Na semana passada surgiu uma questão entre colegas de trabalho sobre um requisito de um cliente. Se era possível salvar o e-mail que foi recebido do Dataverse e ou de uma caixa de e-mail de maneira automática em um Sharepoint. Mas no caso o desejo não é somente salvar o corpo do e-mail mas sim o e-mail como um todo, contendo o conteúdo e seus anexos atrelados.

Então fui atrás para saber se seria possível, pois também fiquei curioso se existia alguma maneira de fazer isso utilizando o Power Platform sem desenvolvimento com código conectando em uma mailbox via SMTP. E descobri que sim! É possível salvar o e-mail na íntegra dentro do Sharepoint.

E para isso vamos ter que utilizar o Power Automate com Microsoft Graph.

Arquivo tipo EML

EML é uma extensão de arquivo com base na RFC-822 que define um modelo único de formatação do e-mail para comunicação na web, permitindo transacionar o conteúdo completo do e-mail entre diversas aplicações de e-mail (Outlook, Gmail, Hotmail e outros).

E quando utilizamos esse modelo de arquivos preservamos o e-mail do jeito que ele foi gerado, permitindo manter dados:

  • Dados de cabeçalho do e-mail
  • Assunto
  • Formatação do conteúdo
  • Data da Mensagem
  • Link
  • Anexos

Dessa forma, o e-mail com o seu conteúdo original com todas informações para futura análise.

E por incrível que parece no Microsoft Graph, existe um endpoint que fornece o e-mail nesse formato. Aonde podemos obter através da seguinte url:

https://graph.microsoft.com/v1.0/users/<endereço_de_email>/messages/<id da mensagem>/$value

Nessa URL precisamos passar dois parâmetros:

<endereço_de_email>: Endereço de e-mail em que foi recebido a mensagem
<id da mensagem>: Id da mensagem no Exchange.

Além disso, para acessar o endpoint do Microsoft Graph, é necessário fornecer a autorização de duas permissões. São Elas: Mail.Read.Shared e Mail.ReadWrite.Shared.
Você pode utilizar o Graph Explorer para testar suas requisições.

Ao executar a URL obteremos os e-mail no formato EML.

Microsoft Graph

Agora que já sabemos como obter o e-mail vamos para o Power Automate, para fazer o processo completo.

O nosso fluxo completo ficará assim:

When a new email arrives (V3)

Aqui vamos configurar a trigger para que toda vez que um novo e-mail chegar, com a seguinte configuração:

Aqui é importante colocar “Include Attachments” para que e-mails com anexos sejam também processados.

Obter EML

Agora vamos fazer utilizar do Microsoft Graph, e para isso vamos utilizar a action “HTTP with Microsoft Entra ID (preauthorized)”, você deverá conectar com o usuário com acesso ao Microsoft Graph e configurar a conexão da seguinte forma:

Configurado a conexão de referência, agora a ação para fazer a requisição:

Configurando conforme a imagem abaixo:

Os parâmetros “To” e “Message Id” serão obtidos da trigger quando o e-mail é recebido.

Após isso vamos, vamos salvar o arquivo. Neste caso vou utilizar o Sharepoint, e vou usar a ação “Create File” com a seguinte configuração:

O nome do arquivo será o assunto + extensão. eml, e no atributo “File Content” vamos ter o resultado da execução da api do Microsoft Graph.

Vamos salvar e agora testar o fluxo! Vou criar um novo registro de e-mail aonde será enviada para minha caixa de correio com um anexo.

Email Enviado. Vamos agora olhar o fluxo!

E quando abrimos o Sharepoint, o e-mail está salvo.

Quando abrimos ele mostra o e-mail.

E quando abro o arquivo EML no meu computador consigo ver a mensagem corretamente e o anexo também.

Dessa forma, conseguimos obter o e-mail integro com todas suas informações! Espero que tenham gostado dessa dica e até a próxima!

Leave a Reply

Your email address will not be published. Required fields are marked *

Protected by WP Anti Spam