Zum Hauptinhalt springen

ListMailFoldersNodeConfiguration

Namespace: Meshmakers.Octo.MeshAdapter.Nodes.Extract

Configuration for node ListMailFolders (AB#5370): lists the folders of a mailbox in EXACTLY the syntax the corresponding mail trigger accepts, so an operator picks a folder from the server's own list instead of guessing its path syntax.

Two channels, two syntaxes, both guessed wrong in production: the IMAP source folder is handed to the server verbatim and has to carry the server's own hierarchy delimiter (Dovecot: INBOX.Finanzen.Rechnungen), while the Microsoft 365 trigger splits its path on / — an operator who copied the IMAP hint into the Graph field had every poll fail for days.

Output at : { channel, delimiter, folders: [ { path, displayName, depth } ], truncated }, where path is the string to store in the trigger's folder setting. Read-only — the node never creates, moves or selects anything.

public record ListMailFoldersNodeConfiguration : TargetPathNodeConfiguration, INodeConfiguration, IEquatable<NodeConfiguration>, ITargetPathNodeConfiguration, IEquatable<TargetPathNodeConfiguration>, IEquatable<ListMailFoldersNodeConfiguration>

Inheritance Object → NodeConfiguration → TargetPathNodeConfiguration → ListMailFoldersNodeConfiguration
Implements INodeConfiguration, IEquatable<NodeConfiguration>, ITargetPathNodeConfiguration, IEquatable<TargetPathNodeConfiguration>, IEquatable<ListMailFoldersNodeConfiguration>

Fields​

DefaultMaxFolders​

Default for ListMailFoldersNodeConfiguration.MaxFolders, resolved where the value is read.

public static int DefaultMaxFolders;

DefaultTimeoutSeconds​

Default for ListMailFoldersNodeConfiguration.TimeoutSeconds, resolved where the value is read.

public static int DefaultTimeoutSeconds;

ChannelImap​

The channel name for an IMAP mailbox.

public static string ChannelImap;

ChannelGraph​

The channel name for a Microsoft 365 mailbox read through Microsoft Graph.

public static string ChannelGraph;

Properties​

Channel​

Which mailbox to list: Imap or Graph (case-insensitive). Ignored when ListMailFoldersNodeConfiguration.ChannelPath resolves to a value.

public string Channel { get; set; }

Property Value​

String

ChannelPath​

JSONPath to the channel name in the data context, e.g. $.body.channel for a route whose request body carries it. Takes precedence over ListMailFoldersNodeConfiguration.Channel when it resolves to a non-empty value.

public string ChannelPath { get; set; }

Property Value​

String

ImapServerConfiguration​

IMAP: well-known name of the System.Communication/EMailReceiverConfiguration the FromEmail@1 trigger connects with (host, port, user name, password, SSL) — the same reference the trigger's serverConfiguration names, so the list comes from the mailbox the import will poll. Must be reachable from the pipeline through a System.Communication/Uses association.

public string ImapServerConfiguration { get; set; }

Property Value​

String

GraphServerConfiguration​

Microsoft Graph: well-known name of the System.Communication/MicrosoftGraphConfiguration carrying the app registration (Azure tenant ID, client ID, client secret) — the same reference the FromMicrosoftGraphEmail@1 trigger's serverConfiguration names.

public string GraphServerConfiguration { get; set; }

Property Value​

String

GraphMailbox​

Microsoft Graph: the mailbox (user principal name or address) whose folders are listed. Fallback only — a value read through ListMailFoldersNodeConfiguration.GraphSettingsConfiguration / ListMailFoldersNodeConfiguration.GraphMailboxAttribute wins, exactly as it does on the trigger.

public string GraphMailbox { get; set; }

Property Value​

String

GraphSettingsConfiguration​

Microsoft Graph: optional well-known name of the settings configuration the trigger reads its mailbox from (its settingsConfiguration), so this node lists the folders of the mailbox the operator configured rather than one repeated in the definition.

public string GraphSettingsConfiguration { get; set; }

Property Value​

String

GraphMailboxAttribute​

Microsoft Graph: attribute on ListMailFoldersNodeConfiguration.GraphSettingsConfiguration holding the mailbox (case-insensitive) — the trigger's mailboxAttribute.

public string GraphMailboxAttribute { get; set; }

Property Value​

String

MaxFolders​

Upper bound on the number of folders returned (default 500). The walk stops there and the output says so with truncated: true — a mailbox with thousands of folders would otherwise turn a picker into a download. Nullable with the default resolved where it is read, because the pipeline definition deserializer is YamlDotNet and a key that is PRESENT and null overwrites a property initializer.

public Nullable<int> MaxFolders { get; set; }

Property Value​

Nullable<Int32>

TimeoutSeconds​

Overall time budget for the whole listing in seconds (default 60): connecting, authenticating and every folder request together. A mail server that accepts the connection and never answers otherwise keeps the HTTP route open for as long as the caller waits.

public Nullable<int> TimeoutSeconds { get; set; }

Property Value​

Nullable<Int32>

TargetPath​

public string TargetPath { get; set; }

Property Value​

String

TargetValueWriteMode​

public TargetValueWriteModes TargetValueWriteMode { get; set; }

Property Value​

TargetValueWriteModes

TargetValueKind​

public ValueKinds TargetValueKind { get; set; }

Property Value​

ValueKinds

DocumentMode​

public DocumentModes DocumentMode { get; set; }

Property Value​

DocumentModes

Description​

public string Description { get; set; }

Property Value​

String

Constructors​

ListMailFoldersNodeConfiguration()​

public ListMailFoldersNodeConfiguration()