Zum Hauptinhalt springen

FromEmail@1

Der Node FromEmail@1 fragt ein Postfach über IMAP ab und löst die Pipeline für neue Nachrichten aus. Verwenden Sie ihn für jedes IMAP-fähige Postfach (Gmail, selbst gehostet, Exchange mit aktiviertem IMAP, …). Für Microsoft-365-Postfächer über Microsoft Graph — kein gespeichertes Passwort, stattdessen eine Azure-App-Registrierung und Ordner-als-Warteschlange-Semantik — verwenden Sie stattdessen FromMicrosoftGraphEmail@1.

Adapter-Voraussetzungen​

  • Mesh Adapter
  • Eine System.Communication/EMailReceiverConfiguration-Entität (IMAP-Host / Anmeldedaten), über eine System.Communication/Uses-Assoziation mit der Pipeline verknüpft.

Server-Konfiguration (EMailReceiverConfiguration)​

Erstellen Sie die IMAP-Einstellungen als System.Communication/EMailReceiverConfiguration-Entität und referenzieren Sie sie über den WellKnownName aus der serverConfiguration des Nodes. Speichern Sie das Passwort außerhalb der Versionsverwaltung.

- rtId: <config-rtId>
ckTypeId: System.Communication/EMailReceiverConfiguration
rtWellKnownName: InvoiceMailbox
attributes:
- id: System.Communication/Host
value: "imap.example.com"
- id: System.Communication/Port
value: 993
- id: System.Communication/Username
value: "accounting@example.com"
- id: System.Communication/Password
value: "<password>"
- id: System.Communication/IsSslEnabled
value: true
- id: System.Communication/Folder # optional, defaults to INBOX
value: "INBOX"
AttributErforderlichStandardBeschreibung
Hostja—IMAP-Server-Hostname.
Portja—IMAP-Port (typischerweise 993 für SSL, 143 für STARTTLS).
Usernameja—Login-Benutzer.
Passwordja—Login-Passwort.
IsSslEnabledja—true → implizites SSL beim Verbinden (SslOnConnect); false → StartTlsWhenAvailable.
FolderneinINBOXPostfachordner, der abgefragt wird.

Die serverConfiguration muss über eine System.Communication/Uses-Assoziation mit der Pipeline verknüpft sein — die GlobalConfiguration wird nur aus Uses-Assoziationen aufgebaut, der Name allein wird nicht aufgelöst:

# on the Pipeline entity
associations:
- roleId: System.Communication/Uses
targetRtId: <config-rtId>
targetCkTypeId: System.Communication/EMailReceiverConfiguration

Node-Konfiguration​

FeldErforderlichStandardBeschreibung
serverConfigurationja—WellKnownName der EMailReceiverConfiguration-Entität.
pollingIntervalSecondsnein60Sekunden zwischen den Abfragezyklen.
onlyUnreadneintrueNur ungelesene (unseen) Nachrichten verarbeiten. Wenn false, werden alle Nachrichten im Ordner durchsucht.
markAsReadneintrueEine Nachricht nach der Verarbeitung als gelesen markieren.
deleteAfterProcessingneinfalseEine Nachricht nach der Verarbeitung löschen.
senderFilternein(keiner)Nur Nachrichten verarbeiten, deren Absenderadresse diese Zeichenkette enthält.
subjectFilternein(keiner)Nur Nachrichten verarbeiten, deren Betreff diese Zeichenkette enthält.
Erneute Verarbeitung vermeiden

Der Node dedupliziert innerhalb eines einzelnen Adapter-Laufs anhand der Nachrichten-UID. Um eine erneute Verarbeitung über Neustarts hinweg zu vermeiden, behalten Sie onlyUnread: true zusammen mit markAsRead: true bei, oder setzen Sie deleteAfterProcessing: true, wenn der Postfachordner eine dedizierte Arbeitswarteschlange ist.

Ausgabe​

Der Node gibt ein Array von Nachrichten unter $.Emails[] aus, dieselbe vereinheitlichte Form, die von FromMicrosoftGraphEmail@1 / FromTeamsBot@1 erzeugt wird (siehe Microsoft 365 E-Mail — vereinheitlichte Nachrichtenform):

$.Emails[0].Subject
$.Emails[0].From — sender (display name + address)
$.Emails[0].FromAddress — sender address only
$.Emails[0].To
$.Emails[0].Date
$.Emails[0].Body — also HtmlBody / TextBody
$.Emails[0].MessageId
$.Emails[0].Attachments[0].FileName
$.Emails[0].Attachments[0].ContentType
$.Emails[0].Attachments[0].Length
$.Emails[0].Attachments[0].Data — base64 file content

Anwendungsbeispiel​

Ein Postfach nach ungelesenen Rechnungs-E-Mails abfragen und jeden Anhang verarbeiten:

triggers:
- type: FromEmail@1
serverConfiguration: InvoiceMailbox
pollingIntervalSeconds: 60
onlyUnread: true
markAsRead: true
senderFilter: "@supplier.com"
transformations:
- type: ForEach@1
iterationPath: $.Emails
targetPath: $.emailResults
targetValueKind: Simple
targetValueWriteMode: Overwrite
transformations:
- type: ForEach@1
iterationPath: $.key.Attachments
targetPath: $.attachmentResults
targetValueKind: Simple
targetValueWriteMode: Overwrite
transformations:
- type: If@1
path: $.key.ContentType
operator: Equals
value: "application/pdf"
valueType: String
transformations:
# ... store $.key.Data, run OCR / AI, create entities ...