Convertire il corpo dell'email e tutti gli allegati in un unico PDF consolidato con Power Automate: un flusso di lavoro in 7 passaggi con Outlook e PDF4me.

La parte dolorosa dei flussi di lavoro basati sulle email non è l'email, è tutto ciò che ne consegueIl corpo contiene il contesto (chi l'ha inviato, perché, cosa fare), gli allegati contengono gli artefatti (la fattura, il modulo, il contratto firmato) e memorizzarli separatamente significa che in futuro avrai bisogno di tre clic per ricostruire il messaggio. Questa procedura dettagliata crea il modello esatto in Power Automate con PDF4me Converti in PDF, PDF4me: Unisci più file PDF, Veduta, Dropboxe un singolo "Applica" per ogni ciclo. Sette azioni di flusso. Arriva un'email. Viene inviato un PDF consolidato, prima il corpo del testo e poi gli allegati, con data e ora, e viene inserito automaticamente nella cartella di archivio.
Una prospettiva Quando arriva una nuova email (V3) Il trigger si attiva nel momento in cui un messaggio arriva a [email protected]. Una variabile array denominata e-mail si apre. PDF4me Converti in PDF trasforma prima il corpo HTML in un PDF, il corpo convertito viene inserito nell'array come pagina 1. Applicare a ciascuno esegue ogni allegato (due file DOCX in questa esecuzione: 3Page.docx, Docx_2Pagine.docx), converte ciascuno in PDF e li aggiunge uno alla volta. PDF4me Unire più file PDF consuma l'intero array ed emette un PDF consolidato. Dropbox Crea file lo riscrive come merge-20260611-103323.pdfUn nome con timestamp che non presenta mai conflitti. Corpo del testo per primo, allegati in ordine, un unico PDF, una sola cartella, pronto per la verifica.
Domande e risposte basate sul "perché"
Perché convertire prima il corpo del documento in PDF? Il corpo è il contesto: chi l'ha inviato, perché, cosa fare. Il tuo io futuro che legge il PDF consolidato vuole che la pagina 1 prepari la scena prima che arrivino gli allegati. Conversione triggerOutputs()?['body/body'] (il corpo HTML) in un PDF prima significa che l'azione di unione vede il messaggio stesso come il documento principale, non come un dump di testo separato.
Perché utilizzare una sola variabile array sia per il corpo del messaggio che per gli allegati? L'azione di unione richiede una singola raccolta ordinata. Inizializzala una volta, inserisci il corpo al passaggio 4, inserisci ogni allegato convertito al passaggio 5 e l'array avrà esattamente l'ordine dei documenti desiderato. Due array separati richiederebbero un'azione di composizione successiva per concatenarli, il che non farebbe altro che complicare ulteriormente le cose per ottenere lo stesso risultato.
Perché base64ToBinary ad ogni spinta? PDF4me Convert to PDF restituisce il suo output come stringa base64 avvolta su $contentGli allegati di Outlook arrivano come base64 su contentBytes. PDF4me L'unione di più file PDF richiede buffer binari. Lo stesso base64ToBinary(...) La chiamata collega entrambe le fonti, ma punta a nomi di proprietà diversi. Salta la conversione e l'azione di unione che genera errori con "contenuto non valido".
Perché un nome di output con timestamp? Se il nome del file fosse lo stesso, due email provenienti dallo stesso mittente e inviate entro un'ora si sovrapporrebbero. concat('merge-', formatDateTime(utcNow(), 'yyyyMMdd-HHmmss'), '.pdf') produce nomi come merge-20260611-103323.pdfOrdinabile lessicograficamente, univoco in seconda precisione e immediatamente leggibile come timestamp UTC.
Cosa riceverai
Ingresso: Qualsiasi email in arrivo all'indirizzo monitorato (qui, [email protected]) con uno o più allegati. Questa procedura guidata utilizza un corpo del messaggio breve ("Ciao, spero che tu stia bene...") e due allegati DOCX (3Page.docx, Docx_2Pages.docx). Produzione: Un singolo PDF consolidato è stato inserito in /blog data/merge blog template/output/, chiamato merge-YYYYMMDD-HHmmss.pdfLa pagina 1 è il corpo del documento. Dalla pagina 2 in poi, ogni allegato è presente nell'ordine di allegato, visualizzato tramite Aspose Words.
L'e-mail in arrivo

Il flusso monitora la posta in arrivo di Outlook a [email protected]Quando Gmail inoltra il messaggio o questo indirizzo lo riceve direttamente, il trigger si attiva.
La cartella di output di Dropbox dopo due esecuzioni

Pagina 1 del PDF unito

La pagina 1 è il corpo dell'e-mail convertita. Dalla pagina 2 in poi è il primo allegato (3Page.docx). Il secondo allegato (Docx_2Pagine.docxSegue poi il punto ( ). Un unico file PDF con il messaggio completo ricostruito.
Di cosa hai bisogno
- Power Automate. Open Power AutomateQualsiasi piano con connettori premium (PDF4me Connect è un piano premium).
- Chiave API di PDF4me. Ottieni la tua chiave APICollegalo la prima volta che aggiungi un'azione PDF4me.
- Outlook di Office 365. Per il Quando arriva una nuova email (V3) attivare e leggere l'allegato
contentBytesFunziona con qualsiasi casella di posta con cui il connettore possa autenticarsi. - Dropbox (o SharePoint, OneDrive, Google Drive). Per il PDF finale consolidato.
- Un'e-mail con allegatiLa procedura guidata utilizza due file DOCX di esempio. 3Page.docx E Docx_2Pagine.docxInvia loro un'e-mail all'indirizzo monitorato per replicare ogni screenshot.
Prendi prima i campioni e l'output previsto. Scarica entrambi i file DOCX, allegali a una breve email al tuo indirizzo monitorato, quindi pubblica il flusso. La tua prima esecuzione dovrebbe produrre un merge-YYYYMMDD-HHmmss.pdf che rispecchia esattamente l'esempio collegato (solo la data e l'ora differiscono).
Il flusso in sintesi
- Outlook: Quando arriva una nuova email (V3) (grilletto).
- Inizializza variabile denominato
email(Vettore). - PDF4me: Converti in PDF (Corpo)Legge il corpo HTML e restituisce un PDF.
- Aggiungi alla variabile array con
base64ToBinarysul corpo convertito. - Applicare a ciascuno SU
triggerOutputs()?['body/attachments']:- PDF4me: Converti in PDF l'allegato.
- Aggiungi alla variabile array con
base64ToBinarysul PDF convertito.
- PDF4me: Unisci più file PDF in un unico file PDF. Array in ingresso, un PDF in uscita.
- Dropbox: crea fileL'espressione del nome del file aggiunge il timestamp UTC.
Panoramica completa del flusso

Sette azioni. L'opzione "Applica a ciascuna scheda" mostra "1 di 2" perché l'email di prova aveva due allegati. PDF4me interviene nel flusso tre volte: converte il corpo del messaggio, converte l'allegato e unisce tutto.
Passaggio 1: Outlook: all'arrivo di una nuova email (V3)
Flusso finora: Solo attivazione.
- In Power Automate clic Creare, scegliere Flusso di nuvole automatizzato.
- Assegna un nome al flusso (ad esempio
Email to Consolidated PDF), scegliere Office 365 Outlook: Quando arriva una nuova email (V3) come trigger, fai clic Creare. - Collegare La tua casella di posta di Office 365.
- Espandi Parametri avanzati E Mostra tutto per mostrare le opzioni di filtro.
- Specificare:
- A:
[email protected](filtra in modo che solo la posta indirizzata a questo indirizzo attivi il flusso) - Includi allegati:
Yes - Solo con allegati:
Yes
- A:
Configurazione del trigger

Mancia. Solo con allegati Sì è ciò che impedisce al flusso di attivarsi ad ogni notifica interna, invito del calendario o risposta. Combina con un A filtra su un alias dedicato (ad esempio [email protected]) per un indirizzo di ricezione pulito che riceve solo la posta che desideri effettivamente consolidare.
Passaggio 2: Inizializza l'email variabile
Flusso finora: Attiva più Inizializza variabile.
Apri un array vuoto per raccogliere il corpo del PDF e tutti i PDF allegati.
- Fare clic + Nuovo passo, scegliere Inizializza variabile.
- Specificare:
- Nome:
email - Tipo:
Array - Valore: lasciare vuoto
- Nome:
Inizializza la configurazione variabile

Passaggio 3: PDF4me: Converti in PDF (Corpo)
Flusso finora: Attiva più Inizializza variabile più Converti in corpo PDF.
Il trigger di Outlook emette il corpo del messaggio come HTML su body/bodyPDF4me Convert to PDF legge direttamente l'HTML, quindi l'intera conversione avviene in un'unica operazione.
- Fare clic + Nuovo passo, ricerca PDF4me, scegliere Converti in PDF.
- Rinominare l'azione per Converti in corpo PDF quindi l'azione "Converti in PDF" del passaggio 5 può avere un nome univoco in seguito.
- Collegare PDF4me Connettiti con la tua chiave API (solo la prima volta).
- Specificare:
- Contenuto del file (espressione, clic)
fx):triggerOutputs()?['body/body'] - Nome del file:
email-body.html
- Contenuto del file (espressione, clic)
Converti in PDF Configurazione del corpo

IL .html L'estensione del nome del file indica a PDF4me quale renderer utilizzare. Invia .docx, .xlsx, .png, O .jpg Con la stessa facilità, la stessa azione li gestisce tutti.
Passaggio 4: Aggiungere alla variabile array (corpo dell'e-mail)
Flusso finora: Attiva più Inizializza variabile più Converti in corpo PDF più Aggiungi (corpo dell'email).
Spingi il corpo PDF convertito sul email array come pagina 1.
- Fare clic + Nuovo passo, scegliere Aggiungi alla variabile array.
- Rinominare l'azione per Aggiungi alla variabile array (corpo dell'email) per chiarezza.
- Specificare:
- Nome:
email - Valore (espressione):
base64ToBinary(body('Convert_to_PDF_Body')?['$content'])
- Nome:
Aggiungi la configurazione del corpo dell'email

Passaggio 5: applicare a ciascun allegato, convertire e aggiungere
Flusso finora: Attiva più Inizializza variabile più Converti in corpo PDF più Aggiungi (corpo email) più Applica a ciascuno.
Scorri tutti gli allegati, convertili in PDF e aggiungili uno alla volta in modo che l'unione finale rispetti l'ordine degli allegati.
Passaggio 5a: Applicare a ciascuno (selezionare la fonte)
- Fare clic + Nuovo passo, scegliere Applicare a ciascuno.
- Specificare:
- Seleziona un output dai passaggi precedenti (espressione):
triggerOutputs()?['body/attachments']
- Seleziona un output dai passaggi precedenti (espressione):

Passaggio 5b: Convertire in PDF (l'allegato)
- All'interno del ciclo fai clic Aggiungi un'azione, scegliere PDF4me: Converti in PDF.
- Specificare:
- Contenuto del file (espressione):
base64ToBinary(items('Apply_to_each')?['contentBytes']) - Nome del file (contenuto dinamico): scegli nome da Applica a ogni elemento corrente
- Contenuto del file (espressione):

IL nome Il token dynamic-content si risolve in fase di esecuzione in items('Apply_to_each')?['name']Pertanto, ogni allegato viene convertito utilizzando il suo nome file originale (che contiene l'estensione del file sorgente e indica a PDF4me quale motore di rendering utilizzare).

Passaggio 5c: Aggiungere alla variabile array (l'allegato convertito)
- Di seguito Converti in PDF all'interno dello stesso ciclo, Aggiungi un'azione, scegliere Aggiungi alla variabile array.
- Specificare:
- Nome:
email - Valore (espressione):
base64ToBinary(body('Convert_to_PDF')?['$content'])
- Nome:

I nomi di entrambe le proprietà sono importanti. I byte degli allegati di Outlook sono attivi contentBytes. L'output di PDF4me Convert to PDF è disponibile $contentEntrambi sono in base64. Mantieni i nomi corretti quando incolli le espressioni e il ciclo funzionerà senza problemi.
Passaggio 6: PDF4me: Unire più file PDF
Flusso finora: Attiva più Inizializza variabile più Converti in corpo PDF più Aggiungi (corpo) più Applica a ciascuno più Unisci più PDF.
L'intero email L'array (prima il PDF del corpo del messaggio, poi i PDF degli allegati nell'ordine di allegato) viene elaborato da un'unica chiamata Merge.
- Sotto "Applica a ogni ciclo" fai clic + Nuovo passo, ricerca PDF4me, scegliere Unire più file PDF in un unico file PDF.
- Specificare:
- Corpo/docContenuto: scegli il
emailtoken variabile - Nome del file di output:
Email Attachment Merge Output.pdf
- Corpo/docContenuto: scegli il
Configurazione dell'azione di unione

Passaggio 7: Dropbox: crea un file con un nome che include data e ora.
Flusso finora: Attiva più Inizializza variabile più Converti in corpo PDF più Aggiungi più Applica a ciascuno più Unisci più Crea file.
Salva il PDF consolidato su Dropbox con un nome file che includa un timestamp UTC, in modo che ogni esecuzione generi un file nuovo e ordinabile.
- Fare clic + Nuovo passo, scegliere Dropbox: crea file.
- Specificare:
- Percorso cartella:
/blog data/merge blog template/output - Nome del file (espressione, clic)
fx):concat('merge-', formatDateTime(utcNow(), 'yyyyMMdd-HHmmss'), '.pdf') - Contenuto del file: scegli il Contenuto del file token dall'azione Unisci più PDF
- Percorso cartella:
espressione del nome del file

Azione finale con mappatura del contenuto del file

Mancia. Desideri una cartella per ogni dominio del mittente? Sostituisci il percorso statico della cartella con concat('/inbox-pdfs/', split(triggerOutputs()?['body/from'], '@')[1], '/')I file PDF vengono instradati automaticamente in sottocartelle come /inbox-pdfs/yourcompany.com/ in base al dominio del mittente.
Esegui il flusso e verifica
- Salva il flusso in alto a destra.
- Invia un messaggio con uno o più allegati all'indirizzo monitorato (la procedura guidata utilizzata
[email protected]). - Aprire Cronologia delle esecuzioniIl trigger dovrebbe attivarsi entro pochi secondi. Osserva ogni azione diventare verde: la conversione in corpo PDF richiede circa 10 secondi per un corpo HTML breve, l'applicazione a ciascun documento viene eseguita in parallelo per impostazione predefinita e completa entrambi gli allegati in circa 22 secondi, mentre l'unione di più PDF richiede circa 11 secondi.
- Apri Dropbox all'indirizzo
/blog data/merge blog template/output/Un file denominatomerge-YYYYMMDD-HHmmss.pdfè lì. - Apri il PDF. La pagina 1 contiene il testo principale. Dalla pagina 2 in poi, ogni allegato viene visualizzato per intero, nell'ordine in cui è stato allegato.
Che cosa hai costruito esattamente? Una pipeline di archiviazione automatica delle email, senza alcun intervento manuale. Ogni messaggio con allegati viene trasformato in un unico PDF consolidato, prima il corpo del messaggio e poi gli allegati in ordine, con data e ora per evitare conflitti, e viene salvato in una cartella condivisa consultabile dal team o dai revisori. La stessa procedura gestisce due o venti allegati senza alcuna modifica. La stessa procedura funziona sia con Make (trigger di Outlook più iteratore sugli allegati più unione PDF4me) che con Zapier (email tramite Zapier o trigger di Outlook più ciclo più unione PDF4me).
Varianti comuni che puoi aggiungere senza dover ricostruire
endsWith(toLower(items('Apply_to_each')?['name']), '.pdf') o simili. Salta le firme e gli allegati di immagini in linea in modo pulito.corpo/corpoLa pagina 1 del PDF consolidato ora contiene un'intestazione che è possibile utilizzare in seguito con il metodo grep.PDF/A-2b Dopo la fusione, il PDF consolidato archiviato è ora conforme alla norma ISO 19005, idoneo per la conservazione legale o la presentazione alle autorità di regolamentazione.Risoluzione dei problemi
Uno dei metodi Aggiungi all'array Valore le espressioni non sono racchiuse in base64ToBinary(...). Ogni push (corpo e allegati) necessita della conversione. Riapri entrambe le azioni Aggiungi, passa all'editor delle espressioni e conferma che le espressioni siano base64ToBinary(body('Convert_to_PDF_Body')?['$content']) E base64ToBinary(body('Convert_to_PDF')?['$content']) parola per parola.
L'azione Converti in corpo PDF non ha ricevuto un corpo HTML reale. Controlla il trigger Includi allegati è rimasto Sì (senza di esso il corpo a volte arriva vuoto) e che Contenuto del file risolve a triggerOutputs()?['body/body'], non anteprima del corpo/corpo.
Il trigger si è attivato su un'e-mail senza allegati perché Solo con allegati è impostato su No. O lo si cambia in Sì, oppure si racchiude l'Applica a ciascuno in una Condizione che viene eseguita solo quando lunghezza(triggerOutputs()?['corpo/attacchi']) è maggiore di zero.
L'impostazione predefinita Applicare a ciascuno esegue in parallelo, il che può alterare l'ordine di aggiunta. Apri il ciclo Impostazioni e impostare Controllo della concorrenza Grado di parallelismo a 1Il ciclo ora viene eseguito in sequenza e gli allegati vengono inseriti nell'array esattamente nell'ordine in cui Outlook li ha restituiti.
Prossimi passi
Lo stesso schema in sette fasi (attivazione, quindi inizializzazione dell'array, quindi conversione del corpo, quindi ciclo di conversione e aggiunta, quindi unione, quindi salvataggio con timestamp) funziona per qualsiasi automazione "email più allegati in un unico PDF". Invialo una volta e ogni messaggio in arrivo diventerà automaticamente una voce d'archivio ricercabile e ordinabile.