---
product: Chilkat
product_version: 11.7.0
language: delphix
language_label: Delphi ActiveX
class: Mailboxes
class_name: TMailboxes
license: bundle
deprecated: false
reference_html: https://www.chilkatsoft.com/refdoc/delphiMailboxesRef.html
---
# Chilkat Mailboxes — Delphi ActiveX — v11.7.0

> Chilkat 11.7.0 · language=delphix · class=Mailboxes (TMailboxes)
> Other versions: replace `11.7.0` in this URL. Other languages: `https://www.chilkatsoft.com/ai-docs/v/11.7.0/<lang>/classes/Mailboxes.md`.
> Language-wide rules (install, unlock, error model, strings/bytes): `https://www.chilkatsoft.com/ai-docs/v/11.7.0/delphix/guide.md`.

## Purpose

**Inspect IMAP mailbox names and attributes returned by Chilkat.Imap.**

`Chilkat.Mailboxes` is a read-only result collection populated by `Chilkat.Imap.MbxList`. Applications inspect the returned mailbox names and attributes but do not directly add, remove, or modify entries. The class provides indexed access to mailbox flags, selectable status, marked status, whether child mailboxes exist, and whether child mailboxes may be created.

**Mailbox collection**

Receive the read-only list of IMAP mailboxes populated by `Chilkat.Imap.MbxList`.

**Indexed mailbox access**

Use the mailbox count and index-based methods to retrieve each mailbox name in the returned collection.

**Mailbox flags**

Inspect IMAP flags associated with each mailbox, including standard and server-specific attributes.

**Selectable status**

Determine whether a mailbox can be selected and opened for message access.

**Hierarchy information**

Check whether a mailbox has child mailboxes or whether children may be created beneath it.

**Marked status**

Detect whether a mailbox is marked or unmarked according to the attributes returned by the IMAP server.

**Common pattern:** Call `Chilkat.Imap.MbxList` to populate a `Mailboxes` object, loop from `0` to `Count - 1`, retrieve each mailbox name, and inspect its flags or selectable status. Mailbox names are exposed as normal Unicode text; Chilkat automatically handles modified UTF-7 or IMAP UTF-8 at the protocol level.

For an extended overview, see [Mailboxes Class Overview](https://www.chilkatsoft.com/mailboxes_class_overview.asp).

## Object creation, unlocking and error handling

**Object Creation**

```pascal
var
obj: TMailboxes;
...
begin
obj := TMailboxes.Create(Self);
...
// When finished, free the object instance.
obj.Free();
```

Call `Global.UnlockBundle` once at the start of the program, before using this or any other Chilkat class. Any string unlocks a fully functional 30-day trial; a purchased unlock code is used in production. See `guide.md` for the exact code in Delphi ActiveX.

How failure is reported depends on the method's return type and is stated in the note under each method below. In every case the diagnostic text is in the `LastErrorText` property of the object whose method was called.

## Members common to every Chilkat class

Documented once per language in `common-members.md`; listed here so this page is self-contained.

| Property | Signature | Access | Meaning |
|---|---|---|---|
| `DebugLogFilePath` | `property DebugLogFilePath: WideString` | read/write | If set to a file path, this property logs the LastErrorText of each Chilkat method or property call to the specified file. |
| `LastBinaryResult` | `property LastBinaryResult: OleVariant readonly` | read-only | This property is mainly used in SQL Server stored procedures to retrieve binary data from the last method call that returned binary data. |
| `LastErrorHtml` | `property LastErrorHtml: WideString readonly` | read-only | Provides HTML-formatted information about the last called method or property. |
| `LastErrorText` | `property LastErrorText: WideString readonly` | read-only | Provides plain text information about the last called method or property. |
| `LastErrorXml` | `property LastErrorXml: WideString readonly` | read-only | Provides XML-formatted information about the last called method or property. |
| `LastMethodSuccess` | `property LastMethodSuccess: Integer` | read/write | Indicates the success or failure of the most recent method call: `1` means success, `0` means failure. |
| `LastStringResult` | `property LastStringResult: WideString readonly` | read-only | In SQL Server stored procedures, this property holds the string return value of the most recent method call that returns a string. |
| `LastStringResultLen` | `property LastStringResultLen: Integer readonly` | read-only | The length, in characters, of the string contained in the LastStringResult property. |
| `VerboseLogging` | `property VerboseLogging: Integer` | read/write | If set to `1`, then the contents of LastErrorText (or LastErrorXml, or LastErrorHtml) may contain more verbose information. |
| `Version` | `property Version: WideString readonly` | read-only | Version of the component/library, such as "10.1.0" |

## Member index

| Member | Kind | Signature |
|---|---|---|
| `Count` | property, read-only | `property Count: Integer readonly` |
| `GetFlags` | method | `function GetFlags(index: Integer): WideString;` |
| `GetMailboxIndex` | method | `function GetMailboxIndex(mbxName: WideString): Integer;` |
| `GetName` | method | `function GetName(index: Integer): WideString;` |
| `GetNthFlag` | method | `function GetNthFlag(index: Integer; flagIndex: Integer): WideString;` |
| `GetNumFlags` | method | `function GetNumFlags(index: Integer): Integer;` |
| `HasFlag` | method | `function HasFlag(index: Integer; flagName: WideString): Integer;` |
| `HasInferiors` | method | `function HasInferiors(index: Integer): Integer;` |
| `IsMarked` | method | `function IsMarked(index: Integer): Integer;` |
| `IsSelectable` | method | `function IsSelectable(index: Integer): Integer;` |
| `LoadTaskResult` | method | `function LoadTaskResult(task: IChilkatTask): Integer;` |

## Properties

### Mailboxes.Count

`Chilkat 11.7.0 · delphix · Mailboxes · Count · property · read-only`

```pascal
property Count: Integer readonly
```

Returns the number of mailboxes in this collection. An empty collection has a count of `0`.

`Mailboxes` is a read-only result container populated by `Imap.MbxList`. Applications inspect the returned entries but do not directly add, remove, or modify mailboxes in this object.

## Methods

### Mailboxes.GetFlags

`Chilkat 11.7.0 · delphix · Mailboxes · GetFlags · method`

```pascal
function GetFlags(index: Integer): WideString;
```

Returns a comma-separated list of flags for the mailbox at the zero-based index specified by `index`.

For example:

```
\HasNoChildren,\Important
```

To inspect the flags individually, use `GetNumFlags` and `GetNthFlag`.

Returns a zero-length WideString on failure

### Mailboxes.GetMailboxIndex

`Chilkat 11.7.0 · delphix · Mailboxes · GetMailboxIndex · method`

```pascal
function GetMailboxIndex(mbxName: WideString): Integer;
```

Returns the zero-based index of the mailbox whose name matches `mbxName`.

Pass `mbxName` as a normal Unicode mailbox name. Chilkat automatically handles the protocol-level modified UTF-7 or IMAP UTF-8 representation; the application should not encode the mailbox name manually.

The returned index can be used with methods such as `GetName`, `GetFlags`, and `IsSelectable`.

### Mailboxes.GetName

`Chilkat 11.7.0 · delphix · Mailboxes · GetName · method`

```pascal
function GetName(index: Integer): WideString;
```

Returns the name of the mailbox at the zero-based index specified by `index`.

The name is returned as normal Unicode text. Chilkat automatically decodes modified UTF-7 or IMAP UTF-8 mailbox names received from the server and automatically performs the corresponding encoding when the name is passed to an `Imap` method.

The returned name can therefore be passed directly to methods that select, examine, create, rename, delete, copy to, or otherwise operate on a mailbox. Do not manually encode or decode the mailbox name.

Returns a zero-length WideString on failure

### Mailboxes.GetNthFlag

`Chilkat 11.7.0 · delphix · Mailboxes · GetNthFlag · method`

```pascal
function GetNthFlag(index: Integer; flagIndex: Integer): WideString;
```

Returns one flag from a mailbox in the collection.

- `index` is the zero-based mailbox index.
- `flagIndex` is the zero-based flag index within that mailbox.

Call `GetNumFlags` to determine the number of flags available for the mailbox.

Returns a zero-length WideString on failure

### Mailboxes.GetNumFlags

`Chilkat 11.7.0 · delphix · Mailboxes · GetNumFlags · method`

```pascal
function GetNumFlags(index: Integer): Integer;
```

Returns the number of flags associated with the mailbox at the zero-based index specified by `index`.

Returns `-1` if `index` is outside the valid mailbox-index range. Use `GetNthFlag` to retrieve the individual flags.

### Mailboxes.HasFlag

`Chilkat 11.7.0 · delphix · Mailboxes · HasFlag · method`

```pascal
function HasFlag(index: Integer; flagName: WideString): Integer;
```

Returns `1` if the mailbox at the zero-based index specified by `index` contains the flag named by `flagName`.

Flag-name comparison is case-insensitive. Include the leading backslash when checking an IMAP system flag or mailbox attribute, for example `\Marked`, `\Noselect`, or `\HasChildren`.

### Mailboxes.HasInferiors

`Chilkat 11.7.0 · delphix · Mailboxes · HasInferiors · method`

```pascal
function HasInferiors(index: Integer): Integer;
```

Returns `1` if the mailbox at the zero-based index specified by `index` either has child mailboxes or permits child mailboxes to be created beneath it.

**Important distinction:** `\HasNoChildren` means that no child mailboxes currently exist. It does not mean that children cannot be created. The IMAP `\Noinferiors` attribute means that child mailboxes cannot be created.

### Mailboxes.IsMarked

`Chilkat 11.7.0 · delphix · Mailboxes · IsMarked · method`

```pascal
function IsMarked(index: Integer): Integer;
```

Returns `1` if the mailbox at the zero-based index specified by `index` has the IMAP `\Marked` attribute.

`\Marked` is a server-provided hint that the mailbox may contain messages added since it was last selected. It is advisory information returned by the mailbox-listing operation.

### Mailboxes.IsSelectable

`Chilkat 11.7.0 · delphix · Mailboxes · IsSelectable · method`

```pascal
function IsSelectable(index: Integer): Integer;
```

Returns `1` if the mailbox at the zero-based index specified by `index` can be selected or examined for message access.

A mailbox having the IMAP `\Noselect` attribute is not selectable, even though it may appear in the mailbox hierarchy and may contain selectable child mailboxes.

### Mailboxes.LoadTaskResult

`Chilkat 11.7.0 · delphix · Mailboxes · LoadTaskResult · method · since 9.5.0.52`

```pascal
function LoadTaskResult(task: IChilkatTask): Integer;
```

Loads this object from a completed asynchronous task whose result is a `Mailboxes` collection.

`task` must reference a completed `Task` returned by the asynchronous form of an operation that produces mailbox-listing results.

Returns 1 for success, 0 for failure.

## Related classes

[`Task`](https://www.chilkatsoft.com/ai-docs/v/11.7.0/delphix/classes/Task.md)

