Class: Net::IMAP::ResponseCode

Inherits:
Struct
  • Object
show all
Defined in:
lib/net/imap/response_data.rb

Overview

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 Net::IMAP@System+flags

  • 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 implicity 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

Instance Attribute Summary collapse

Instance Attribute Details

#dataObject

Returns the value of attribute data

Returns:

  • (Object)

    the current value of data



309
310
311
# File 'lib/net/imap/response_data.rb', line 309

def data
  @data
end

#nameObject

Returns the value of attribute name

Returns:

  • (Object)

    the current value of name



309
310
311
# File 'lib/net/imap/response_data.rb', line 309

def name
  @name
end