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
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
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
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
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
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
GraphMailboxAttribute
Microsoft Graph: attribute on ListMailFoldersNodeConfiguration.GraphSettingsConfiguration holding the mailbox
(case-insensitive) — the trigger's mailboxAttribute.
public string GraphMailboxAttribute { get; set; }
Property Value
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
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
TargetPath
public string TargetPath { get; set; }
Property Value
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
Constructors
ListMailFoldersNodeConfiguration()
public ListMailFoldersNodeConfiguration()