Trasforma ogni email in arrivo in un archivio PDF pronto per la verifica con Power Automate: un flusso di lavoro di Outlook in 7 fasi

Archivio da email a PDF È un flusso di Power Automate che si attiva per ogni nuova email in arrivo da Outlook, converte il corpo del messaggio e ogni allegato in PDF, li unisce in un unico PDF consolidato con data e ora e salva il risultato su Dropbox per la conservazione a lungo termine ai fini della conformità. Sette azioni. Nessun codice. Un file per email, prima il corpo e poi gli allegati in ordine. L'output è denominato merge-YYYYMMDD-HHmmss.pdf quindi ogni voce dell'archivio è ordinabile in modo univoco.
I team di audit, i responsabili della gestione dei documenti e i responsabili della conformità hanno bisogno di prove via e-mail conservate in un formato a prova di manomissione e ricercabile che resista alle politiche di conservazione di Exchange. L'esportazione nativa di Outlook è manuale, file per file, e perde gli allegati in file separati. Questa procedura guidata crea l'alternativa senza codice: ogni e-mail ricevuta diventa automaticamente un singolo PDF consolidato, con l'originale .eml e gli allegati sono ancora in Outlook per motivi di conservazione legale, ma il PDF di archivio costituisce la copia ufficiale dei documenti.
Il trigger di Outlook si attiva per ogni email in arrivo a un indirizzo monitorato. Una variabile array denominata e-mail si apre. PDF4me Converti in PDF trasforma prima il corpo HTML in PDF (diventa pagina 1). Applicare a ciascuno Analizza ogni allegato, lo converte in PDF utilizzando i renderer di Aspose Words/Cells/Slides e lo aggiunge in sequenza. PDF4me Unire più file PDF consuma l'intero array ed emette un PDF consolidato. Dropbox lo scrive come merge-20260611-103323.pdfPrima il corpo del testo, poi gli allegati in ordine, con data e ora, qualità da archivio.
Domande e risposte basate sul "perché"
Perché convertire in PDF per l'archiviazione invece di salvare il file .eml? I file EML richiedono Outlook o un lettore compatibile per essere aperti, incorporano allegati in un flusso binario che i revisori non possono analizzare e dipendono dalla formattazione del client di posta del mittente. Un singolo file PDF consolidato è universalmente leggibile, compatibile con l'OCR, include gli allegati e corrisponde al formato di conservazione richiesto dalla maggior parte delle verifiche di discovery legale e SOX/GDPR.
Perché utilizzare un'unica variabile array per il corpo del corpo e gli allegati? L'azione "Unisci più file PDF" richiede una singola raccolta ordinata. Inizializzandola una sola volta, inviando il corpo del documento al passaggio 4, inviando ciascun allegato convertito al passaggio 5, l'array avrà esattamente l'ordine dei documenti richiesto dall'archivio (prima il corpo del documento, poi gli allegati nell'ordine di invio). Due array separati richiederebbero un'azione "Componi" in un secondo momento solo per concatenarli.
Perché base64ToBinary ad ogni spinta? PDF4me Convert to PDF restituisce il suo output come stringa base64 su $contentGli allegati di Outlook arrivano come base64 su contentBytes. Unire più file PDF richiede buffer binari, non stringhe base64. 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? Due email inviate allo stesso indirizzo nello stesso minuto entrerebbero in conflitto a causa dello stesso nome file. concat('merge-', formatDateTime(utcNow(), 'yyyyMMdd-HHmmss'), '.pdf') produce nomi UTC di seconda precisione come merge-20260611-103323.pdfOrdinabile lessicograficamente, immediatamente leggibile e unico per sua stessa natura. I revisori dei conti adorano questo formato.
Cosa riceverai
Ingresso: Qualsiasi email in arrivo all'indirizzo Outlook 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 unico archivio consolidato in PDF 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

La cartella di archivio dopo due esecuzioni

Pagina 1 di un file PDF di archivio unito

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 trigger V3 "Quando arriva una nuova email" e per leggere i byte di contenuto dell'allegato. Funziona con qualsiasi casella di posta con cui il connettore può autenticarsi.
- Dropbox (oppure SharePoint, OneDrive, Google Drive). Per la destinazione dell'archivio.
- Un'email di prova con allegatiLa procedura guidata utilizza due file DOCX di esempio. 3Page.docx E Docx_2Pagine.docx.
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. PDF4me si inserisce nel flusso in tre fasi: converti il corpo del documento, converti ogni allegato e unisci tutto.
Campi allegati di Outlook (riferimento)
La prospettiva Quando arriva una nuova email V3 Il trigger espone i seguenti campi allegati che vengono mappati nel convertitore:
| Campo | Tipo | Espressione sorgente | Cosa trasporta |
|---|---|---|---|
name | corda | items('Apply_to_each')?['name'] | Nome del file originale inclusa l'estensione (Invoice.docx) |
contentBytes | stringa base64 | items('Apply_to_each')?['contentBytes'] | Contenuto binario dell'allegato, codificato in base64 |
contentType | corda | items('Apply_to_each')?['contentType'] | tipo MIME (application/vnd.openxmlformats-officedocument.wordprocessingml.document) |
size | intero | items('Apply_to_each')?['size'] | Byte, utili per filtrare gli allegati di grandi dimensioni |
isInline | booleano | items('Apply_to_each')?['isInline'] | Vero per le immagini inline incorporate nel corpo; solitamente filtrate |
PDF4me Convert to PDF legge l'estensione del file name per scegliere il renderer giusto (.docx → Asporre parole, .xlsx → Asporre le cellule, .pptx → Aspose gestisce in modo nativo presentazioni, immagini e PDF.
Passaggio 1: Come si monitora la posta in arrivo nella casella di posta di Outlook?
Flusso finora: Solo attivazione.
- In Power Automate clic Creare, scegliere Flusso di nuvole automatizzato.
- Assegna un nome al flusso (ad esempio
Email Archive to 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 clicca 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 automatica. Combina con un A filtra su un alias di archivio dedicato (ad esempio [email protected]) per un indirizzo di posta pulito che riceve solo la posta che si desidera effettivamente archiviare.
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: Come fa PDF4me a convertire il corpo dell'email in PDF?
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 viene eseguita con una sola chiamata di azione.
- 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 riceverà in seguito un nome univoco.
- 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: Come si fa a scorrere tutti gli allegati e a convertirli uno per uno?
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. PDF4me legge l'estensione per scegliere il renderer corretto.

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: Unire più file PDF in un unico archivio 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: Perché un nome file con timestamp per l'archivio?
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 con timestamp UTC, in modo che ogni voce dell'archivio sia un file nuovo e ordinabile. Due email inviate allo stesso indirizzo nello stesso secondo sono un evento talmente raro che questo sistema garantisce un'univocità efficace senza la necessità di incorporare gli ID dei messaggi.
- 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

Suggerimento per chi gestisce un elevato volume di email in arrivo. Per le caselle di posta che ricevono più di 10 email al minuto, aggiungi un hash breve dell'ID del messaggio Internet per garantirne l'univocità: concat('merge-', formatDateTime(utcNow(), 'yyyyMMdd-HHmmss'), '-', substring(triggerOutputs()?['body/internetMessageId'], 0, 8), '.pdf')La traccia di controllo rimane leggibile, le collisioni sono impossibili.
Esegui il flusso e verifica
- Salva il flusso in alto a destra.
- Invia un messaggio di posta elettronica con uno o più allegati all'indirizzo monitorato.
- Aprire Cronologia delle esecuzioniIl grilletto dovrebbe scattare entro pochi 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? Un sistema automatizzato per l'archiviazione delle email. Ogni messaggio con allegati viene trasformato in un unico PDF consolidato, con il corpo del messaggio e gli allegati in ordine, con data e ora per evitare sovrapposizioni, e viene salvato in una cartella condivisa consultabile dal team di gestione dei documenti o dai revisori. La stessa procedura funziona con due o venti allegati senza alcuna modifica.
Varianti comuni che puoi aggiungere senza dover ricostruire
endsWith(toLower(items('Apply_to_each')?['name']), '.pdf')Salta le firme email e gli allegati immagine incorporati.PDF/A-2b Dopo la fusione, il PDF archiviato è conforme alla norma ISO 19005, idoneo per la conservazione legale e la presentazione alle autorità di regolamentazione.Archivio email: PDF vs EML
| Aspetto | PDF consolidato (questo flusso) | Esportazione EML non elaborata |
|---|---|---|
| Leggibile da tutti | Sì, qualsiasi lettore PDF. | No, è necessario Outlook o un client compatibile. |
| Cerca per contenuto | Sì, compatibile con OCR | Limitato, solo corpo |
| Include allegati | Sì, in linea come pagine | Sì, come flusso binario |
| Corrispondenza del formato di audit | SOX, GDPR, HIPAA, FINRA accettano | Spesso rifiutato |
| A prova di manomissione | Sì, se la segnaletica digitale è stata aggiunta | Facilmente modificabile con qualsiasi editor. |
| Dimensione del file | Più grande (tutte le pagine renderizzate) | Più piccolo (nessun rendering) |
| Pipeline di fidelizzazione | Un PDF per email, facile da concatenare | EML richiede un formato contenitore |
Domande frequenti
Come posso attivare questo flusso su una casella di posta condivisa anziché su una casella di posta personale?
Sostituire il Quando arriva una nuova email (V3) grilletto con Quando arriva una nuova email in una casella di posta condivisa (V2). Passa l'indirizzo della casella di posta come Indirizzo originale della casella postale campo. Il resto del flusso rimane identico, ogni riferimento di allegato ed espressione del corpo si risolve allo stesso modo.
Cosa succede se un'email non ha allegati?
Il grilletto Solo con allegati Sì Il filtro impedisce l'esecuzione del flusso sulle email contenenti solo il corpo del messaggio. Se desideri archiviare anche le email contenenti solo il corpo del messaggio, imposta il filtro su No e racchiudi il ciclo Applica a ogni messaggio in una Condizione: eseguilo solo quando length(triggerOutputs()?['body/attachments']) è maggiore di zero. L'azione di unione funzionerà comunque anche con un solo PDF del corpo del documento nell'array, producendo un archivio a pagina singola.
Come faccio a includere il mittente, l'oggetto e la data di ricezione nella pagina 1 dell'archivio?
Prima del passaggio 3, aggiungi un Comporre azione con preambolo HTML:
<h2>From: @{triggerOutputs()?['body/from']}</h2>
<h2>Subject: @{triggerOutputs()?['body/subject']}</h2>
<p>Received: @{triggerOutputs()?['body/receivedDateTime']}</p>
<hr>
@{triggerOutputs()?['body/body']}
Quindi, nella fase 3, imposta il contenuto del file sull'output di composizione. La pagina 1 ora contiene metadati di intestazione ricercabili.
Funzionerà con le email in formato HTML contenenti immagini incorporate?
Sì. PDF4me Convert to PDF renderizza HTML con inline <img src="cid:..."> riferimenti e immagini base64 incorporate. Outlook body/body include l'intero codice HTML con contenuto incorporato, in modo che il PDF generato preservi la fedeltà visiva di ciò che il destinatario ha visto.
Quanto tempo impiega il flusso a scorrere?
Circa 10-15 secondi per allegato su un DOCX di una pagina, più 5-10 secondi per l'attivazione e il caricamento finale. Una tipica email con 2 allegati viene completata in 35-45 secondi dall'inizio alla fine. L'opzione "Applica a ciascuno" di Power Automate viene eseguita in sequenza per impostazione predefinita per un output ordinato; se l'ordine non è importante e hai bisogno di velocità, imposta Controllo della concorrenza a 20 nelle impostazioni del ciclo.
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 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.
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'ordine dell'array.
La risoluzione del timestamp è di un secondo. Per le caselle di posta con un elevato volume di messaggi, aggiungere l'hash dell'ID del messaggio Internet: concat('merge-', formatDateTime(utcNow(), 'yyyyMMdd-HHmmss'), '-', substring(triggerOutputs()?['body/internetMessageId'], 0, 8), '.pdf').
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". Inviane una e ogni messaggio in entrata diventerà automaticamente una voce d'archivio ricercabile, ordinabile e pronta per la verifica.