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 eineSystem.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"
| Attribut | Erforderlich | Standard | Beschreibung |
|---|---|---|---|
Host | ja | — | IMAP-Server-Hostname. |
Port | ja | — | IMAP-Port (typischerweise 993 für SSL, 143 für STARTTLS). |
Username | ja | — | Login-Benutzer. |
Password | ja | — | Login-Passwort. |
IsSslEnabled | ja | — | true → implizites SSL beim Verbinden (SslOnConnect); false → StartTlsWhenAvailable. |
Folder | nein | INBOX | Postfachordner, 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
| Feld | Erforderlich | Standard | Beschreibung |
|---|---|---|---|
serverConfiguration | ja | — | WellKnownName der EMailReceiverConfiguration-Entität. |
pollingIntervalSeconds | nein | 60 | Sekunden zwischen den Abfragezyklen. |
onlyUnread | nein | true | Nur ungelesene (unseen) Nachrichten verarbeiten. Wenn false, werden alle Nachrichten im Ordner durchsucht. |
markAsRead | nein | true | Eine Nachricht nach der Verarbeitung als gelesen markieren. |
deleteAfterProcessing | nein | false | Eine Nachricht nach der Verarbeitung löschen. |
senderFilter | nein | (keiner) | Nur Nachrichten verarbeiten, deren Absenderadresse diese Zeichenkette enthält. |
subjectFilter | nein | (keiner) | Nur Nachrichten verarbeiten, deren Betreff diese Zeichenkette enthält. |
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 ...