---
product: Chilkat
product_version: 11.7.0
language: wcpp
language_label: Unicode C++
class: Mailboxes
class_name: CkMailboxesW
license: bundle
deprecated: false
reference_html: https://www.chilkatsoft.com/refdoc/wcppCkMailboxesWRef.html
---
# Chilkat Mailboxes — Unicode C++ — v11.7.0

> Chilkat 11.7.0 · language=wcpp · class=Mailboxes (CkMailboxesW)
> 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/wcpp/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**

```cpp
// Local variable on the stack
CkMailboxesW obj;

// Dynamically allocate/delete
CkMailboxesW *pObj = new CkMailboxesW();
// ...
delete pObj;
```

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 Unicode C++.

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` | `void get_DebugLogFilePath(CkString &str); const wchar_t *debugLogFilePath(void); void put_DebugLogFilePath(const wchar_t *str);` | read/write | If set to a file path, this property logs the LastErrorText of each Chilkat method or property call to the specified file. |
| `LastErrorHtml` | `void get_LastErrorHtml(CkString &str); const wchar_t *lastErrorHtml(void);` | read-only | Provides HTML-formatted information about the last called method or property. |
| `LastErrorText` | `void get_LastErrorText(CkString &str); const wchar_t *lastErrorText(void);` | read-only | Provides plain text information about the last called method or property. |
| `LastErrorXml` | `void get_LastErrorXml(CkString &str); const wchar_t *lastErrorXml(void);` | read-only | Provides XML-formatted information about the last called method or property. |
| `LastMethodSuccess` | `bool get_LastMethodSuccess(void); void put_LastMethodSuccess(bool newVal);` | read/write | Indicates the success or failure of the most recent method call: `true` means success, `false` means failure. |
| `VerboseLogging` | `bool get_VerboseLogging(void); void put_VerboseLogging(bool newVal);` | read/write | If set to `true`, then the contents of LastErrorText (or LastErrorXml, or LastErrorHtml) may contain more verbose information. |
| `Version` | `void get_Version(CkString &str); const wchar_t *version(void);` | read-only | Version of the component/library, such as "10.1.0" |

## Member index

| Member | Kind | Signature |
|---|---|---|
| `Count` | property, read-only | `int get_Count(void);` |
| `GetFlags` | method | `bool GetFlags(int index, CkString &outStr); const wchar_t *getFlags(int index);` |
| `GetMailboxIndex` | method | `int GetMailboxIndex(const wchar_t *mbxName);` |
| `GetName` | method | `bool GetName(int index, CkString &outStrName); const wchar_t *getName(int index);` |
| `GetNthFlag` | method | `bool GetNthFlag(int index, int flagIndex, CkString &outStr); const wchar_t *getNthFlag(int index, int flagIndex);` |
| `GetNumFlags` | method | `int GetNumFlags(int index);` |
| `HasFlag` | method | `bool HasFlag(int index, const wchar_t *flagName);` |
| `HasInferiors` | method | `bool HasInferiors(int index);` |
| `IsMarked` | method | `bool IsMarked(int index);` |
| `IsSelectable` | method | `bool IsSelectable(int index);` |
| `LoadTaskResult` | method | `bool LoadTaskResult(CkTaskW &task);` |

## Properties

### Mailboxes.Count

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

```cpp
int get_Count(void);
```

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 · wcpp · Mailboxes · GetFlags · method`

```cpp
bool GetFlags(int index, CkString &outStr);

const wchar_t *getFlags(int index);
```

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 true for success, false for failure.

### Mailboxes.GetMailboxIndex

`Chilkat 11.7.0 · wcpp · Mailboxes · GetMailboxIndex · method`

```cpp
int GetMailboxIndex(const wchar_t *mbxName);
```

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 · wcpp · Mailboxes · GetName · method`

```cpp
bool GetName(int index, CkString &outStrName);

const wchar_t *getName(int index);
```

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 true for success, false for failure.

### Mailboxes.GetNthFlag

`Chilkat 11.7.0 · wcpp · Mailboxes · GetNthFlag · method`

```cpp
bool GetNthFlag(int index, int flagIndex, CkString &outStr);

const wchar_t *getNthFlag(int index, int flagIndex);
```

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 true for success, false for failure.

### Mailboxes.GetNumFlags

`Chilkat 11.7.0 · wcpp · Mailboxes · GetNumFlags · method`

```cpp
int GetNumFlags(int index);
```

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 · wcpp · Mailboxes · HasFlag · method`

```cpp
bool HasFlag(int index, const wchar_t *flagName);
```

Returns `true` 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 · wcpp · Mailboxes · HasInferiors · method`

```cpp
bool HasInferiors(int index);
```

Returns `true` 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 · wcpp · Mailboxes · IsMarked · method`

```cpp
bool IsMarked(int index);
```

Returns `true` 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 · wcpp · Mailboxes · IsSelectable · method`

```cpp
bool IsSelectable(int index);
```

Returns `true` 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 · wcpp · Mailboxes · LoadTaskResult · method · since 9.5.0.52`

```cpp
bool LoadTaskResult(CkTaskW &task);
```

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 true for success, false for failure.

## Related classes

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

