Zum Hauptinhalt springen

Jede eingehende E-Mail in Power Automate in ein revisionssicheres PDF-Archiv umwandeln: Ein 7-stufiger Outlook-Workflow

· 28 Minuten Lesezeit
SEO and Content Writer

E-Mail-zu-PDF-Archiv ist ein Power Automate-Flow, der bei jeder neuen eingehenden Outlook-E-Mail ausgelöst wird, den Nachrichtentext und alle Anhänge in PDFs konvertiert, diese zu einer einzigen, mit einem Zeitstempel versehenen PDF-Datei zusammenführt und das Ergebnis zur langfristigen Aufbewahrung in Dropbox speichert. Sieben Aktionen. Kein Code erforderlich. Eine Datei pro E-Mail: zuerst der Nachrichtentext, dann die Anhänge in der richtigen Reihenfolge. Die Ausgabedatei heißt merge-YYYYMMDD-HHmmss.pdf somit ist jeder Archiveintrag eindeutig sortierbar.

Auditteams, Verantwortliche für die Dokumentenverwaltung und Compliance-Beauftragte benötigen E-Mail-Beweise in einem manipulationssicheren, durchsuchbaren Format, das den Aufbewahrungsrichtlinien von Exchange standhält. Der standardmäßige Outlook-Export erfolgt manuell, Datei für Datei, und Anhänge werden in separate Dateien ausgelagert. Diese Anleitung zeigt die Alternative ohne Programmierung: Jede eingehende E-Mail wird automatisch in eine einzige, konsolidierte PDF-Datei umgewandelt, die das Original enthält. .eml und Anhänge, die aufgrund der rechtlichen Aufbewahrungspflicht noch in Outlook gespeichert sind, aber die Archiv-PDF-Datei als maßgebliche Kopie der Aufzeichnungen.

Der Fluss im Überblick
1. When a new email arrives (V3)
Outlook trigger filtered by To address. Include Attachments Yes, Only with Attachments Yes.
2. Initialize variable
Name email, Type Array. Holds every PDF binary in order.
3. Convert to PDF Body
PDF4me action. Reads triggerOutputs body/body (the HTML body), returns the body as a PDF page 1.
4. Append to array (email body)
Pushes base64ToBinary on the converted body PDF onto the email array. Becomes page 1 of the final archive.
5. Apply to each attachment
Loops triggerOutputs body/attachments. Inside, Convert to PDF then Append to array with base64ToBinary on $content.
6. Merge multiple PDFs
PDF4me action. Body/docContent is 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).
Die Kurzfassung

Der Outlook-Trigger wird bei jeder eingehenden E-Mail an eine überwachte Adresse ausgelöst. Eine Array-Variable namens E-Mail öffnet sich. PDF4me In PDF konvertieren Wandelt den HTML-Body zuerst in PDF um (wird zu Seite 1). Auf jedes Element anwenden Durchläuft alle Anhänge, konvertiert jeden einzelnen mithilfe der Aspose Words/Cells/Slides-Renderer in eine PDF-Datei und fügt diese dann nacheinander an. PDF4me Mehrere PDF-Dateien zusammenführen Das gesamte Array wird verarbeitet und eine zusammengefasste PDF-Datei ausgegeben. Dropbox schreibt sie wie folgt: merge-20260611-103323.pdf. Zuerst der Hauptteil, dann die Anhänge in der richtigen Reihenfolge, mit Zeitstempel versehen, in Archivqualität.

Warum-basierte Fragen und Antworten

Warum sollte man die .eml-Datei zur Archivierung in PDF konvertieren, anstatt sie zu speichern? EML-Dateien erfordern Outlook oder einen kompatiblen Reader zum Öffnen, betten Anhänge in einen Binärdatenstrom ein, der für Prüfer nicht durchsuchbar ist, und sind von der Formatierung des E-Mail-Clients des Absenders abhängig. Eine einzelne, konsolidierte PDF-Datei ist hingegen universell lesbar, OCR-kompatibel, enthält Anhänge und entspricht dem Aufbewahrungsformat, das die meisten Prüfungen im Bereich der Rechtsermittlung und SOX/DSGVO-Prüfungen erwarten.

Warum eine einzige Array-Variable für Body und Anhänge zusammen? Die Aktion „Mehrere PDF-Dateien zusammenführen“ benötigt eine einzelne, sortierte Sammlung. Initialisieren Sie diese einmalig, fügen Sie in Schritt 4 den Dokumenttext und in Schritt 5 die konvertierten Anhänge hinzu. Das Array entspricht dann exakt der Dokumentenreihenfolge, die das Archiv benötigt (Dokumenttext zuerst, dann Anhänge in Sendereihenfolge). Zwei separate Arrays würden später eine zusätzliche Aktion „Zusammenstellen“ erfordern, nur um die Dateien zu verketten.

Warum base64ToBinary bei jedem Druckstoß? PDF4me Convert to PDF gibt seine Ausgabe als Base64-Zeichenkette zurück. $contentOutlook-Anhänge werden als Base64-kodierte Dateien empfangen. contentBytesZum Zusammenführen mehrerer PDF-Dateien werden Binärpuffer und keine Base64-Strings benötigt. base64ToBinary(...) Die Verbindung zwischen den beiden Datenquellen wird hergestellt, wobei lediglich auf unterschiedliche Eigenschaftsnamen verwiesen wird. Die Konvertierung wird übersprungen, und die Zusammenführungsaktion führt zu Fehlern mit der Meldung „Ungültiger Inhalt“.

Warum ein mit einem Zeitstempel versehener Ausgabename? Zwei E-Mails, die innerhalb derselben Minute an dieselbe Adresse gesendet werden, würden aufgrund des gleichen Dateinamens kollidieren. concat('merge-', formatDateTime(utcNow(), 'yyyyMMdd-HHmmss'), '.pdf') erzeugt UTC-Namen zweiter Genauigkeit wie merge-20260611-103323.pdfLexikografisch sortierbar, sofort lesbar und durch seine Struktur einzigartig. Wirtschaftsprüfer lieben dieses Format.


Was Sie erhalten

Eingang: Alle eingehenden E-Mails an die überwachte Outlook-Adresse (hier [email protected]) mit einem oder mehreren Anhängen. Diese Anleitung verwendet einen kurzen Nachrichtentext („Hallo, ich hoffe, es geht Ihnen gut…“) und zwei DOCX-Anhänge (3Page.docx, Docx_2Pages.docx). Ausgabe: Ein einzelnes konsolidiertes Archiv-PDF in /blog data/merge blog template/output/, benannt merge-YYYYMMDD-HHmmss.pdfSeite 1 ist der Hauptteil. Ab Seite 2 sind die einzelnen Anhänge in der Reihenfolge ihrer Entstehung in Aspose Words dargestellt.

Die eingehende E-Mail

Die Gmail-E-Mail zeigt eine Nachricht an Test. Inhalt: Hallo, ich hoffe, es geht Ihnen gut. Ich schreibe Ihnen, um Sie über den Fortschritt des aktuellen Projekts zu informieren. Einige zugehörige Dateien sind beigefügt. Mit freundlichen Grüßen, Test Dev. Zwei Anhänge werden als Word-Dokumentminiaturen angezeigt: 3Page.docx und Docx_2Pages.docx. Der Hinweis „Von Gmail gescannt“ ist sichtbar.

Der Archivordner nach zwei Durchläufen

Die Dropbox-Archivordner enthalten die Dateien merge-20260611-103323.pdf (165,43 KB) und merge-20260611-102949.pdf (171,37 KB), jeweils benannt nach dem UTC-Zeitstempel des zugehörigen Datenflusses und lexikografisch sortierbar nach Sendezeit.

Seite 1 eines zusammengeführten Archiv-PDFs

Die Vorschau von merge-20260611-103323.pdf zeigt zwei Seiten nebeneinander. Die linke Seite enthält den konvertierten E-Mail-Text. Hallo, ich hoffe, es geht Ihnen gut. Ich schreibe Ihnen, um Sie über den Fortschritt des aktuellen Projekts zu informieren. Einige zugehörige Dateien sind ebenfalls beigefügt. Mit freundlichen Grüßen, Test Dev. Die rechte Seite ist die erste Seite von 3Page.docx mit der Bezeichnung „Seite 1“.

Was Sie benötigen

  • Power AutomateDie Power Automate öffnenJeder Tarif mit Premium-Konnektoren (PDF4me Connect ist ein Premium-Tarif).
  • PDF4me API-SchlüsselDie Holen Sie sich Ihren API-SchlüsselVerbinden Sie es beim ersten Hinzufügen einer PDF4me-Aktion.
  • Office 365 OutlookFür den Trigger „Bei Eingang einer neuen E-Mail“ (V3) und zum Lesen der Inhaltsbytes von Anhängen. Funktioniert mit jedem Posteingang, gegen den der Connector authentifizieren kann.
  • Dropbox (oder SharePoint, OneDrive, Google Drive). Für das Archivierungsziel.
  • Eine Test-E-Mail mit AnhängenDie Schritt-für-Schritt-Anleitung verwendet zwei DOCX-Beispiele. 3Page.docx Und Docx_2Pages.docxDie

Zuerst die Beispiele und die erwartete Ausgabe erfassen. Laden Sie beide DOCX-Dateien herunter, hängen Sie sie an eine kurze E-Mail an Ihre überwachte E-Mail-Adresse an und veröffentlichen Sie anschließend den Workflow. Beim ersten Durchlauf sollte Folgendes erzeugt werden: merge-YYYYMMDD-HHmmss.pdf das die verlinkte Probe exakt widerspiegelt (nur der Zeitstempel ist unterschiedlich).


Der Flow auf einen Blick

  1. Outlook: Wenn eine neue E-Mail eingeht (V3) (auslösen).
  2. Variable initialisieren benannt email (Array).
  3. PDF4me: In PDF konvertieren (Textkörper)Liest den HTML-Body und gibt ein PDF zurück.
  4. An Array-Variable anhängen mit base64ToBinary auf dem umgebauten Aufbau.
  5. Auf jedes Element anwenden An triggerOutputs()?['body/attachments']:
    • PDF4me: In PDF konvertieren die Anlage.
    • An Array-Variable anhängen mit base64ToBinary auf der konvertierten PDF-Datei.
  6. PDF4me: Mehrere PDF-Dateien zu einer einzigen PDF-Datei zusammenführenEingabe: Array, Ausgabe: eine PDF-Datei.
  7. Dropbox: Datei erstellenDer Dateiname-Ausdruck versieht die Datei mit einem UTC-Zeitstempel.

Vollständige Ablaufübersicht

Power Automate-Flow-Canvas mit sieben Aktionen (von oben nach unten): Bei Eingang einer neuen E-Mail (V3), Variable initialisieren, E-Mail-Text in PDF konvertieren, E-Mail-Text an Array-Variable anhängen, auf alle Elemente mit „In PDF konvertieren“ und „An Array-Variable anhängen“ anwenden, mehrere PDF-Dateien zu einer einzigen PDF-Datei zusammenführen, Datei erstellen

Sieben Aktionen. PDF4me ist dreimal im Workflow beteiligt: Konvertierung des Dokumentkörpers, Konvertierung der einzelnen Anhänge, Zusammenführung aller Dateien.

Outlook-Anhangsfelder (Referenz)

Der Ausblick Wenn eine neue E-Mail eintrifft V3 Der Trigger stellt diese Anhangsfelder bereit, die Sie dem Konverter zuordnen:

FeldTypQuellenausdruckWas es mit sich trägt
nameZeichenketteitems('Apply_to_each')?['name']Originaler Dateiname einschließlich Erweiterung (Invoice.docx)
contentBytesBase64-Zeichenketteitems('Apply_to_each')?['contentBytes']Binärer Inhalt des Anhangs, Base64-kodiert
contentTypeZeichenketteitems('Apply_to_each')?['contentType']MIME-Typ (application/vnd.openxmlformats-officedocument.wordprocessingml.document)
sizeganze Zahlitems('Apply_to_each')?['size']Bytes, nützlich zum Herausfiltern großer Anhänge
isInlineboolescher Wertitems('Apply_to_each')?['isInline']Gilt für im Text eingebettete Inline-Bilder; werden normalerweise herausgefiltert

PDF4me Convert to PDF liest die Dateierweiterung ab. name den richtigen Renderer auswählen (.docx → Aspose Words, .xlsx → Aspose-Zellen, .pptx → Aspose Slides, Bilder und PDFs werden nativ verarbeitet).


Schritt 1: Wie überwacht man einen Outlook-Posteingang auf eingehende E-Mails?

Bisheriger Ablauf: Nur Auslöser.

  1. In Power Automate Klicken Erstellen, wählen Automatisierter Cloud-FlowDie
  2. Benennen Sie den Datenfluss (z.B. Email Archive to PDF), wählen Office 365 Outlook: Wenn eine neue E-Mail eingeht (V3) Klicken Sie als Auslöser. ErstellenDie
  3. Verbinden Ihr Office 365-Postfach.
  4. Expandieren Erweiterte Parameter und klicken Alle anzeigen um Filteroptionen anzuzeigen.
  5. Konfigurieren:
    • Zu: [email protected] (Filter, sodass nur an diese Adresse adressierte E-Mails den Workflow auslösen)
    • Anhänge beifügen: Yes
    • Nur mit Anhängen: Yes

Triggerkonfiguration

Power Automate Office 365 Outlook: Auslöser „Bei Eingang einer neuen E-Mail“ (Version 3) – Erweiterte Parameter (Ziel: test@ynoox.ch), Anhänge einschließen: Ja, Nur mit Anhängen: Ja, Verbindung zu Office 365 Outlook hergestellt

Tipp. Nur mit Anhängen Ja ist das, was verhindert, dass der Ablauf bei jeder internen Benachrichtigung, Kalendereinladung oder automatisierten Antwort ausgelöst wird. Kombinieren Sie dies mit einem/einer/einem Zu Filtern nach einem dedizierten Archivalias (z.B. [email protected]) für eine saubere E-Mail-Adresse, die nur die E-Mails empfängt, die Sie tatsächlich archivieren möchten.


Schritt 2: Variable „email“ initialisieren

Bisheriger Ablauf: Trigger plus Variable initialisieren.

Öffne ein leeres Array, um den Hauptteil der PDF-Datei und alle angehängten PDF-Dateien zu sammeln.

  1. Klicken + Neuer Schritt, wählen Variable initialisierenDie
  2. Konfigurieren:
    • Name: email
    • Typ: Array
    • Wert: leer lassen

Variablenkonfiguration initialisieren

Die Power Automate-Aktion „Variable initialisieren“ ist mit dem Namen „E-Mail“, dem Typ „Array“ und einem leeren Wertfeld konfiguriert.

Schritt 3: Wie wandelt PDF4me den E-Mail-Text in eine PDF-Datei um?

Bisheriger Ablauf: Auslöser plus Variable initialisieren plus In PDF-Text konvertieren.

Der Outlook-Trigger gibt den Nachrichtentext als HTML aus am body/bodyPDF4me Convert to PDF liest HTML direkt, sodass die gesamte Konvertierung mit einem einzigen Aufruf erfolgt.

  1. Klicken + Neuer Schritt, suchen PDF4me, wählen In PDF konvertierenDie
  2. Umbenennen die Handlung zu In PDF-Text konvertieren Daher erhält die Aktion „In PDF konvertieren“ aus Schritt 5 später einen eigenen, aussagekräftigen Namen.
  3. Verbinden PDF4me – Melden Sie sich mit Ihrem API-Schlüssel an (nur beim ersten Mal).
  4. Konfigurieren:
    • Dateiinhalt (Ausdruck, Klick) fx): triggerOutputs()?['body/body']
    • Dateiname: email-body.html

Konvertierung in PDF-Textkörperkonfiguration

Power Automate PDF4me-Aktion „In PDF konvertieren“ mit Dateiinhalt, der auf das Trigger-Token „Body“ (Ausdruck „triggerOutputs body/body“) und den Dateinamen „email-body.html“ festgelegt ist; verbunden mit PDF4me Connect

Der .html Die Dateinamenserweiterung teilt PDF4me mit, welchen Renderer PDF4me verwenden soll. Senden .docx, .xlsx, .png, oder .jpg Genauso einfach lassen sie sich alle mit derselben Aktion erledigen.


Schritt 4: An Array-Variable anhängen (E-Mail-Text)

Bisheriger Ablauf: Auslöser plus Variable initialisieren plus In PDF-Text konvertieren plus Anhängen (E-Mail-Text).

Schieben Sie die konvertierte PDF-Datei auf die email Array als Seite 1.

  1. Klicken + Neuer Schritt, wählen An Array-Variable anhängenDie
  2. Umbenennen die Handlung zu An Array-Variable anhängen (E-Mail-Text) Zur Verdeutlichung.
  3. Konfigurieren:
    • Name: email
    • Wert (Ausdruck): base64ToBinary(body('Convert_to_PDF_Body')?['$content'])

Konfiguration zum Anhängen des E-Mail-Textes

Power Automate-Aktion „An Array-Variable anhängen (E-Mail-Text)“ mit dem Namen „E-Mail“ und dem Wert „base64ToBinary body“ (offenes Anführungszeichen, Convert_to_PDF_Body, schließendes Anführungszeichen, schließende Klammer, Fragezeichen, Dollarzeichen, Inhalt, schließende Klammer), die im Ausdruckseditor angezeigt wird.

Schritt 5: Wie iteriert man über alle Anhänge und konvertiert jeden einzelnen?

Bisheriger Ablauf: Auslöser plus Variable initialisieren plus In PDF-Text konvertieren plus Anhängen (E-Mail-Text) plus Auf jedes Element anwenden.

Alle Anhänge werden durchlaufen, jeder wird in eine PDF-Datei konvertiert und der Reihe nach angehängt, sodass die endgültige Zusammenführung die Reihenfolge der Anhänge berücksichtigt.

Schritt 5a: Auf jedes Element anwenden (Quelle auswählen)

  1. Klicken + Neuer Schritt, wählen Auf jedes Element anwendenDie
  2. Konfigurieren:
    • Wählen Sie eine Ausgabe aus den vorherigen Schritten aus. (Ausdruck): triggerOutputs()?['body/attachments']
Power Automate: Wenden Sie die Aktion auf jede Aktion an, wobei eine Ausgabe aus vorherigen Schritten ausgewählt ist, die auf das Token „Anhänge“ festgelegt ist. Der aufgelöste Ausdruck „triggerOutputs body/attachments“ wird in der QuickInfo angezeigt.

Schritt 5b: In PDF konvertieren (die Anlage)

  1. Innerhalb der Schleife klicken Füge eine Aktion hinzu, wählen PDF4me: In PDF konvertierenDie
  2. Konfigurieren:
    • Dateiinhalt (Ausdruck): base64ToBinary(items('Apply_to_each')?['contentBytes'])
    • Dateiname (dynamischer Inhalt): Auswählen Name aus der Option "Auf jedes aktuelle Element anwenden"
Die Power Automate-Aktion „In PDF konvertieren“ innerhalb von „Auf jedes Element anwenden“ legt den Dateiinhalt auf „base64ToBinary items Apply_to_each contentBytes“ fest, den Dateinamen auf das Namenstoken des aktuellen Anhangs, den Ausdruckseditor mit den „base64ToBinary items Apply_to_each contentBytes“ ist geöffnet.

Der Name Das dynamische Inhaltstoken wird zur Laufzeit aufgelöst zu items('Apply_to_each')?['name']Daher wird jeder Anhang anhand seines ursprünglichen Dateinamens konvertiert. PDF4me liest die Dateiendung, um den richtigen Renderer auszuwählen.

Power Automate: In PDF konvertieren – Tooltip für das Feld „Dateiname“ mit den aufgelösten Ausdruckselementen „Apply_to_each“ und „Namenstoken“ aus „Auf jeden aktuellen Anhang anwenden“

Schritt 5c: An die Array-Variable anhängen (die konvertierte Anlage)

  1. Im Folgenden wird innerhalb derselben Schleife in PDF konvertiert. Füge eine Aktion hinzu, wählen An Array-Variable anhängenDie
  2. Konfigurieren:
    • Name: email
    • Wert (Ausdruck): base64ToBinary(body('Convert_to_PDF')?['$content'])
Power Automate: An Array-Variable anhängen (innerhalb von "Apply to each"), Name: E-Mail, Wert: base64ToBinary, Inhalt: Convert_to_PDF (im Ausdruckseditor angezeigt).

Die beiden Grundstücksnamen sind wichtig. Outlook-Anhangsbytes werden gespeichert auf contentBytesPDF4me Convert to PDF output ist weiterhin verfügbar. $contentBeide sind Base64-kodiert. Achten Sie beim Einfügen der Ausdrücke auf die korrekte Namensgebung, dann funktioniert die Schleife einwandfrei.


Schritt 6: Mehrere PDF-Dateien zu einer einzigen Archiv-PDF zusammenführen

Bisheriger Ablauf: Auslöser plus Variable initialisieren plus In PDF-Text konvertieren plus Anhängen (Text) plus Auf jedes anwenden plus Mehrere PDFs zusammenführen.

Das Ganze email Ein Array (zuerst das Body-PDF, dann die Attachment-PDFs in der Reihenfolge der Anhänge) wird in einen einzigen Merge-Aufruf umgewandelt.

  1. Klicken Sie unterhalb von „Auf jede Schleife anwenden“. + Neuer Schritt, suchen PDF4me, wählen Mehrere PDF-Dateien zu einer einzigen PDF-Datei zusammenführenDie
  2. Konfigurieren:
    • Body/docContent: Wähle die email Variable Token
    • Name der Ausgabedatei: Email Attachment Merge Output.pdf

Zusammenführungsaktionskonfiguration

Power Automate PDF4me: Mehrere PDF-Dateien zu einer einzigen PDF-Datei zusammenführen (Aktion mit Body/docContent = E-Mail-Variable, Ausgabedateiname: E-Mail-Anhang Zusammenführen Output.pdf)

Schritt 7: Warum ein Dateiname mit Zeitstempel für das Archiv?

Bisheriger Ablauf: Auslöser plus Variable initialisieren plus In PDF-Text konvertieren plus Anhängen plus Auf jedes Element anwenden plus Zusammenführen plus Datei erstellen.

Speichern Sie die konsolidierte PDF-Datei mit einem UTC-Zeitstempel im Dateinamen in Dropbox, sodass jeder Archiveintrag eine neue, sortierbare Datei ist. Zwei E-Mails an dieselbe Adresse in derselben Sekunde sind so selten, dass dies eine effektive Eindeutigkeit gewährleistet, ohne dass Nachrichten-IDs eingebettet werden müssen.

  1. Klicken + Neuer Schritt, wählen Dropbox: Datei erstellenDie
  2. Konfigurieren:
    • Ordnerpfad: /blog data/merge blog template/output
    • Dateiname (Ausdruck, Klick) fx): concat('merge-', formatDateTime(utcNow(), 'yyyyMMdd-HHmmss'), '.pdf')
    • Dateiinhalt: Wähle die Dateiinhalt Token aus der Aktion „Mehrere PDFs zusammenführen“

Dateinamenausdruck

Power Automate Dropbox-Aktion „Datei erstellen“ Ordnerpfad: /blog data/merge blog template/output, Dateiname: Ausdruck concat merge Bindestrich Komma formatDateTime utcNow Komma yyyyMMdd Bindestrich HHmmss Komma Punkt pdf (wird im Ausdruckseditor angezeigt)

Abschließende Aktion mit zugeordnetem Dateiinhalt

Power Automate Dropbox-Aktion „Datei erstellen“ mit Ordnerpfad „/blog data/merge blog template/output“, Dateinamen-Verkettungsausdruck, Dateiinhalts-Token aus der Aktion „Mehrere PDF-Dateien zu einer einzigen PDF-Datei zusammenführen“

Tipp für Postfächer mit hohem E-Mail-Aufkommen. Bei Postfächern, die mehr als 10 E-Mails pro Minute empfangen, wird ein kurzer Hash der Internet Message ID der Nachricht angehängt, um die Eindeutigkeit zu gewährleisten: concat('merge-', formatDateTime(utcNow(), 'yyyyMMdd-HHmmss'), '-', substring(triggerOutputs()?['body/internetMessageId'], 0, 8), '.pdf')Der Prüfpfad bleibt lesbar, Kollisionen sind unmöglich.


Führen Sie den Flow aus und überprüfen Sie ihn.

  1. Speichern der Fluss oben rechts.
  2. Senden Sie eine E-Mail mit einem oder mehreren Anhängen an die überwachte Adresse.
  3. Offen LaufverlaufDer Auslöser sollte innerhalb weniger Sekunden betätigen.
  4. Dropbox öffnen unter /blog data/merge blog template/output/Eine Datei mit dem Namen merge-YYYYMMDD-HHmmss.pdf ist da.
  5. Öffnen Sie die PDF-Datei. Seite 1 enthält den Haupttext. Ab Seite 2 finden Sie die einzelnen Anhänge in der Reihenfolge ihrer Erstellung.

Was hast du denn genau gebaut? Eine vollautomatische E-Mail-Archivierungspipeline. Jede Nachricht mit Anhängen wird in eine einzige PDF-Datei umgewandelt – zuerst der Nachrichtentext, dann die Anhänge in der richtigen Reihenfolge. Die PDF-Datei wird mit einem Zeitstempel versehen, um Konflikte zu vermeiden, und anschließend in einem freigegebenen Ordner abgelegt, den Ihr Dokumentenmanagement-Team oder Ihre Auditoren durchsuchen können. Derselbe Prozess verarbeitet zwei oder zwanzig Anhänge ohne Änderungen.


Häufige Variationen, die Sie hinzufügen können, ohne den Aufbau zu wiederholen

Anhänge nach Typ filtern
Wrap Convert to PDF in a Zustand Testen endsWith(toLower(items('Apply_to_each')?['name']), '.pdf'). Überspringt E-Mail-Signaturen und eingebettete Bildanhänge.
Metadaten auf Seite 1 stempeln
Vor Schritt 3 erstellen Sie eine HTML-Präambel mit Komponieren: Absender, Betreff, Empfangsdatum. Seite 1 enthält nun eine durchsuchbare Kopfzeile.
Digitale Signatur vor der Archivierung
PDF4me einfügen Digitale Signatur (PDF) zwischen Schritt 6 und Schritt 7. Die archivierte PDF-Datei wird mit Ihrem X.509-Zertifikat gegensigniert, wodurch ein sofortiger Prüfpfad entsteht. Wer hat was wann archiviert?Die
PDF/A für die Langzeitarchivierung
Füge PDF4me hinzu PDF/A erstellen mit Compliance PDF/A-2b Nach der Zusammenführung. Die archivierte PDF-Datei entspricht ISO 19005 und ist für die rechtliche Aufbewahrung und die Einreichung bei den Aufsichtsbehörden geeignet.

E-Mail-Archiv: PDF vs. EML

AspektKonsolidiertes PDF (dieser Ablauf)Roh-EML-Export
Universell lesbarJa, jeder PDF-Reader.Nein, Outlook oder ein kompatibler Client wird benötigt.
Suche nach InhaltenJa, OCR-freundlichLimited, nur Karosserie
Inklusive AnhängeJa, direkt als SeitenJa, als Binärstrom
Übereinstimmung des PrüfformatsSOX, DSGVO, HIPAA, FINRA akzeptierenOft abgelehnt
ManipulationssicherJa, wenn Digital Sign hinzugefügt wirdLässt sich in jedem Editor problemlos bearbeiten.
DateigrößeGrößer (alle gerenderten Seiten)Kleiner (keine Darstellung)
Retention-PipelineEine PDF-Datei pro E-Mail, einfach zu verkettenEML erfordert ein Containerformat

Häufig gestellte Fragen

Wie kann ich diesen Workflow für ein freigegebenes Postfach anstatt für ein persönliches Postfach auslösen?

Ersetzen Sie die Wenn eine neue E-Mail eintrifft (V3) Auslöser mit Wenn eine neue E-Mail in einem gemeinsam genutzten Postfach eingeht (V2)Übergeben Sie die Postfachadresse als Ursprüngliche Postfachadresse Der restliche Ablauf bleibt identisch, jede Verweisreferenz und jeder Ausdruck im Funktionskörper wird auf die gleiche Weise aufgelöst.

Was passiert, wenn eine E-Mail keine Anhänge enthält?

Der Auslöser Nur mit Anhängen Ja Der Filter verhindert, dass der Workflow für E-Mails mit reinem Nachrichtentext ausgeführt wird. Wenn Sie auch E-Mails mit reinem Nachrichtentext archivieren möchten, setzen Sie den Filter auf „Nein“ und schließen Sie die Schleife „Auf jedes Element anwenden“ in eine Bedingung ein: Diese wird nur ausgeführt, wenn … length(triggerOutputs()?['body/attachments']) ist größer als null. Die Zusammenführungsaktion funktioniert weiterhin mit nur einer PDF-Datei im Array und erzeugt ein einseitiges Archiv.

Wie kann ich Absender, Betreff und Empfangsdatum auf Seite 1 des Archivs einfügen?

Vor Schritt 3 fügen Sie Folgendes hinzu: Komponieren Aktion mit einer HTML-Präambel:

<h2>From: @{triggerOutputs()?['body/from']}</h2>
<h2>Subject: @{triggerOutputs()?['body/subject']}</h2>
<p>Received: @{triggerOutputs()?['body/receivedDateTime']}</p>
<hr>
@{triggerOutputs()?['body/body']}

Verweisen Sie anschließend in Schritt 3 auf den Dateiinhalt des Compose-Programms. Seite 1 enthält nun durchsuchbare Header-Metadaten.

Funktioniert das auch mit HTML-E-Mails, die eingebettete Bilder enthalten?

Ja. PDF4me Convert to PDF rendert HTML mit Inline-Code. <img src="cid:..."> Verweise und eingebettete Base64-Bilder. Outlooks body/body Beinhaltet den vollständigen HTML-Code mit eingebetteten Inhalten, sodass die gerenderte PDF-Datei die visuelle Wiedergabetreue dessen beibehält, was der Empfänger gesehen hat.

Wie lange dauert der Ablauf?

Etwa 10–15 Sekunden pro Anhang in einer einseitigen DOCX-Datei, zuzüglich 5–10 Sekunden für die Auslösung und den finalen Upload. Eine typische E-Mail mit zwei Anhängen wird in 35–45 Sekunden vollständig verarbeitet. Die Funktion „Auf jedes Element anwenden“ von Power Automate führt die Elemente standardmäßig sequenziell aus, um eine geordnete Ausgabe zu gewährleisten. Wenn die Reihenfolge keine Rolle spielt und Geschwindigkeit wichtig ist, stellen Sie die entsprechende Option ein. Gleichzeitigkeitskontrolle auf 20 in den Einstellungen der Schleife.


Fehlerbehebung

Fehler der Zusammenführungsaktion mit "ungültigem Inhalt"

Eine der Optionen zum Anhängen an ein Array Wert Ausdrücke sind nicht eingeschlossen base64ToBinary(...)Jeder Push (Textkörper und Anhänge) erfordert die Konvertierung. Öffnen Sie beide Anfügeaktionen erneut, wechseln Sie zum Ausdruckseditor und überprüfen Sie, ob die Ausdrücke korrekt sind. base64ToBinary(body('Convert_to_PDF_Body')?['$content']) Und base64ToBinary(body('Convert_to_PDF')?['$content']) wörtlich.

Seite 1 ist leer oder fehlt

Die Aktion „In PDF konvertieren“ hat keinen gültigen HTML-Code empfangen. Überprüfen Sie den Auslöser. Anhänge beifügen Ja blieb (ohne es kommt der Körper manchmal leer an) und dass Dateiinhalt löst sich auf triggerOutputs()?['body/body'], nicht Körper/KörpervorschauDie

Die Anhänge werden in der falschen Reihenfolge ausgeliefert.

Standardeinstellung Auf jedes Element anwenden Die Abläufe erfolgen parallel, wodurch die Reihenfolge der Anhänge durcheinandergeraten kann. Öffnen Sie die Schleife. Einstellungen und setzen Gleichzeitigkeitskontrolle Grad der Parallelität zu 1Die Schleife läuft nun sequenziell ab und die Anhänge landen in der Reihenfolge des Arrays.

Es kommt zu Dateikonflikten im Archivordner.

Die Zeitstempelauflösung beträgt eine Sekunde. Bei Postfächern mit hohem E-Mail-Aufkommen sollte der Hash der Internet-Nachrichten-ID angehängt werden: concat('merge-', formatDateTime(utcNow(), 'yyyyMMdd-HHmmss'), '-', substring(triggerOutputs()?['body/internetMessageId'], 0, 8), '.pdf')Die


Nächste Schritte

Das gleiche siebenstufige Muster (Auslösen, Array initialisieren, E-Mail-Text konvertieren, Konvertierung und Anhängen wiederholen, zusammenführen, mit Zeitstempel speichern) funktioniert für jede Automatisierung, die E-Mails und Anhänge in einer PDF-Datei zusammenfasst. Sobald eine solche Automatisierung erfolgt ist, wird jede eingehende Nachricht automatisch zu einem durchsuchbaren, sortierbaren und revisionssicheren Archiveintrag.