class Net::IMAP::ResponseCode - net-imap: Ruby Standard Library Documentation

# class Net::IMAP::ResponseCode

`Net::IMAP::ResponseCode` represents response codes. Response codes can be retrieved from `ResponseText#code` and can be included in any “condition” response: any `TaggedResponse` and `UntaggedResponse` when the response type is a “condition” (“OK”, “NO”, “BAD”, “PREAUTH”, or “BYE”).

Some response codes come with additional data which will be parsed by `Net::IMAP`. Others return `nil` for `data`, but are used as a machine-readable annotation for the human-readable `ResponseText#text` in the same response. When `Net::IMAP` does not know how to parse response code text, `data` returns the unparsed string.

Untagged response code `data` is pushed directly onto `Net::IMAP#responses`, keyed by `name`, unless it is removed by the command that generated it. Use `Net::IMAP#add_response_handler` to view tagged response codes for command methods that do not return their `TaggedResponse`.

IMAP extensions may define new codes and the data that comes with them. The IANA IMAP Response Codes registry has links to specifications for all standard response codes. Response codes are backwards compatible: Servers are allowed to send new response codes even if the client has not enabled the extension that defines them. When unknown response code data is encountered, `data` will return an unparsed string.

#### `IMAP4rev1` Response Codes¶ ↑

See [IMAP4rev1] §7.1, “Server Responses - Status Responses” for full definitions of the basic set of IMAP4rev1 response codes:

- `ALERT`, the `ResponseText#text` contains a special alert that MUST be brought to the user’s attention.

- `BADCHARSET`, `data` will be an array of charset strings, or `nil`.

- `CAPABILITY`, `data` will be an array of capability strings.

- `PARSE`, the `ResponseText#text` presents an error parsing a message’s [RFC5322] or [MIME-IMB] headers.

- `PERMANENTFLAGS`, followed by an array of flags. System flags will be symbols, and keyword flags will be strings. See System flags at `Net::IMAP`

- `READ-ONLY`, the mailbox was selected read-only, or changed to read-only

- `READ-WRITE`, the mailbox was selected read-write, or changed to read-write

- `TRYCREATE`, when append or copy fail because the target mailbox doesn’t exist.

- `UIDNEXT`, `data` is an Integer, the next UID value of the mailbox. See [IMAP4rev1], §2.3.1.1, “Unique Identifier (UID) Message Attribute.

- `UIDVALIDITY`, `data` is an Integer, the UID validity value of the mailbox. See [IMAP4rev1], §2.3.1.1, “Unique Identifier (UID) Message Attribute.

- `UNSEEN`, `data` is an Integer, the number of messages which do not have the `\Seen` flag set. DEPRECATED by IMAP4rev2.

#### `BINARY` extension¶ ↑

See [RFC3516].

- `UNKNOWN-CTE`, with a tagged `NO` response, when the server does not known how to decode a CTE (content-transfer-encoding). `data` is `nil`. See `IMAP#fetch`.

#### `UIDPLUS` extension¶ ↑

See [RFC4315 §3].

- `APPENDUID`, `data` is `UIDPlusData`. See `IMAP#append`.

- `COPYUID`, `data` is `UIDPlusData`. See `IMAP#copy`.

- `UIDNOTSTICKY`, `data` is `nil`. See `IMAP#select`.

#### `SEARCHRES` extension¶ ↑

See [RFC5182].

- `NOTSAVED`, with a tagged `NO` response, when the search result variable is not saved. `data` is `nil`.

#### `RFC5530` Response Codes¶ ↑

See [RFC5530], “IMAP Response Codes” for the definition of the following response codes, which are all machine-readable annotations for the human-readable `ResponseText#text`, and have `nil` `data` of their own:

- `UNAVAILABLE`

- `AUTHENTICATIONFAILED`

- `AUTHORIZATIONFAILED`

- `EXPIRED`

- `PRIVACYREQUIRED`

- `CONTACTADMIN`

- `NOPERM`

- `INUSE`

- `EXPUNGEISSUED`

- `CORRUPTION`

- `SERVERBUG`

- `CLIENTBUG`

- `CANNOT`

- `LIMIT`

- `OVERQUOTA`

- `ALREADYEXISTS`

- `NONEXISTENT`

#### `QRESYNC` extension¶ ↑

See [RFC7162].

- `CLOSED`, returned when the currently selected mailbox is closed implicitly by selecting or examining another mailbox. `data` is `nil`.

#### `IMAP4rev2` Response Codes¶ ↑

See [RFC9051] §7.1, “Server Responses - Status Responses” for full descriptions of IMAP4rev2 response codes. IMAP4rev2 includes all of the response codes listed above (except “UNSEEN”) and adds the following:

- `HASCHILDREN`, with a tagged `NO` response, when a mailbox delete failed because the server doesn’t allow deletion of mailboxes with children. `data` is `nil`.

#### `CONDSTORE` extension¶ ↑

See [RFC7162].

- `NOMODSEQ`, when selecting a mailbox that does not support mod-sequences. `data` is `nil`. See `IMAP#select`.

- `HIGHESTMODSEQ`, `data` is an Integer, the highest mod-sequence value of all messages in the mailbox. See `IMAP#select`.

- `MODIFIED`, `data` is a `SequenceSet`, the messages that have been modified since the `UNCHANGEDSINCE` mod-sequence given to `STORE` or `UID STORE`.

#### `OBJECTID` extension¶ ↑

See [RFC8474].

- `MAILBOXID`, `data` is a string

### Public Instance Methods

data → object or nil click to toggle source

Returns the parsed response code data, e.g: an array of capabilities strings, an array of character set strings, a list of permanent flags, an Integer, etc. The response code determines what form the response code data can take.

    # File net-imap-0.5.4/lib/net/imap/response_data.rb, line 320

name → string click to toggle source

Returns the response code name, such as “ALERT”, “PERMANENTFLAGS”, or “UIDVALIDITY”.

    # File net-imap-0.5.4/lib/net/imap/response_data.rb, line 313