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

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.
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

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.

Página 1 do PDF mesclado

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

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.
- Em Power Automate clique Criar, escolher Fluxo de nuvem automatizado.
- 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. - Conectar Sua caixa de correio do Office 365.
- Expand Parâmetros avançados e Mostrar tudo para revelar as opções de filtragem.
- 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
- Para:
Configuração do gatilho

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.
- Clique + Novo passo, escolha Inicializar variável.
- Configurar:
- Nome:
email - Tipo:
Array - ValorDeixe em branco
- Nome:
Inicializar configuração de variáveis

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.
- Clique + Novo passo, procurar PDF4me, escolha Converter para PDF.
- 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.
- Conectar Conecte-se ao PDF4me com sua chave de API (somente na primeira vez).
- Configurar:
- Conteúdo do arquivo (expressão, clique)
fx):triggerOutputs()?['body/body'] - Nome do arquivo:
email-body.html
- Conteúdo do arquivo (expressão, clique)
Converter para configuração do corpo do PDF

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.
- Clique + Novo passo, escolha Adicionar à variável de matriz.
- Renomear a ação para Adicionar à variável de matriz (corpo do e-mail) Para maior clareza.
- Configurar:
- Nome:
email - Valor (expressão):
base64ToBinary(body('Convert_to_PDF_Body')?['$content'])
- Nome:
Adicionar configuração ao corpo do e-mail

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)
- Clique + Novo passo, escolha Aplicar a cada.
- Configurar:
- Selecione uma saída das etapas anteriores. (expressão):
triggerOutputs()?['body/attachments']
- Selecione uma saída das etapas anteriores. (expressão):

Etapa 5b: Converter para PDF (o anexo)
- Dentro do loop, clique Adicionar uma ação, escolha PDF4me: Converter para PDF.
- 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
- Conteúdo do arquivo (expressão):

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).

Etapa 5c: Adicionar à variável de matriz (o anexo convertido)
- Abaixo, a conversão para PDF ocorre dentro do mesmo loop. Adicionar uma ação, escolha Adicionar à variável de matriz.
- Configurar:
- Nome:
email - Valor (expressão):
base64ToBinary(body('Convert_to_PDF')?['$content'])
- Nome:

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.
- Abaixo, clique em Aplicar a cada loop. + Novo passo, procurar PDF4me, escolha Mesclar vários arquivos PDF em um único arquivo PDF..
- Configurar:
- Corpo/Conteúdo do documento: escolha o
emailtoken variável - Nome do arquivo de saída:
Email Attachment Merge Output.pdf
- Corpo/Conteúdo do documento: escolha o
Configuração da ação de mesclagem

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.
- Clique + Novo passo, escolha Dropbox: Criar arquivo.
- 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
- Caminho da pasta:
Expressão do nome do arquivo

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

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.
- Salvar o fluxo no canto superior direito.
- Envie um e-mail com uma mensagem contendo um ou mais anexos para o endereço monitorado (o passo a passo usado).
[email protected]). - 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.
- Abra o Dropbox em
/blog data/merge blog template/output/Um arquivo chamadomerge-YYYYMMDD-HHmmss.pdfexiste. - 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
endsWith(toLower(items('Apply_to_each')?['name']), '.pdf') ou similar. Ignora assinaturas e anexos de imagens embutidos sem problemas.corpo/corpoA página 1 do PDF consolidado agora contém um cabeçalho que você pode usar para pesquisar posteriormente.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
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 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.
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.
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.