Convertissez le corps de l'e-mail et toutes ses pièces jointes en un seul PDF consolidé avec Power Automate : un flux de travail Outlook + PDF4me en 7 étapes

Le plus pénible dans les flux de travail pilotés par e-mail, ce n'est pas l'e-mail lui-même, c'est… tout ce qui va avecLe corps du message contient le contexte (qui l'a envoyé, pourquoi, que faire), les pièces jointes contiennent les documents (la facture, le formulaire, le contrat signé), et les stocker séparément signifie que vous n'aurez besoin que de trois clics pour reconstituer le message ultérieurement. Ce guide vous explique précisément comment procéder. Power Automate avec PDF4me Convertir en PDF, PDF4me Fusionner plusieurs fichiers PDF, Perspectives, Dropboxet une seule action « Appliquer à chaque boucle ». Sept actions de flux. Un e-mail entrant est réceptionné. Un PDF consolidé est envoyé, le corps du message puis les pièces jointes une par une, horodatés et automatiquement archivés.
Perspectives Lorsqu'un nouvel e-mail arrive (V3) Le déclencheur s'active dès qu'un message arrive à destination. [email protected]. Une variable de type tableau nommée e-mail s'ouvre. PDF4me Convertir en PDF transforme d'abord le corps HTML en PDF, puis le corps converti est ajouté au tableau en tant que page 1. Appliquer à chaque parcourt chaque pièce jointe (deux fichiers DOCX dans cette exécution : 3Page.docx, Docx_2Pages.docxPDF4me convertit chaque fichier en PDF et les ajoute tour à tour. Fusionner plusieurs fichiers PDF Consomme l'ensemble du tableau et génère un seul PDF consolidé. Dropbox Créer un fichier réécrit-il comme fusion-20260611-103323.pdfUn nom horodaté qui ne se chevauche jamais. Le corps du document en premier, les pièces jointes dans l'ordre, un seul PDF, un seul dossier, prêt pour l'audit.
Questions et réponses basées sur le pourquoi
Pourquoi convertir d'abord le corps du texte en PDF ? Le corps du message en constitue le contexte : qui l’a envoyé, pourquoi, que faire. Votre futur vous, en lisant le PDF consolidé, voudra que la première page plante le décor avant l’arrivée des pièces jointes. Conversion triggerOutputs()?['body/body'] (le corps HTML) dans un PDF en premier signifie que l'action de fusion considère le message lui-même comme le document principal, et non comme un fichier texte séparé.
Pourquoi une seule variable de type tableau pour le corps du message et les pièces jointes ? L'action de fusion requiert une collection unique et ordonnée. Initialisez-la une seule fois, ajoutez le corps du message à l'étape 4, puis chaque pièce jointe convertie à l'étape 5 ; le tableau obtenu correspondra ainsi à l'ordre des documents souhaité. Deux tableaux distincts obligeraient à une action de composition ultérieure pour les concaténer, ce qui représente un travail supplémentaire inutile pour un résultat identique.
Pourquoi base64ToBinary à chaque poussée ? PDF4me Convert to PDF renvoie sa sortie sous forme de chaîne base64 enveloppée dans $contentLes pièces jointes Outlook arrivent au format base64 sur contenuBytesPDF4me, pour fusionner plusieurs fichiers PDF, nécessite des tampons binaires. base64ToBinary(...) L'appel fait transiter les deux sources, mais pointe vers des noms de propriétés différents. Ignorer la conversion et l'action de fusion génère des erreurs de « contenu invalide ».
Pourquoi un nom de sortie horodaté ? Deux courriels provenant du même expéditeur et envoyés à une heure d'intervalle entreraient en conflit si le nom du fichier était identique. concat('merge-', formatDateTime(utcNow(), 'yyyyMMdd-HHmmss'), '.pdf') produit des noms comme fusion-20260611-103323.pdf, triable lexicographiquement, unique à la seconde près et instantanément lisible comme un horodatage UTC.
Ce que vous obtiendrez
Saisir: Tout courriel entrant à l'adresse surveillée (ici, [email protected]) avec une ou plusieurs pièces jointes. Ce guide utilise un court corps de message (« Bonjour, j'espère que vous allez bien... ») et deux pièces jointes DOCX (3Page.docx, Docx_2Pages.docx). Sortir: Un seul PDF consolidé déposé dans /blog data/merge blog template/output/, nommé merge-YYYYMMDD-HHmmss.pdfLa page 1 constitue le corps du texte. À partir de la page 2, chaque pièce jointe est présentée dans l'ordre, rendue à l'aide d'Aspose Words.
L'e-mail entrant

Le flux surveille la boîte de réception Outlook à [email protected]. Dès que Gmail transfère le message ou que cette adresse le reçoit directement, le déclencheur s'active.
Le dossier Dropbox de sortie après deux exécutions

Page 1 du PDF fusionné

La page 1 correspond au corps de l'e-mail converti. À partir de la page 2, vous trouverez la première pièce jointe (3Page.docx). La deuxième pièce jointe (Docx_2Pages.docx) suit ensuite. Un PDF, message complet reconstitué.
Ce dont vous avez besoin
- Power Automate. Ouvrir Power Automate. Tout forfait incluant des connecteurs premium (PDF4me Connect est premium).
- Clé API PDF4me. Obtenez votre clé APIConnectez-le la première fois que vous ajoutez une action PDF4me.
- Office 365 Outlook.Pour le Lorsqu'un nouvel e-mail arrive (V3) déclencher et lire la pièce jointe
contenuBytesToute boîte de réception pour laquelle le connecteur peut s'authentifier fonctionne. - Dropbox (ou SharePoint, OneDrive, Google Drive). Pour le PDF final consolidé.
- Un courriel avec des pièces jointes. La démonstration utilise deux exemples DOCX. 3Page.docx et Docx_2Pages.docxEnvoyez-les par e-mail à l'adresse surveillée afin de reproduire chaque capture d'écran.
Commencez par récupérer les échantillons et le résultat attendu. Téléchargez les deux fichiers DOCX, joignez-les à un courriel rapide à l'adresse surveillée, puis publiez le flux. Votre première exécution devrait produire un fusion-AAAAMMJJ-HHmmss.pdf qui reproduit exactement l'échantillon lié (seul l'horodatage diffère).
Aperçu du flux
- Outlook : Lorsqu’un nouveau courriel arrive (V3) (déclenchement).
- Variable d'initialisation nommé
email(Tableau). - PDF4me : Convertir en PDF (Corps)Lit le corps HTML et renvoie un PDF.
- Ajouter à la variable de tableau avec
base64ToBinarysur la carrosserie transformée. - Appliquer à chaque sur
triggerOutputs()?['body/attachments']:- PDF4me : Convertir en PDF la pièce jointe.
- Ajouter à la variable de tableau avec
base64ToBinarysur le PDF converti.
- PDF4me : Fusionner plusieurs fichiers PDF en un seul fichier PDFTableau en entrée, un PDF en sortie.
- Dropbox : Créer un fichierL'expression Nom de fichier horodatée en UTC.
Aperçu complet du flux

Sept actions. L'option « Appliquer à chaque carte » affiche « 1 sur 2 » car l'e-mail de test contenait deux pièces jointes. PDF4me intervient trois fois dans le flux : conversion du corps du texte, conversion des pièces jointes, fusion de tous les éléments.
Étape 1 : Outlook : Lorsqu’un nouveau courriel arrive (V3)
Flux jusqu'à présent : Déclencheur uniquement.
- Dans Power Automate cliquez Créer, choisir Flux cloud automatisé.
- Nommez le flux (par exemple,
Email to Consolidated PDF), prendre Office 365 Outlook : Lorsqu’un nouveau courriel arrive (V3) comme déclencheur, cliquez Créer. - Connecter Votre boîte aux lettres Office 365.
- Développer Paramètres avancés et Afficher tout pour afficher les options de filtrage.
- Configure:
- À:
[email protected](Filtrer pour que seul le courrier adressé à cette adresse déclenche le flux) - Joindre les pièces jointes:
Yes - Uniquement avec pièces jointes:
Yes
- À:
Configuration du déclencheur

Conseil. Uniquement avec pièces jointes Oui c'est ce qui empêche le flux de se déclencher à chaque notification interne, invitation de calendrier ou réponse. À combiner avec un À filtre sur un alias dédié (par exemple, [email protected]) pour une adresse de réception propre qui ne reçoit que le courrier que vous souhaitez réellement regrouper.
Étape 2 : Initialiser la variable email
Flux jusqu'à présent : Déclencheur plus initialisation de la variable.
Ouvrez un tableau vide pour collecter le PDF principal et toutes les pièces jointes au format PDF.
- Cliquez + Nouvelle étape, prendre Variable d'initialisation.
- Configure:
- Nom:
email - Taper:
Array - Valeur: laisser vide
- Nom:
Initialiser la configuration des variables

Étape 3 : PDF4me : Convertir en PDF (Corps)
Flux jusqu'à présent : Déclencheur + Initialisation de variable + Conversion en corps PDF.
Le déclencheur Outlook émet le corps du message au format HTML sur body/bodyPDF4me Convert to PDF lit directement le HTML, la conversion entière se fait donc en une seule action.
- Cliquez + Nouvelle étape, recherche PDF4me, prendre Convertir en PDF.
- Rebaptiser l'action à Convertir en corps de PDF L'action « Convertir en PDF » de l'étape 5 pourra donc avoir un nom plus clair ultérieurement.
- Connecter PDF4me Connectez-vous avec votre clé API (première fois uniquement).
- Configure:
- Contenu du fichier (expression, clic)
fx):triggerOutputs()?['body/body'] - Nom de fichier:
email-body.html
- Contenu du fichier (expression, clic)
Convertir en configuration du corps PDF

Le .html L'extension du nom de fichier indique à PDF4me quel moteur de rendu utiliser. Envoyer .docx, .xlsx, .png, ou .jpg La même action permet de les gérer tous, tout aussi facilement.
Étape 4 : Ajouter au tableau de variables (corps de l’e-mail)
Flux jusqu'à présent : Déclencheur plus Initialiser la variable plus Convertir en corps PDF plus Ajouter (corps de l'e-mail).
Déplacez le PDF converti du corps sur le email tableau comme page 1.
- Cliquez + Nouvelle étape, prendre Ajouter à la variable de tableau.
- Rebaptiser l'action à Ajouter à la variable de tableau (corps de l'e-mail) pour plus de clarté.
- Configure:
- Nom:
email - Valeur (expression):
base64ToBinary(body('Convert_to_PDF_Body')?['$content'])
- Nom:
Ajouter la configuration du corps de l'e-mail

Étape 5 : Appliquer à chaque pièce jointe, convertir et ajouter
Flux jusqu'à présent : Déclencher plus Initialiser la variable plus Convertir en corps PDF plus Ajouter (corps de l'e-mail) plus Appliquer à chaque.
Parcourez chaque pièce jointe, convertissez-la en PDF et ajoutez-les tour à tour afin que la fusion finale respecte l'ordre des pièces jointes.
Étape 5a : Appliquer à chaque (choisir la source)
- Cliquez + Nouvelle étape, prendre Appliquer à chaque.
- Configure:
- Sélectionnez une sortie parmi les étapes précédentes (expression):
triggerOutputs()?['body/attachments']
- Sélectionnez une sortie parmi les étapes précédentes (expression):

Étape 5b : Convertir au format PDF (pièce jointe)
- À l'intérieur de la boucle, cliquez Ajouter une action, prendre PDF4me : Convertir en PDF.
- Configure:
- Contenu du fichier (expression):
base64ToBinary(items('Apply_to_each')?['contentBytes']) - Nom de fichier (contenu dynamique) : sélectionner nom à partir de la section « Appliquer à chaque élément actuel »
- Contenu du fichier (expression):

Le nom Le jeton de contenu dynamique est résolu lors de l'exécution en items('Apply_to_each')?['name'], donc chaque pièce jointe est convertie en utilisant son nom de fichier d'origine (qui contient l'extension source et indique à PDF4me quel moteur de rendu utiliser).

Étape 5c : Ajouter à la variable de tableau (la pièce jointe convertie)
- Ci-dessous, convertir en PDF à l'intérieur de la même boucle, Ajouter une action, prendre Ajouter à la variable de tableau.
- Configure:
- Nom:
email - Valeur (expression):
base64ToBinary(body('Convert_to_PDF')?['$content'])
- Nom:

Les deux noms de propriété sont importants. Les octets de la pièce jointe Outlook sont disponibles sur contenuBytesPDF4me Convert to PDF output est disponible sur $contentLes deux expressions sont au format base64. Veillez à bien respecter les noms lorsque vous les collez, et la boucle fonctionnera sans problème.
Étape 6 : PDF4me : Fusionner plusieurs fichiers PDF
Flux jusqu'à présent : Déclencher plus Initialiser la variable plus Convertir en corps PDF plus Ajouter (corps) plus Appliquer à chaque plus Fusionner plusieurs PDF.
L'ensemble email Le tableau (le PDF du corps en premier, puis les PDF des pièces jointes dans l'ordre des pièces jointes) est traité par un seul appel Merge.
- Sous le bouton Appliquer à chaque boucle + Nouvelle étape, recherche PDF4me, prendre Fusionner plusieurs fichiers PDF en un seul fichier PDF.
- Configure:
- Corps/docContenu: choisissez le
emailjeton variable - Nom du fichier de sortie:
Email Attachment Merge Output.pdf
- Corps/docContenu: choisissez le
Configuration de l'action de fusion

Étape 7 : Dropbox : Créer un fichier avec un nom horodaté
Flux jusqu'à présent : Déclencher plus Initialiser la variable plus Convertir en corps PDF plus Ajouter plus Appliquer à chaque plus Fusionner plus Créer un fichier.
Enregistrez le PDF consolidé sur Dropbox avec un nom de fichier horodaté UTC afin que chaque exécution soit enregistrée comme un fichier neuf et triable.
- Cliquez + Nouvelle étape, prendre Dropbox : Créer un fichier.
- Configure:
- Chemin du dossier:
/blog data/merge blog template/output - Nom de fichier (expression, clic)
fx):concat('merge-', formatDateTime(utcNow(), 'yyyyMMdd-HHmmss'), '.pdf') - Contenu du fichier: choisissez le Contenu du fichier jeton de l'action Fusionner plusieurs PDF
- Chemin du dossier:
Expression du nom de fichier

Action finale avec le contenu du fichier mappé

Conseil. Vous souhaitez un dossier par domaine d'expéditeur ? Remplacez le chemin d'accès statique au dossier par concat('/inbox-pdfs/', split(triggerOutputs()?['body/from'], '@')[1], '/')Les fichiers PDF sont automatiquement acheminés vers des sous-dossiers comme /inbox-pdfs/votreentreprise.com/ en fonction du domaine de l'expéditeur.
Exécutez le flux et vérifiez
- Sauvegarder le flux en haut à droite.
- Envoyez un courriel avec une ou plusieurs pièces jointes à l'adresse surveillée (la procédure pas à pas utilisée).
[email protected]). - Ouvrir Historique des coursesLe déclencheur devrait s'activer en quelques secondes. Observez chaque action devenir verte : la conversion du corps en PDF prend environ 10 secondes pour un court corps HTML ; l'application à chaque élément s'exécute en parallèle par défaut et traite les deux pièces jointes en environ 22 secondes ; la fusion de plusieurs PDF prend environ 11 secondes.
- Ouvrez Dropbox à
/blog data/merge blog template/output/Un fichier nommémerge-YYYYMMDD-HHmmss.pdfy a-t-il. - Ouvrez le PDF. La page 1 contient le texte principal. Les pages suivantes contiennent chaque pièce jointe, affichée intégralement et dans l'ordre.
Qu'avez-vous construit concrètement ? Un processus d'archivage automatique des e-mails. Chaque message avec pièces jointes est converti en un seul PDF consolidé : le corps du message en premier, puis les pièces jointes dans l'ordre, horodatés pour éviter les conflits, puis déposés dans un dossier partagé accessible à votre équipe ou à vos auditeurs. Ce processus fonctionne aussi bien avec deux qu'avec vingt pièces jointes. Il est compatible avec Make (déclencheur Outlook, itération sur les pièces jointes et fusion PDF4me) et Zapier (envoi d'e-mails via Zapier ou déclencheur Outlook, boucle et fusion PDF4me).
Variantes courantes que vous pouvez ajouter sans reconstruction
endsWith(toLower(items('Apply_to_each')?['name']), '.pdf') ou similaire. Ignore proprement les signatures et les pièces jointes d'images intégrées.corps/corpsLa première page du PDF consolidé contient désormais un en-tête sur lequel vous pourrez effectuer une recherche ultérieurement.PDF/A-2b Après la fusion, le PDF consolidé archivé est désormais conforme à la norme ISO 19005 et peut être soumis à une obligation de conservation légale ou à une autorité de réglementation.Dépannage
L'un des éléments Ajouter au tableau Valeur les expressions ne sont pas enveloppées dans base64ToBinary(...)Chaque envoi (corps et pièces jointes) nécessite une conversion. Rouvrez les deux actions Ajouter, passez à l'éditeur d'expressions et vérifiez que les expressions sont correctes. base64ToBinary(body('Convert_to_PDF_Body')?['$content']) et base64ToBinary(body('Convert_to_PDF')?['$content']) textuellement.
L'action « Convertir en corps PDF » n'a pas reçu de corps HTML valide. Vérifiez le déclencheur. Joindre les pièces jointes est resté Oui (sans cela, le corps arrive parfois vide) et cela Contenu du fichier se résout à triggerOutputs()?['body/body'], pas aperçu du corps.
Le déclencheur s'est activé sur un courriel sans pièces jointes parce que Uniquement avec pièces jointes est défini sur Non. Soit vous le modifiez en Oui, soit vous intégrez l'application à chaque dans une condition qui ne s'exécute que lorsque longueur(triggerOutputs()?['corps/pièces jointes']) est supérieur à zéro.
La valeur par défaut Appliquer à chaque Les opérations s'exécutent en parallèle, ce qui peut perturber l'ordre d'ajout. Ouvrez la boucle. Paramètres et ensemble Contrôle de la concurrence Degré de parallélisme à 1La boucle s'exécute désormais de manière séquentielle et les pièces jointes sont placées dans le tableau dans l'ordre exact où Outlook les a renvoyées.
Prochaines étapes
Le même schéma en sept étapes (déclenchement, initialisation du tableau, conversion du corps, boucle de conversion et d'ajout, fusion, puis enregistrement avec horodatage) fonctionne pour toute automatisation de type « e-mail + pièces jointes dans un PDF ». Envoyez-le une seule fois et chaque message entrant sera automatiquement archivé et classé comme entrée consultable et triable.