Pular para o conteúdo principal

Converter o corpo do e-mail e todos os anexos em um único PDF consolidado no Power Automate: um fluxo de trabalho de 7 etapas com Outlook + PDF4me

· 28 min para ler
SEO and Content Writer

A parte problemática dos fluxos de trabalho baseados em e-mail não é o e-mail em si, mas sim... tudo o que vem junto com issoO corpo da mensagem contém o contexto (quem enviou, por quê, o que fazer), os anexos contêm os artefatos (a fatura, o formulário, o contrato assinado) e armazená-los separadamente significa que você precisará de três cliques no futuro para reconstruir a mensagem. Este passo a passo constrói o padrão exato em Power Automate com PDF4me Converter para PDF, PDF4me: Mesclar vários arquivos PDF, Panorama, DropboxE uma única ação "Aplicar" em cada loop. Sete ações de fluxo. Um e-mail é recebido. Um PDF consolidado é enviado, primeiro o corpo do e-mail e depois os anexos, com data e hora registradas e arquivado automaticamente na sua pasta de arquivos.

O fluxo em resumo
1. When a new email arrives (V3)
Outlook trigger on To [email protected]. Include Attachments Yes, Only with Attachments Yes.
2. Initialize variable
Name email, Type Array. Buffer for every PDF binary the flow produces.
3. Convert to PDF Body
PDF4me action. Content triggerOutputs body/body (the HTML body), File Name email-body.html. Returns the body as PDF.
4. Append to array (email body)
Push base64ToBinary on the converted body PDF onto the email array. This is page 1 of the final document.
5. Apply to each attachment
Loop triggerOutputs body/attachments. Convert each to PDF, then Append to array with base64ToBinary.
6. Merge multiple PDFs
PDF4me action. Body/docContent the email array, Output File Name Email Attachment Merge Output.pdf.
7. Create file
Dropbox /blog data/merge blog template/output. File Name concat(merge-, formatDateTime(utcNow(), yyyyMMdd-HHmmss), .pdf).
A versão curta

Uma Perspectiva Quando um novo e-mail chega (V3) O gatilho é acionado no momento em que uma mensagem chega ao destino. [email protected]Uma variável de matriz chamada e-mail abre. PDF4me Converter para PDF O código primeiro converte o corpo HTML em um PDF e, em seguida, adiciona o corpo convertido à matriz como página 1. Aplicar a cada um examina todos os anexos (dois arquivos DOCX nesta execução: 3Páginas.docx, Docx_2Pages.docx), converte cada um para PDF e anexa os arquivos em sequência. PDF4me Mesclar vários arquivos PDF Consome toda a matriz e emite um PDF consolidado. Dropbox Criar arquivo escreve de volta como merge-20260611-103323.pdfUm nome com registro de data e hora que nunca entra em conflito. Corpo do arquivo primeiro, anexos em ordem, um PDF, uma pasta, pronto para auditoria.

Perguntas e respostas baseadas no "porquê".

Por que converter o corpo do texto para PDF primeiro? O corpo do texto é o contexto: quem enviou, por quê, o que fazer. O seu eu do futuro, ao ler o PDF consolidado, quer que a página 1 contextualize a situação antes da inclusão dos anexos. Convertendo triggerOutputs()?['body/body'] (O corpo HTML) em um PDF primeiro significa que a ação de mesclagem vê a própria mensagem como o documento principal, e não como um conjunto de texto separado.

Por que usar uma única variável de matriz para o corpo e os anexos? A ação de mesclagem requer uma única coleção ordenada. Inicialize uma vez, insira o corpo na etapa 4, insira cada anexo convertido na etapa 5 e a matriz terá exatamente a ordem de documentos desejada. Duas matrizes separadas forçariam uma ação de composição posterior para concatená-las, o que apenas resulta em mais código para o mesmo resultado.

Por que base64ParaBinário A cada toque? O PDF4me Convert to PDF retorna sua saída como uma string base64 encapsulada em $contentOs anexos do Outlook chegam em formato base64. bytes de conteúdoO PDF4me mescla vários arquivos PDF e requer buffers binários. O mesmo ocorre com a mesclagem de vários arquivos PDF. base64ParaBinário(...) As chamadas de ponte abrangem ambas as fontes, apenas apontando para nomes de propriedade diferentes. Ignore a conversão e os erros de ação de mesclagem com "conteúdo inválido".

Por que um nome de saída com registro de data e hora? Dois e-mails do mesmo remetente, enviados dentro de uma hora, entrariam em conflito se o nome do arquivo fosse o mesmo. concat('merge-', formatDateTime(utcNow(), 'yyyyMMdd-HHmmss'), '.pdf') produz nomes como merge-20260611-103323.pdf, classificável lexicograficamente, único com precisão de segundos e instantaneamente legível como um carimbo de data/hora UTC.


O que você receberá

Entrada: Qualquer e-mail recebido no endereço monitorado (aqui, [email protected]) com um ou mais anexos. Este passo a passo usa um corpo de mensagem curto ("Olá, espero que esteja bem...") e dois anexos DOCX (3Page.docx, Docx_2Pages.docx). Saída: Um único PDF consolidado foi inserido em /blog data/merge blog template/output/, chamado merge-YYYYMMDD-HHmmss.pdfA página 1 contém o corpo do texto. Da página 2 em diante, cada anexo é apresentado na ordem em que foi anexado, renderizado por meio do Aspose Words.

O e-mail recebido

Visualização de e-mail do Gmail mostrando mensagem endereçada a "test", corpo "Olá, espero que esteja bem. Estou escrevendo para informá-lo sobre o andamento do projeto atual." Alguns arquivos relacionados também estão anexados para sua referência. Atenciosamente, Equipe de Desenvolvimento de Testes. Dois anexos são exibidos como miniaturas de documentos do Word: 3Page.docx e Docx_2Pages.docx. Aviso de digitalização pelo Gmail visível.

O fluxo monitora a caixa de entrada do Outlook em [email protected]Assim que o Gmail encaminha a mensagem ou este endereço a recebe diretamente, o gatilho é acionado.

A pasta Dropbox resultante após duas execuções.

A lista de pastas de saída do Dropbox contém os arquivos merge-20260611-103323.pdf (165,43 KB) e merge-20260611-102949.pdf (171,37 KB), cada um nomeado de acordo com o carimbo de data/hora UTC em que o fluxo foi executado.

Página 1 do PDF mesclado

A pré-visualização do arquivo merge-20260611-103323.pdf mostra duas páginas lado a lado. A página da esquerda é o corpo do e-mail convertido. Olá, espero que esteja bem. Estou escrevendo para informá-lo(a) sobre o andamento do projeto atual. Alguns arquivos relacionados também estão anexados para sua referência. Atenciosamente, Equipe de Desenvolvimento de Testes. A página da direita é a primeira página do arquivo 3Page.docx, intitulada "Página 1".

A página 1 é o corpo do e-mail convertido. Da página 2 em diante, encontra-se o primeiro anexo (3Páginas.docx). O segundo anexo (Docx_2Pages.docx) vem a seguir. Um PDF, mensagem completa reconstruída.


Do que você precisa

  • Power Automate. Abra o Power AutomateQualquer plano com conectores premium (PDF4me Connect é premium).
  • Chave da API do PDF4me. Obtenha sua chave de APIConecte-o na primeira vez que adicionar uma ação do PDF4me.
  • Office 365 OutlookPara o Quando um novo e-mail chega (V3) acionar e ler anexo bytes de conteúdoQualquer caixa de entrada que o conector consiga autenticar funciona.
  • Dropbox (ou SharePoint, OneDrive, Google Drive). Para o PDF consolidado final.
  • Um e-mail com anexosO passo a passo utiliza dois exemplos em formato DOCX. 3Páginas.docx e Docx_2Pages.docxEnvie-os por e-mail para o endereço monitorado para espelhar todas as capturas de tela.

Primeiro, obtenha as amostras e o resultado esperado. Baixe os dois arquivos DOCX, anexe-os a um e-mail rápido para o endereço que você está monitorando e publique o fluxo. Sua primeira execução deverá produzir um resultado. mesclar-AAAAMMDD-HHmmss.pdf que espelha exatamente a amostra vinculada (apenas o carimbo de data/hora difere).


O Fluxo em Resumo

  1. Outlook: Quando um novo e-mail chega (V3) (acionar).
  2. Inicializar variável chamado email (Variedade).
  3. PDF4me: Converter para PDF (Corpo)Lê o corpo do HTML e retorna um PDF.
  4. Adicionar à variável de matriz com base64ToBinary no corpo convertido.
  5. Aplicar a cada sobre triggerOutputs()?['body/attachments']:
    • PDF4me: Converter para PDF o anexo.
    • Adicionar à variável de matriz com base64ToBinary no PDF convertido.
  6. PDF4me: Mescle vários arquivos PDF em um único arquivo PDF.Matriz de entrada, um PDF de saída.
  7. Dropbox: Criar arquivoA expressão "Nome do Arquivo" registra o carimbo de data/hora UTC.

Visão geral completa do fluxo

Tela de fluxo do Power Automate mostrando sete ações empilhadas de cima para baixo: Quando um novo e-mail chega V3, Inicializar variável, Converter para corpo em PDF, Adicionar à variável de matriz (corpo do e-mail), Aplicar a cada ação que contém Converter para PDF e Adicionar à variável de matriz, Mesclar vários arquivos PDF em um único arquivo PDF, Criar arquivo

Sete ações. A opção "Aplicar a cada cartão" mostra "1 de 2" porque o e-mail de teste tinha dois anexos. O PDF4me entra no fluxo três vezes: converter corpo, converter anexo e mesclar tudo.


Passo 1: Outlook: Quando um novo e-mail chega (V3)

Fluxo até o momento: Apenas o gatilho.

  1. Em Power Automate clique Criar, escolher Fluxo de nuvem automatizado.
  2. Dê um nome ao fluxo (por exemplo, Email to Consolidated PDF), escolha Office 365 Outlook: Quando um novo e-mail chega (V3) como gatilho, clique Criar.
  3. Conectar Sua caixa de correio do Office 365.
  4. Expand Parâmetros avançados e Mostrar tudo para revelar as opções de filtragem.
  5. Configurar:
    • Para: [email protected] (filtrar para que apenas e-mails endereçados a este endereço acionem o fluxo)
    • Incluir anexos: Yes
    • Somente com anexos: Yes

Configuração do gatilho

Power Automate Office 365 Outlook: Quando um novo e-mail chega (V3) - Gatilho: Parâmetros avançados expandidos, mostrando: Para definir para test@ynoox.ch, Incluir anexos: Sim, Somente com anexos: Sim, Conectado ao Office 365 Outlook

Dica. Somente com anexos Sim É o que impede que o fluxo seja acionado a cada notificação interna, convite de calendário ou resposta. Combine com um Para filtrar em um alias dedicado (por exemplo, [email protected]) para um endereço de entrada limpo que receba apenas as correspondências que você realmente deseja consolidar.


Etapa 2: Inicializar a variável de e-mail

Fluxo até o momento: Gatilho mais Inicializar variável.

Abra uma matriz vazia para coletar o PDF do corpo do arquivo e todos os PDFs dos anexos.

  1. Clique + Novo passo, escolha Inicializar variável.
  2. Configurar:
    • Nome: email
    • Tipo: Array
    • ValorDeixe em branco

Inicializar configuração de variáveis

A ação Inicializar variável do Power Automate está configurada com o nome "email", o tipo "matriz" e o campo "Valor" vazio.

Etapa 3: PDF4me: Converter para PDF (Corpo)

Fluxo até o momento: Gatilho + Inicializar variável + Converter para corpo PDF.

O gatilho do Outlook emite o corpo da mensagem como HTML em body/bodyO PDF4me Convert to PDF lê o HTML diretamente, portanto, toda a conversão é feita em uma única ação.

  1. Clique + Novo passo, procurar PDF4me, escolha Converter para PDF.
  2. Renomear a ação para Converter para corpo de PDF Assim, a ação "Converter para PDF" da etapa 5 poderá ter seu próprio nome posteriormente.
  3. Conectar Conecte-se ao PDF4me com sua chave de API (somente na primeira vez).
  4. Configurar:
    • Conteúdo do arquivo (expressão, clique) fx): triggerOutputs()?['body/body']
    • Nome do arquivo: email-body.html

Converter para configuração do corpo do PDF

A ação "Converter em Corpo de PDF" do Power Automate PDF4me, com o Conteúdo do Arquivo definido como o token do gatilho "Corpo" (expressão triggerOutputs body/body) e o Nome do Arquivo email-body.html, está conectada ao PDF4me Connect.

O .html A extensão no nome do arquivo indica ao PDF4me qual renderizador usar. Enviar .docx, .xlsx, .png, ou .jpg Com a mesma facilidade, a mesma ação resolve todos eles.


Etapa 4: Adicionar à variável de matriz (corpo do e-mail)

Fluxo até o momento: Gatilho + Inicializar variável + Converter para corpo do PDF + Anexar (corpo do e-mail).

Empurre o PDF do corpo convertido para o email matriz como página 1.

  1. Clique + Novo passo, escolha Adicionar à variável de matriz.
  2. Renomear a ação para Adicionar à variável de matriz (corpo do e-mail) Para maior clareza.
  3. Configurar:
    • Nome: email
    • Valor (expressão): base64ToBinary(body('Convert_to_PDF_Body')?['$content'])

Adicionar configuração ao corpo do e-mail

A ação "Anexar à variável de matriz (corpo do e-mail)" do Power Automate, com o nome "email" e o valor definidos como a expressão "base64ToBinary body open quote Convert_to_PDF_Body close quote close paren question dollar content close bracket" exibida no editor de expressões.

Etapa 5: Aplicar a cada anexo, converter e anexar

Fluxo até o momento: Gatilho + Inicializar variável + Converter para corpo do PDF + Anexar (corpo do e-mail) + Aplicar a cada.

Percorra cada anexo, converta cada um para PDF e anexe-os em sequência para que a mesclagem final respeite a ordem dos anexos.

Etapa 5a: Aplicar a cada um (escolha a fonte)

  1. Clique + Novo passo, escolha Aplicar a cada.
  2. Configurar:
    • Selecione uma saída das etapas anteriores. (expressão): triggerOutputs()?['body/attachments']
Power Automate: Aplicar a cada ação com Selecionar uma saída das etapas anteriores definida como o token Anexos, expressão resolvida triggerOutputs body/attachments mostrado na dica de ferramenta

Etapa 5b: Converter para PDF (o anexo)

  1. Dentro do loop, clique Adicionar uma ação, escolha PDF4me: Converter para PDF.
  2. Configurar:
    • Conteúdo do arquivo (expressão): base64ToBinary(items('Apply_to_each')?['contentBytes'])
    • Nome do arquivo (conteúdo dinâmico): escolha nome Aplique a cada item atual
Na ação Converter para PDF do Power Automate, dentro de Aplicar a cada, o Conteúdo do Arquivo está definido como itens base64ToBinary Apply_to_each contentBytes, o Nome do Arquivo está definido como o token de nome do anexo atual e o editor de expressões está aberto mostrando itens base64ToBinary Apply_to_each contentBytes.

O nome O token de conteúdo dinâmico é resolvido em tempo de execução para items('Apply_to_each')?['name']Assim, cada anexo é convertido usando seu nome de arquivo original (que contém a extensão de origem e informa ao PDF4me qual renderizador usar).

Dica de ferramenta do campo Nome do arquivo de conversão para PDF do Power Automate, mostrando os itens da expressão resolvida: Apply_to_each name, name token from Apply to each current attachment

Etapa 5c: Adicionar à variável de matriz (o anexo convertido)

  1. Abaixo, a conversão para PDF ocorre dentro do mesmo loop. Adicionar uma ação, escolha Adicionar à variável de matriz.
  2. Configurar:
    • Nome: email
    • Valor (expressão): base64ToBinary(body('Convert_to_PDF')?['$content'])
Power Automate: Adicionar à variável de matriz dentro de Aplicar a cada, Nome email, Valor definido como base64ToBinary body Convert_to_PDF conteúdo em dólares exibido no editor de expressões

Os dois nomes de propriedade são importantes. Os bytes dos anexos do Outlook estão ativos em bytes de conteúdoO PDF4me Converter para saída em PDF continua funcionando. $contentAmbos são em base64. Mantenha os nomes corretos ao colar as expressões e o loop funcionará perfeitamente.


Etapa 6: PDF4me: Mesclar vários arquivos PDF

Fluxo até o momento: Gatilho + Inicializar variável + Converter para corpo do PDF + Anexar (corpo) + Aplicar a cada + Mesclar vários PDFs.

O todo email O array (primeiro o PDF do corpo do arquivo, depois os PDFs dos anexos na ordem em que foram anexados) é processado em uma única chamada Merge.

  1. Abaixo, clique em Aplicar a cada loop. + Novo passo, procurar PDF4me, escolha Mesclar vários arquivos PDF em um único arquivo PDF..
  2. Configurar:
    • Corpo/Conteúdo do documento: escolha o email token variável
    • Nome do arquivo de saída: Email Attachment Merge Output.pdf

Configuração da ação de mesclagem

A ação Power Automate PDF4me mescla vários arquivos PDF em um único arquivo PDF, com o conteúdo do documento (Body/docContent) definido como a variável de e-mail e o nome do arquivo de saída sendo "Email Attachment Merge Output.pdf". O painel de conteúdo dinâmico é aberto, exibindo as variáveis: e-mail, Aplicar a cada, Item atual, Quando um novo e-mail chegar (V3), body/sensitivityLabelInfo e Anexos.

Etapa 7: Dropbox: Criar arquivo com nome com carimbo de data/hora

Fluxo até o momento: Gatilho + Inicializar variável + Converter para corpo do PDF + Anexar + Aplicar a cada + Mesclar + Criar arquivo.

Salve o PDF consolidado no Dropbox com um nome de arquivo com carimbo de data/hora UTC para que cada execução resulte em um arquivo novo e classificável.

  1. Clique + Novo passo, escolha Dropbox: Criar arquivo.
  2. Configurar:
    • Caminho da pasta: /blog data/merge blog template/output
    • Nome do arquivo (expressão, clique) fx): concat('merge-', formatDateTime(utcNow(), 'yyyyMMdd-HHmmss'), '.pdf')
    • Conteúdo do arquivo: escolha o Conteúdo do arquivo token da ação Mesclar vários PDFs

Expressão do nome do arquivo

Ação "Criar arquivo" do Power Automate Dropbox: Caminho da pasta /blog data/merge blog template/output, Nome do arquivo: expressão concat merge dash comma formatDateTime utcNow comma yyyyMMdd dash HHmmss comma dot pdf (exibido no editor de expressões), Conteúdo do arquivo definido como "Mesclar vários tokens".

Ação final com conteúdo do arquivo mapeado

Ação "Criar arquivo" do Power Automate para Dropbox com o caminho da pasta /blog data/merge blog template/output, expressão de concatenação do nome do arquivo e token de conteúdo do arquivo da ação "Mesclar vários arquivos PDF em um único arquivo PDF", com a dica de ferramenta resolvendo para o corpo da ação "Mesclar_vários_arquivos_PDF_em_um_único_arquivo_PDF".

Dica. Deseja uma pasta por domínio remetente? Substitua o caminho estático da pasta por concat('/inbox-pdfs/', split(triggerOutputs()?['body/from'], '@')[1], '/')Os PDFs são automaticamente roteados para subpastas como /inbox-pdfs/yourcompany.com/ com base no domínio do remetente.


Execute o fluxo e verifique.

  1. Salvar o fluxo no canto superior direito.
  2. Envie um e-mail com uma mensagem contendo um ou mais anexos para o endereço monitorado (o passo a passo usado). [email protected]).
  3. Abrir Histórico de execuçãoO gatilho deve ser acionado em segundos. Observe cada ação ficar verde: Converter para corpo de PDF leva cerca de 10 segundos para um corpo HTML curto; Aplicar a cada um é executado em paralelo por padrão e conclui ambos os anexos em cerca de 22 segundos; Mesclar vários PDFs leva cerca de 11 segundos.
  4. Abra o Dropbox em /blog data/merge blog template/output/Um arquivo chamado merge-YYYYMMDD-HHmmss.pdf existe.
  5. Abra o PDF. A página 1 contém o texto principal. Da página 2 em diante, cada anexo é exibido na íntegra, na ordem em que foi anexado.

O que você construiu exatamente? Um fluxo de trabalho automatizado de e-mail para arquivamento. Cada mensagem com anexos é transformada em um único PDF consolidado, primeiro o corpo da mensagem e depois os anexos em ordem, com carimbo de data/hora para evitar conflitos, e salvo em uma pasta compartilhada que sua equipe ou auditores podem pesquisar. A mesma receita lida com dois ou vinte anexos sem qualquer alteração. A mesma receita funciona no Make (gatilho do Outlook + iterador sobre anexos + mesclagem PDF4me) e no Zapier (e-mail via Zapier ou gatilho do Outlook + loop + mesclagem PDF4me).


Variações comuns que você pode adicionar sem reconstruir

Filtrar anexos por tipo
Se você quiser apenas PDFs e documentos do Office na mesclagem, envolva a conversão para PDF em um bloco `convert to PDF`. Doença testes endsWith(toLower(items('Apply_to_each')?['name']), '.pdf') ou similar. Ignora assinaturas e anexos de imagens embutidos sem problemas.
Inserir metadados na página 1
Antes da etapa 3, crie um preâmbulo HTML com Compor: remetente, assunto, data de recebimento, e então concatenar tudo em corpo/corpoA página 1 do PDF consolidado agora contém um cabeçalho que você pode usar para pesquisar posteriormente.
Assinatura digital antes do arquivamento
Insira PDF4me Assinatura digital em PDF entre as etapas 6 e 7. O PDF arquivado é assinado com seu certificado X.509, um registro de auditoria instantâneo de Quem arquivou o quê? Quando?.
PDF/A para retenção a longo prazo
Adicionar PDF4me Criar PDF/A com conformidade PDF/A-2b Após a fusão, o PDF consolidado arquivado agora está em conformidade com a norma ISO 19005, adequado para fins legais ou para submissão a órgãos reguladores.

Solução de problemas

A ação de mesclagem apresenta erros com "conteúdo inválido".

Uma das opções de adicionar ao array Valor expressões não estão envolvidas em base64ParaBinário(...)Cada push (corpo e anexos) precisa da conversão. Reabra ambas as ações de Anexar, mude para o editor de expressões e confirme se as expressões estão corretas. base64ToBinary(body('Convert_to_PDF_Body')?['$content']) e base64ToBinary(body('Convert_to_PDF')?['$content']) literalmente.

A página 1 está em branco ou ausente.

A ação Converter para Corpo em PDF não recebeu um corpo HTML válido. Verifique o gatilho. Incluir anexos Sim, permaneceu (sem ele, o corpo às vezes chega vazio) e isso Conteúdo do arquivo resolve para triggerOutputs()?['body/body'], não corpo/pré-visualização do corpo.

Aplicar a cada execução zero vezes

O gatilho foi acionado em um e-mail sem anexos porque Somente com anexos está definido como Não. Ou altere para Sim, ou envolva o "Aplicar a cada" em uma condição que seja executada somente quando comprimento(triggerOutputs()?['body/attachments']) é maior que zero.

Os anexos saem na ordem errada.

O padrão Aplicar a cada um Execuções em paralelo podem embaralhar a ordem de acréscimo. Abra o loop. Configurações e definir Controle de Concorrência Grau de paralelismo com 1O loop agora é executado sequencialmente e os anexos são inseridos na matriz exatamente na ordem em que o Outlook os retornou.


Próximos passos

O mesmo padrão de sete etapas (disparar, inicializar matriz, converter corpo, repetir, converter e anexar, mesclar e salvar com um carimbo de data/hora) funciona para qualquer automação de "e-mail com anexos em um único PDF". Envie uma vez e cada mensagem recebida se tornará automaticamente uma entrada de arquivo pesquisável e classificável.