Passa al contenuto principale

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.

· 26 minuti di lettura
SEO and Content Writer

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.

Il flusso in sintesi
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).
La versione breve

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

Visualizzazione email di Gmail con messaggio indirizzato a test, corpo Ciao Spero che tu stia bene Ti scrivo per informarti sui progressi del progetto in corso Sono allegati anche alcuni file correlati per tua consultazione Cordiali saluti Test Dev, due allegati visualizzati come miniature di documenti Word 3Page.docx e Docx_2Pages.docx, Scansionato da Gmail avviso visibile

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

Elenco delle cartelle di output di Dropbox merge-20260611-103323.pdf (165,43 KB) e merge-20260611-102949.pdf (171,37 KB), ciascuna denominata in base al timestamp UTC in cui è stato eseguito il flusso.

Pagina 1 del PDF unito

Anteprima di merge-20260611-103323.pdf che mostra due pagine affiancate, la pagina di sinistra è il corpo dell'email convertito Ciao Spero che tu stia bene Ti scrivo per informarti sui progressi del progetto in corso Sono allegati anche alcuni file correlati per tuo riferimento Cordiali saluti Test Dev, la pagina di destra è la prima pagina di 3Page.docx etichettata Pagina 1

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

  1. Outlook: Quando arriva una nuova email (V3) (grilletto).
  2. Inizializza variabile denominato email (Vettore).
  3. PDF4me: Converti in PDF (Corpo)Legge il corpo HTML e restituisce un PDF.
  4. Aggiungi alla variabile array con base64ToBinary sul corpo convertito.
  5. Applicare a ciascuno SU triggerOutputs()?['body/attachments']:
    • PDF4me: Converti in PDF l'allegato.
    • Aggiungi alla variabile array con base64ToBinary sul PDF convertito.
  6. PDF4me: Unisci più file PDF in un unico file PDF. Array in ingresso, un PDF in uscita.
  7. Dropbox: crea fileL'espressione del nome del file aggiunge il timestamp UTC.

Panoramica completa del flusso

Canvas del flusso di Power Automate che mostra sette azioni impilate dall'alto verso il basso: Quando arriva una nuova email V3, Inizializza variabile, Converti in corpo PDF, Aggiungi alla variabile array (corpo email), Applica a ciascuno contenente Converti in PDF e Aggiungi alla variabile array, Unisci più file PDF in un singolo file PDF, Crea file

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.

  1. In Power Automate clic Creare, scegliere Flusso di nuvole automatizzato.
  2. 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.
  3. Collegare La tua casella di posta di Office 365.
  4. Espandi Parametri avanzati E Mostra tutto per mostrare le opzioni di filtro.
  5. 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

Configurazione del trigger

Power Automate Office 365 Outlook Quando arriva una nuova email Trigger V3 Parametri avanzati espansi che mostrano Da impostare su test@ynoox.ch, Includi allegati Sì, Solo con allegati Sì, Connesso a Office 365 Outlook

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.

  1. Fare clic + Nuovo passo, scegliere Inizializza variabile.
  2. Specificare:
    • Nome: email
    • Tipo: Array
    • Valore: lasciare vuoto

Inizializza la configurazione variabile

Azione di inizializzazione variabile di Power Automate configurata con Nome email e Tipo Array e un campo Valore vuoto

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.

  1. Fare clic + Nuovo passo, ricerca PDF4me, scegliere Converti in PDF.
  2. Rinominare l'azione per Converti in corpo PDF quindi l'azione "Converti in PDF" del passaggio 5 può avere un nome univoco in seguito.
  3. Collegare PDF4me Connettiti con la tua chiave API (solo la prima volta).
  4. Specificare:
    • Contenuto del file (espressione, clic) fx): triggerOutputs()?['body/body']
    • Nome del file: email-body.html

Converti in PDF Configurazione del corpo

Azione Power Automate PDF4me Converti in PDF Corpo con Contenuto file impostato sul token di attivazione Corpo (espressione triggerOutputs body/body) e Nome file email-body.html, Connesso a PDF4me Connect

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.

  1. Fare clic + Nuovo passo, scegliere Aggiungi alla variabile array.
  2. Rinominare l'azione per Aggiungi alla variabile array (corpo dell'email) per chiarezza.
  3. Specificare:
    • Nome: email
    • Valore (espressione): base64ToBinary(body('Convert_to_PDF_Body')?['$content'])

Aggiungi la configurazione del corpo dell'email

Azione Power Automate Aggiungi alla variabile array (corpo dell'email) con Nome email e Valore impostato sull'espressione base64ToBinary corpo apri virgolette Convert_to_PDF_Body chiudi virgolette chiudi parentesi interrogativa dollaro contenuto chiudi parentesi mostrata nell'editor di espressioni

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)

  1. Fare clic + Nuovo passo, scegliere Applicare a ciascuno.
  2. Specificare:
    • Seleziona un output dai passaggi precedenti (espressione): triggerOutputs()?['body/attachments']
Power Automate Applica a ogni azione con Seleziona un output dai passaggi precedenti impostato sul token Allegati, trigger dell'espressione risolta Corpo/allegati degli output mostrati nel tooltip

Passaggio 5b: Convertire in PDF (l'allegato)

  1. All'interno del ciclo fai clic Aggiungi un'azione, scegliere PDF4me: Converti in PDF.
  2. Specificare:
    • Contenuto del file (espressione): base64ToBinary(items('Apply_to_each')?['contentBytes'])
    • Nome del file (contenuto dinamico): scegli nome da Applica a ogni elemento corrente
Azione Power Automate Converti in PDF all'interno di Applica a ciascuno, Contenuto file impostato su elementi base64ToBinary Apply_to_each contentBytes, Nome file impostato sul token del nome dall'allegato corrente, editor di espressioni aperto che mostra elementi base64ToBinary Apply_to_each contentBytes

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

Suggerimento nel campo Nome file di Power Automate Converti in PDF che mostra gli elementi dell'espressione risolta Nome Apply_to_each, token del nome da Applica a ogni allegato corrente

Passaggio 5c: Aggiungere alla variabile array (l'allegato convertito)

  1. Di seguito Converti in PDF all'interno dello stesso ciclo, Aggiungi un'azione, scegliere Aggiungi alla variabile array.
  2. Specificare:
    • Nome: email
    • Valore (espressione): base64ToBinary(body('Convert_to_PDF')?['$content'])
Power Automate Aggiungi alla variabile array all'interno Applica a ciascuno, Nome email, Valore impostato su base64ToBinary corpo Converti_in_PDF contenuto in dollari mostrato nell'editor di espressioni

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.

  1. Sotto "Applica a ogni ciclo" fai clic + Nuovo passo, ricerca PDF4me, scegliere Unire più file PDF in un unico file PDF.
  2. Specificare:
    • Corpo/docContenuto: scegli il email token variabile
    • Nome del file di output: Email Attachment Merge Output.pdf

Configurazione dell'azione di unione

Power Automate PDF4me Unisci più file PDF in un unico file PDF azione con Body/docContent impostato sulla variabile email e nome file di output allegato email Unisci Output.pdf, pannello contenuto dinamico aperto che mostra variabili email, Applica a ciascuno, elemento corrente, quando arriva una nuova email V3, body/sensitivityLabelInfo, allegati

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.

  1. Fare clic + Nuovo passo, scegliere Dropbox: crea file.
  2. 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

espressione del nome del file

Power Automate Dropbox Crea azione file Percorso cartella /blog data/merge blog template/output, Nome file espressione concat merge trattino virgola formatDateTime utcNow virgola yyyyMMdd trattino HHmmss virgola punto pdf mostrato nell'editor di espressioni, Contenuto file impostato su Unisci più token

Azione finale con mappatura del contenuto del file

Azione Power Automate Dropbox Crea file con percorso cartella /blog data/merge blog template/output, espressione concat nome file, token contenuto file da azione Unisci più file PDF in un singolo file PDF, tooltip che si risolve in body Merge_multiple_PDF_files_into_a_single_PDF_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

  1. Salva il flusso in alto a destra.
  2. Invia un messaggio con uno o più allegati all'indirizzo monitorato (la procedura guidata utilizzata [email protected]).
  3. 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.
  4. Apri Dropbox all'indirizzo /blog data/merge blog template/output/Un file denominato merge-YYYYMMDD-HHmmss.pdf è lì.
  5. 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

Filtra gli allegati per tipo
Se desideri solo PDF e documenti Office nell'unione, racchiudi Converti in PDF in un Condizione test endsWith(toLower(items('Apply_to_each')?['name']), '.pdf') o simili. Salta le firme e gli allegati di immagini in linea in modo pulito.
Inserisci i metadati nella pagina 1
Prima del passaggio 3, crea un preambolo HTML con Comporre: mittente, oggetto, data di ricezione, quindi concatenalo a corpo/corpoLa pagina 1 del PDF consolidato ora contiene un'intestazione che è possibile utilizzare in seguito con il metodo grep.
Segnale digitale prima dell'archiviazione
Inserisci PDF4me Firma digitale in PDF tra il passaggio 6 e il passaggio 7. Il PDF archiviato è controfirmato con il tuo certificato X.509, una traccia di controllo istantanea di chi ha archiviato cosa e quando.
PDF/A per la conservazione a lungo termine
Aggiungi PDF4me Crea PDF/A con conformità 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

Errori nell'azione di unione con "contenuto non valido"

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.

La pagina 1 è vuota o mancante

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.

Applicare a ogni esecuzione zero volte

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.

Gli allegati vengono emessi nell'ordine sbagliato

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.