\Horde_Imap_Client_Base

An abstracted API interface to IMAP backends supporting the IMAP4rev1 protocol (RFC 3501).

Summary

Methods
Properties
Constants
__construct()
shutdown()
__clone()
update()
serialize()
unserialize()
__get()
_setInit()
getParam()
setParam()
getCache()
getIdsOb()
queryCapability()
capability()
noop()
getNamespaces()
isSecureConnection()
alerts()
login()
logout()
sendID()
getID()
setLanguage()
getLanguage()
openMailbox()
currentMailbox()
createMailbox()
deleteMailbox()
renameMailbox()
subscribeMailbox()
listMailboxes()
status()
statusMultiple()
append()
check()
close()
expunge()
search()
setComparator()
getComparator()
thread()
fetch()
vanished()
store()
copy()
setQuota()
getQuota()
getQuotaRoot()
getACL()
setACL()
deleteACL()
listACLRights()
getMyACLRights()
allAclRights()
getMetadata()
setMetadata()
getCacheId()
parseCacheId()
resolveIds()
validSearchCharset()
getSyncToken()
sync()
$cacheFields
$changed
$statuscache
$alerts_ob
$capability
$search_charset
$url
VERSION
CACHE_MODSEQ
CACHE_SEARCH
CACHE_SEARCHID
CACHE_DOWNGRADED
_getEncryptKey()
_initOb()
_initCache()
_capability()
_initCapability()
_noop()
_getNamespaces()
_connect()
_login()
_logout()
_sendID()
_getID()
_setLanguage()
_getLanguage()
_openMailbox()
_changeSelected()
_mailboxOb()
_createMailbox()
_deleteMailbox()
_deleteMailboxPost()
_renameMailbox()
_subscribeMailbox()
_listMailboxes()
_status()
_append()
_check()
_close()
_expunge()
_search()
_setComparator()
_getComparator()
_thread()
_fetch()
_vanished()
_store()
_copy()
_setQuota()
_getQuota()
_getQuotaRoot()
_getACL()
_setACL()
_deleteACL()
_listACLRights()
_getMyACLRights()
_getMetadata()
_setMetadata()
_updateCache()
_moveCache()
_deleteMsgs()
_getSearchCache()
_setSearchCache()
_updateModSeq()
_condstoreSync()
_cacheFields()
_syncStatus()
_getUidByMessageId()
$_alerts
$_cache
$_connection
$_debug
$_defaultPorts
$_fetchDataClass
$_init
$_isAuthenticated
$_mode
$_params
$_selected
$_temp
N/A
No private methods found
No private properties found
N/A

Constants

VERSION

VERSION

Serialized version.

CACHE_MODSEQ

CACHE_MODSEQ

Cache names for miscellaneous data.

CACHE_SEARCHID

CACHE_SEARCHID

CACHE_DOWNGRADED

CACHE_DOWNGRADED

Cache names used exclusively within this class.

@since 2.11.0

Properties

$cacheFields

$cacheFields : array

The list of fetch fields that can be cached, and their cache names.

Type

array

$changed

$changed : boolean

Has the internal configuration changed?

Type

boolean

$statuscache

$statuscache : boolean

Horde_Imap_Client is optimized for short (i.e. 1 seconds) scripts. It makes heavy use of mailbox caching to save on server accesses. This property should be set to false for long-running scripts, or else status() data may not reflect the current state of the mailbox on the server.

Type

boolean

$alerts_ob

$alerts_ob : \Horde_Imap_Client_Base_Alert

The alert reporting object (@since 2.26.0)

Type

\Horde_Imap_Client_Base_Alert

$capability

$capability : \Horde_Imap_Client_Data_Capability

A capability object. (@since 2.24.0)

Type

\Horde_Imap_Client_Data_Capability

$search_charset

$search_charset : \Horde_Imap_Client_Data_SearchCharset

A search charset object. (@since 2.24.0)

Type

\Horde_Imap_Client_Data_SearchCharset

$url

$url : \Horde_Imap_Client_Url

The URL object for the current connection parameters (@since 2.24.0)

Type

\Horde_Imap_Client_Url

$_connection

$_connection : \Horde\Socket\Client

Connection to the IMAP server.

Type

\Horde\Socket\Client

$_defaultPorts

$_defaultPorts : array

The default ports to use for a connection.

First element is non-secure, second is SSL.

Type

array

$_fetchDataClass

$_fetchDataClass : string

The fetch data object type to return.

Type

string

$_init

$_init : array

Cached server data.

Type

array

$_isAuthenticated

$_isAuthenticated : boolean

Is there an active authenticated connection to the IMAP Server?

Type

boolean

$_mode

$_mode : integer

The current mailbox selection mode.

Type

integer

$_params

$_params : array

Hash containing connection parameters.

This hash never changes.

Type

array

$_temp

$_temp : array

Temp array (destroyed at end of process).

Type

array

Methods

__construct()

__construct(array  $params = array()) 

Constructor.

Parameters

array $params

Configuration parameters:

- cache: (array) If set, caches data from fetch(), search(), and
         thread() calls. Requires the horde/Cache package to be
         installed. The array can contain the following keys (see
         Horde_Imap_Client_Cache for default values):
  - backend: [REQUIRED (or cacheob)] (Horde_Imap_Client_Cache_Backend)
             Backend cache driver [@since 2.9.0].
  - fetch_ignore: (array) A list of mailboxes to ignore when storing
                  fetch data.
  - fields: (array) The fetch criteria to cache. If not defined, all
            cacheable data is cached. The following is a list of
            criteria that can be cached:
    - Horde_Imap_Client::FETCH_ENVELOPE
    - Horde_Imap_Client::FETCH_FLAGS
      Only if server supports CONDSTORE extension
    - Horde_Imap_Client::FETCH_HEADERS
      Only for queries that specifically request caching
    - Horde_Imap_Client::FETCH_IMAPDATE
    - Horde_Imap_Client::FETCH_SIZE
    - Horde_Imap_Client::FETCH_STRUCTURE
- capability_ignore: (array) A list of IMAP capabilites to ignore, even
                     if they are supported on the server.
                     DEFAULT: No supported capabilities are ignored.
- comparator: (string) The search comparator to use instead of the
              default server comparator. See setComparator() for
              format.
              DEFAULT: Use the server default
- context: (array) Any context parameters passed to
           stream_create_context(). @since 2.27.0
- debug: (string) If set, will output debug information to the stream
         provided. The value can be any PHP supported wrapper that can
         be opened via PHP's fopen() function.
         DEFAULT: No debug output
- hostspec: (string) The hostname or IP address of the server.
            DEFAULT: 'localhost'
- id: (array) Send ID information to the server (only if server
      supports the ID extension). An array with the keys as the fields
      to send and the values being the associated values. See RFC 2971
      [3.3] for a list of standard field values.
      DEFAULT: No info sent to server
- lang: (array) A list of languages (in priority order) to be used to
        display human readable messages.
        DEFAULT: Messages output in IMAP server default language
- password: (mixed) The user password. Either a string or a
            Horde_Imap_Client_Base_Password object [@since 2.14.0].
- port: (integer) The server port to which we will connect.
        DEFAULT: 143 (imap or imap w/TLS) or 993 (imaps)
- secure: (string) Use SSL or TLS to connect. Values:
  - false (No encryption)
  - 'ssl' (Auto-detect SSL version)
  - 'sslv2' (Force SSL version 3)
  - 'sslv3' (Force SSL version 2)
  - 'tls' (TLS; started via protocol-level negotation over
    unencrypted channel; RECOMMENDED way of initiating secure
    connection)
  - 'tlsv1' (TLS direct version 1.x connection to server) [@since
    2.16.0]
  - true (TLS if available/necessary) [@since 2.15.0]
    DEFAULT: false
- timeout: (integer)  Connection timeout, in seconds.
           DEFAULT: 30 seconds
- username: (string) [REQUIRED] The username.

shutdown()

shutdown() 

Shutdown actions.

__clone()

__clone() 

This object can not be cloned.

update()

update(\SplSubject  $subject) 

Parameters

\SplSubject $subject

serialize()

serialize() 

unserialize()

unserialize(  $data) 

Parameters

$data

__get()

__get(  $name) 

Parameters

$name

_setInit()

_setInit(string  $key = null, mixed  $val = null) 

Set an initialization value.

Parameters

string $key

The initialization key. If null, resets all keys.

mixed $val

The cached value. If null, removes the key.

getParam()

getParam(string  $key) : mixed

Returns a value from the internal params array.

Parameters

string $key

The param key.

Returns

mixed —

The param value, or null if not found.

setParam()

setParam(string  $key, mixed  $val) 

Sets a configuration parameter value.

Parameters

string $key

The param key.

mixed $val

The param value.

getCache()

getCache() : mixed

Returns the Horde_Imap_Client_Cache object used, if available.

Returns

mixed —

Either the cache object or null.

getIdsOb()

getIdsOb(mixed  $ids = null, boolean  $sequence = false) : \Horde_Imap_Client_Ids

Returns the correct IDs object for use with this driver.

Parameters

mixed $ids

Either self::ALL, self::SEARCH_RES, self::LARGEST, Horde_Imap_Client_Ids object, array, or sequence string.

boolean $sequence

Are $ids message sequence numbers?

Returns

\Horde_Imap_Client_Ids

The IDs object.

queryCapability()

queryCapability(string  $capability) : mixed

Returns whether the IMAP server supports the given capability (See RFC 3501 [6.1.1]).

Parameters

string $capability

The capability string to query.

Returns

mixed —

True if the server supports the queried capability, false if it doesn't, or an array if the capability can contain multiple values.

capability()

capability() : array

Get CAPABILITY information from the IMAP server.

Throws

\Horde_Imap_Client_Exception

Returns

array —

The capability array.

noop()

noop() 

Send a NOOP command (RFC 3501 [6.1.2]).

Throws

\Horde_Imap_Client_Exception

getNamespaces()

getNamespaces(array  $additional = array(), array  $opts = array()) : mixed

Get the NAMESPACE information from the IMAP server (RFC 2342).

Parameters

array $additional

If the server supports namespaces, any additional namespaces to add to the namespace list that are not broadcast by the server. The namespaces must be UTF-8 strings.

array $opts

Additional options:

  • ob_return: (boolean) If true, returns a Horde_Imap_Client_Namespace_List object instead of an array.

Throws

\Horde_Imap_Client_Exception

Returns

mixed —

A Horde_Imap_Client_Namespace_List object if 'ob_return', is true. Otherwise, an array of namespace objects (@deprecated) with the name as the key (UTF-8) and the following values:

 - delimiter: (string) The namespace delimiter.
 - hidden: (boolean) Is this a hidden namespace?
 - name: (string) The namespace name (UTF-8).
 - translation: (string) Returns the translated name of the namespace
                (UTF-8). Requires RFC 5255 and a previous call to
                setLanguage().
 - type: (integer) The namespace type. Either:
   - Horde_Imap_Client::NS_PERSONAL
   - Horde_Imap_Client::NS_OTHER
   - Horde_Imap_Client::NS_SHARED

isSecureConnection()

isSecureConnection() : boolean

Display if connection to the server has been secured via TLS or SSL.

Returns

boolean —

True if the IMAP connection is secured.

alerts()

alerts() : array

Return a list of alerts that MUST be presented to the user (RFC 3501 [7.1]).

Returns

array —

An array of alert messages.

login()

login() 

Login to the IMAP server.

Throws

\Horde_Imap_Client_Exception

logout()

logout() 

Logout from the IMAP server (see RFC 3501 [6.1.3]).

sendID()

sendID(array  $info = null) 

Send ID information to the IMAP server (RFC 2971).

Parameters

array $info

Overrides the value of the 'id' param and sends this information instead.

Throws

\Horde_Imap_Client_Exception
\Horde_Imap_Client_Exception_NoSupportExtension

getID()

getID() : array

Return ID information from the IMAP server (RFC 2971).

Throws

\Horde_Imap_Client_Exception
\Horde_Imap_Client_Exception_NoSupportExtension

Returns

array —

An array of information returned, with the keys as the 'field' and the values as the 'value'.

setLanguage()

setLanguage(array  $langs = null) : string

Sets the preferred language for server response messages (RFC 5255).

Parameters

array $langs

Overrides the value of the 'lang' param and sends this list of preferred languages instead. The special string 'i-default' can be used to restore the language to the server default.

Throws

\Horde_Imap_Client_Exception

Returns

string —

The language accepted by the server, or null if the default language is used.

getLanguage()

getLanguage(array  $list = false) : mixed

Gets the preferred language for server response messages (RFC 5255).

Parameters

array $list

If true, return the list of available languages.

Throws

\Horde_Imap_Client_Exception

Returns

mixed —

If $list is true, the list of languages available on the server (may be empty). If false, the language used by the server, or null if the default language is used.

openMailbox()

openMailbox(mixed  $mailbox, integer  $mode = \Horde_Imap_Client::OPEN_AUTO) 

Open a mailbox.

Parameters

mixed $mailbox

The mailbox to open. Either a Horde_Imap_Client_Mailbox object or a string (UTF-8).

integer $mode

The access mode. Either

  • Horde_Imap_Client::OPEN_READONLY
  • Horde_Imap_Client::OPEN_READWRITE
  • Horde_Imap_Client::OPEN_AUTO

Throws

\Horde_Imap_Client_Exception

currentMailbox()

currentMailbox() : mixed

Return the currently opened mailbox and access mode.

Throws

\Horde_Imap_Client_Exception

Returns

mixed —

Null if no mailbox selected, or an array with two elements:

  • mailbox: (Horde_Imap_Client_Mailbox) The mailbox object.
  • mode: (integer) Current mode.

createMailbox()

createMailbox(mixed  $mailbox, array  $opts = array()) 

Create a mailbox.

Parameters

mixed $mailbox

The mailbox to create. Either a Horde_Imap_Client_Mailbox object or a string (UTF-8).

array $opts

Additional options:

  • special_use: (array) An array of special-use flags to mark the mailbox with. The server MUST support RFC 6154.

Throws

\Horde_Imap_Client_Exception

deleteMailbox()

deleteMailbox(mixed  $mailbox) 

Delete a mailbox.

Parameters

mixed $mailbox

The mailbox to delete. Either a Horde_Imap_Client_Mailbox object or a string (UTF-8).

Throws

\Horde_Imap_Client_Exception

renameMailbox()

renameMailbox(mixed  $old, mixed  $new) 

Rename a mailbox.

Parameters

mixed $old

The old mailbox name. Either a Horde_Imap_Client_Mailbox object or a string (UTF-8).

mixed $new

The new mailbox name. Either a Horde_Imap_Client_Mailbox object or a string (UTF-8).

Throws

\Horde_Imap_Client_Exception

subscribeMailbox()

subscribeMailbox(mixed  $mailbox, boolean  $subscribe = true) 

Manage subscription status for a mailbox.

Parameters

mixed $mailbox

The mailbox to [un]subscribe to. Either a Horde_Imap_Client_Mailbox object or a string (UTF-8).

boolean $subscribe

True to subscribe, false to unsubscribe.

Throws

\Horde_Imap_Client_Exception

listMailboxes()

listMailboxes(mixed  $pattern, integer  $mode = \Horde_Imap_Client::MBOX_ALL, array  $options = array()) : array

Obtain a list of mailboxes matching a pattern.

Parameters

mixed $pattern

The mailbox search pattern(s) (see RFC 3501 [6.3.8] for the format). A UTF-8 string or an array of strings. If a Horde_Imap_Client_Mailbox object is given, it is escaped (i.e. wildcard patterns are converted to return the miminal number of matches possible).

integer $mode

Which mailboxes to return. Either:

  • Horde_Imap_Client::MBOX_SUBSCRIBED Return subscribed mailboxes.
  • Horde_Imap_Client::MBOX_SUBSCRIBED_EXISTS Return subscribed mailboxes that exist on the server.
  • Horde_Imap_Client::MBOX_UNSUBSCRIBED Return unsubscribed mailboxes.
  • Horde_Imap_Client::MBOX_ALL Return all mailboxes regardless of subscription status.
  • Horde_Imap_Client::MBOX_ALL_SUBSCRIBED (@since 2.23.0) Return all mailboxes regardless of subscription status, and ensure the '\subscribed' attribute is set if mailbox is subscribed (implies 'attributes' option is true).
array $options

Additional options:

  - attributes: (boolean) If true, return attribute information under
                the 'attributes' key.
                DEFAULT: Do not return this information.
  - children: (boolean) Tell server to return children attribute
              information (\HasChildren, \HasNoChildren). Requires the
              LIST-EXTENDED extension to guarantee this information is
              returned. Server MAY return this attribute without this
              option, or if the CHILDREN extension is available, but it
              is not guaranteed.
              DEFAULT: false
  - flat: (boolean) If true, return a flat list of mailbox names only.
          Overrides the 'attributes' option.
          DEFAULT: Do not return flat list.
  - recursivematch: (boolean) Force the server to return information
                    about parent mailboxes that don't match other
                    selection options, but have some sub-mailboxes that
                    do. Information about children is returned in the
                    CHILDINFO extended data item ('extended'). Requires
                    the LIST-EXTENDED extension.
                    DEFAULT: false
  - remote: (boolean) Tell server to return mailboxes that reside on
            another server. Requires the LIST-EXTENDED extension.
            DEFAULT: false
  - special_use: (boolean) Tell server to return special-use attribute
                 information (see Horde_Imap_Client SPECIALUSE_*
                 constants). Server must support the SPECIAL-USE return
                 option for this setting to have any effect.
                 DEFAULT: false
  - status: (integer) Tell server to return status information. The
            value is a bitmask that may contain any of:
    - Horde_Imap_Client::STATUS_MESSAGES
    - Horde_Imap_Client::STATUS_RECENT
    - Horde_Imap_Client::STATUS_UIDNEXT
    - Horde_Imap_Client::STATUS_UIDVALIDITY
    - Horde_Imap_Client::STATUS_UNSEEN
    - Horde_Imap_Client::STATUS_HIGHESTMODSEQ
    DEFAULT: 0
  - sort: (boolean) If true, return a sorted list of mailboxes?
          DEFAULT: Do not sort the list.
  - sort_delimiter: (string) If 'sort' is true, this is the delimiter
                    used to sort the mailboxes.
                    DEFAULT: '.'

Throws

\Horde_Imap_Client_Exception

Returns

array —

If 'flat' option is true, the array values are a list of Horde_Imap_Client_Mailbox objects. Otherwise, the keys are UTF-8 mailbox names and the values are arrays with these keys:

  • attributes: (array) List of lower-cased attributes [only if 'attributes' option is true].
  • delimiter: (string) The delimiter for the mailbox.
  • extended: (TODO) TODO [only if 'recursivematch' option is true and LIST-EXTENDED extension is supported on the server].
  • mailbox: (Horde_Imap_Client_Mailbox) The mailbox object.
  • status: (array) See status() [only if 'status' option is true].

status()

status(mixed  $mailbox, integer  $flags = \Horde_Imap_Client::STATUS_ALL, array  $opts = array()) : array

Obtain status information for a mailbox.

Parameters

mixed $mailbox

The mailbox(es) to query. Either a Horde_Imap_Client_Mailbox object, a string (UTF-8), or an array of objects/strings (since 2.10.0).

integer $flags

A bitmask of information requested from the server. Allowed flags:

  - Horde_Imap_Client::STATUS_MESSAGES
    Return key: messages
    Return format: (integer) The number of messages in the mailbox.

  - Horde_Imap_Client::STATUS_RECENT
    Return key: recent
    Return format: (integer) The number of messages with the \Recent
                   flag set as currently reported in the mailbox

  - Horde_Imap_Client::STATUS_RECENT_TOTAL
    Return key: recent_total
    Return format: (integer) The number of messages with the \Recent
                   flag set. This returns the total number of messages
                   that have been marked as recent in this mailbox
                   since the PHP process began. (since 2.12.0)

  - Horde_Imap_Client::STATUS_UIDNEXT
    Return key: uidnext
    Return format: (integer) The next UID to be assigned in the
                   mailbox. Only returned if the server automatically
                   provides the data.

  - Horde_Imap_Client::STATUS_UIDNEXT_FORCE
    Return key: uidnext
    Return format: (integer) The next UID to be assigned in the
                   mailbox. This option will always determine this
                   value, even if the server does not automatically
                   provide this data.

  - Horde_Imap_Client::STATUS_UIDVALIDITY
    Return key: uidvalidity
    Return format: (integer) The unique identifier validity of the
                   mailbox.

  - Horde_Imap_Client::STATUS_UNSEEN
    Return key: unseen
    Return format: (integer) The number of messages which do not have
                   the \Seen flag set.

  - Horde_Imap_Client::STATUS_FIRSTUNSEEN
    Return key: firstunseen
    Return format: (integer) The sequence number of the first unseen
                   message in the mailbox.

  - Horde_Imap_Client::STATUS_FLAGS
    Return key: flags
    Return format: (array) The list of defined flags in the mailbox
                   (all flags are in lowercase).

  - Horde_Imap_Client::STATUS_PERMFLAGS
    Return key: permflags
    Return format: (array) The list of flags that a client can change
                   permanently (all flags are in lowercase).

  - Horde_Imap_Client::STATUS_HIGHESTMODSEQ
    Return key: highestmodseq
    Return format: (integer) If the server supports the CONDSTORE
                   IMAP extension, this will be the highest
                   mod-sequence value of all messages in the mailbox.
                   Else 0 if CONDSTORE not available or the mailbox
                   does not support mod-sequences.

  - Horde_Imap_Client::STATUS_SYNCMODSEQ
    Return key: syncmodseq
    Return format: (integer) If caching, and the server supports the
                   CONDSTORE IMAP extension, this is the cached
                   mod-sequence value of the mailbox when it was opened
                   for the first time in this access. Will be null if
                   not caching, CONDSTORE not available, or the mailbox
                   does not support mod-sequences.

  - Horde_Imap_Client::STATUS_SYNCFLAGUIDS
    Return key: syncflaguids
    Return format: (Horde_Imap_Client_Ids) If caching, the server
                   supports the CONDSTORE IMAP extension, and the
                   mailbox contained cached data when opened for the
                   first time in this access, this is the list of UIDs
                   in which flags have changed since STATUS_SYNCMODSEQ.

  - Horde_Imap_Client::STATUS_SYNCVANISHED
    Return key: syncvanished
    Return format: (Horde_Imap_Client_Ids) If caching, the server
                   supports the CONDSTORE IMAP extension, and the
                   mailbox contained cached data when opened for the
                   first time in this access, this is the list of UIDs
                   which have been deleted since STATUS_SYNCMODSEQ.

  - Horde_Imap_Client::STATUS_UIDNOTSTICKY
    Return key: uidnotsticky
    Return format: (boolean) If the server supports the UIDPLUS IMAP
                   extension, and the queried mailbox does not support
                   persistent UIDs, this value will be true. In all
                   other cases, this value will be false.

  - Horde_Imap_Client::STATUS_FORCE_REFRESH
    Normally, the status information will be cached for a given
    mailbox. Since most PHP requests are generally less than a second,
    this is fine. However, if your script is long running, the status
    information may not be up-to-date. Specifying this flag will ensure
    that the server is always polled for the current mailbox status
    before results are returned. (since 2.14.0)

  - Horde_Imap_Client::STATUS_ALL (DEFAULT)
    Shortcut to return 'messages', 'recent', 'uidnext', 'uidvalidity',
    and 'unseen' values.
array $opts

Additional options:

  - sort: (boolean) If true, sort the list of mailboxes? (since 2.10.0)
          DEFAULT: Do not sort the list.
  - sort_delimiter: (string) If 'sort' is true, this is the delimiter
                    used to sort the mailboxes. (since 2.10.0)
                    DEFAULT: '.'

Throws

\Horde_Imap_Client_Exception

Returns

array —

If $mailbox contains multiple mailboxes, an array with keys being the UTF-8 mailbox name and values as arrays containing the requested keys (see above). Otherwise, an array with keys as the requested keys (see above) and values as the key data.

statusMultiple()

statusMultiple(array  $mailboxes, integer  $flags = \Horde_Imap_Client::STATUS_ALL, array  $opts = array()) : array

Perform a STATUS call on multiple mailboxes at the same time.

This method leverages the LIST-EXTENDED and LIST-STATUS extensions on the IMAP server to improve the efficiency of this operation.

Parameters

array $mailboxes

The mailboxes to query. Either Horde_Imap_Client_Mailbox objects, strings (UTF-8), or a combination of the two.

integer $flags

See status().

array $opts

Additional options:

  • sort: (boolean) If true, sort the list of mailboxes? DEFAULT: Do not sort the list.
  • sort_delimiter: (string) If 'sort' is true, this is the delimiter used to sort the mailboxes. DEFAULT: '.'

Returns

array —

An array with the keys as the mailbox names (UTF-8) and the values as arrays with the requested keys (from the mask given in $flags).

append()

append(mixed  $mailbox, array  $data, array  $options = array()) : \Horde_Imap_Client_Ids

Append message(s) to a mailbox.

Parameters

mixed $mailbox

The mailbox to append the message(s) to. Either a Horde_Imap_Client_Mailbox object or a string (UTF-8).

array $data

The message data to append, along with additional options. An array of arrays with each embedded array having the following entries:

  - data: (mixed) The data to append. If a string or a stream resource,
          this will be used as the entire contents of a single message.
          If an array, will catenate all given parts into a single
          message. This array contains one or more arrays with
          two keys:
    - t: (string) Either 'url' or 'text'.
    - v: (mixed) If 't' is 'url', this is the IMAP URL to the message
         part to append. If 't' is 'text', this is either a string or
         resource representation of the message part data.
    DEFAULT: NONE (entry is MANDATORY)
  - flags: (array) An array of flags/keywords to set on the appended
           message.
           DEFAULT: Only the \Recent flag is set.
  - internaldate: (DateTime) The internaldate to set for the appended
                  message.
                  DEFAULT: internaldate will be the same date as when
                  the message was appended.
array $options

Additonal options:

  - create: (boolean) Try to create $mailbox if it does not exist?
            DEFAULT: No.

Throws

\Horde_Imap_Client_Exception

Returns

\Horde_Imap_Client_Ids

The UIDs of the appended messages.

check()

check() 

Request a checkpoint of the currently selected mailbox (RFC 3501 [6.4.1]).

Throws

\Horde_Imap_Client_Exception

close()

close(array  $options = array()) 

Close the connection to the currently selected mailbox, optionally expunging all deleted messages (RFC 3501 [6.4.2]).

Parameters

array $options

Additional options:

  • expunge: (boolean) Expunge all messages flagged as deleted? DEFAULT: No

Throws

\Horde_Imap_Client_Exception

expunge()

expunge(mixed  $mailbox, array  $options = array()) : \Horde_Imap_Client_Ids

Expunge deleted messages from the given mailbox.

Parameters

mixed $mailbox

The mailbox to expunge. Either a Horde_Imap_Client_Mailbox object or a string (UTF-8).

array $options

Additional options:

  • delete: (boolean) If true, will flag all messages in 'ids' as deleted (since 2.10.0). DEFAULT: false
  • ids: (Horde_Imap_Client_Ids) A list of messages to expunge. These messages must already be flagged as deleted (unless 'delete' is true). DEFAULT: All messages marked as deleted will be expunged.
  • list: (boolean) If true, returns the list of expunged messages (UIDs only). DEFAULT: false

Throws

\Horde_Imap_Client_Exception

Returns

\Horde_Imap_Client_Ids

If 'list' option is true, returns the UID list of expunged messages.

search()

search(mixed  $mailbox, \Horde_Imap_Client_Search_Query  $query = null, array  $options = array()) : array

Search a mailbox.

Parameters

mixed $mailbox

The mailbox to search. Either a Horde_Imap_Client_Mailbox object or a string (UTF-8).

\Horde_Imap_Client_Search_Query $query

The search query. Defaults to an ALL search.

array $options

Additional options:

  - nocache: (boolean) Don't cache the results.
             DEFAULT: false (results cached, if possible)
  - partial: (mixed) The range of results to return (message sequence
             numbers) Only a single range is supported (represented by
             the minimum and maximum values contained in the range
             given).
             DEFAULT: All messages are returned.
  - results: (array) The data to return. Consists of zero or more of
             the following flags:
    - Horde_Imap_Client::SEARCH_RESULTS_COUNT
    - Horde_Imap_Client::SEARCH_RESULTS_MATCH (DEFAULT)
    - Horde_Imap_Client::SEARCH_RESULTS_MAX
    - Horde_Imap_Client::SEARCH_RESULTS_MIN
    - Horde_Imap_Client::SEARCH_RESULTS_SAVE
    - Horde_Imap_Client::SEARCH_RESULTS_RELEVANCY
  - sequence: (boolean) If true, returns an array of sequence numbers.
              DEFAULT: Returns an array of UIDs
  - sort: (array) Sort the returned list of messages. Multiple sort
          criteria can be specified. Any sort criteria can be sorted in
          reverse order (instead of the default ascending order) by
          adding a Horde_Imap_Client::SORT_REVERSE element to the array
          directly before adding the sort element. The following sort
          criteria are available:
    - Horde_Imap_Client::SORT_ARRIVAL
    - Horde_Imap_Client::SORT_CC
    - Horde_Imap_Client::SORT_DATE
    - Horde_Imap_Client::SORT_DISPLAYFROM
      On servers that don't support SORT=DISPLAY, this criteria will
      fallback to doing client-side sorting.
    - Horde_Imap_Client::SORT_DISPLAYFROM_FALLBACK
      On servers that don't support SORT=DISPLAY, this criteria will
      fallback to Horde_Imap_Client::SORT_FROM [since 2.4.0].
    - Horde_Imap_Client::SORT_DISPLAYTO
      On servers that don't support SORT=DISPLAY, this criteria will
      fallback to doing client-side sorting.
    - Horde_Imap_Client::SORT_DISPLAYTO_FALLBACK
      On servers that don't support SORT=DISPLAY, this criteria will
      fallback to Horde_Imap_Client::SORT_TO [since 2.4.0].
    - Horde_Imap_Client::SORT_FROM
    - Horde_Imap_Client::SORT_SEQUENCE
    - Horde_Imap_Client::SORT_SIZE
    - Horde_Imap_Client::SORT_SUBJECT
    - Horde_Imap_Client::SORT_TO

    [On servers that support SEARCH=FUZZY, this criteria is also
    available:]
    - Horde_Imap_Client::SORT_RELEVANCY

Throws

\Horde_Imap_Client_Exception

Returns

array —

An array with the following keys:

  - count: (integer) The number of messages that match the search
           criteria. Always returned.
  - match: (Horde_Imap_Client_Ids) The IDs that match $criteria, sorted
           if the 'sort' modifier was set. Returned if
           Horde_Imap_Client::SEARCH_RESULTS_MATCH is set.
  - max: (integer) The UID (default) or message sequence number (if
         'sequence' is true) of the highest message that satisifies
         $criteria. Returns null if no matches found. Returned if
         Horde_Imap_Client::SEARCH_RESULTS_MAX is set.
  - min: (integer) The UID (default) or message sequence number (if
         'sequence' is true) of the lowest message that satisifies
         $criteria. Returns null if no matches found. Returned if
         Horde_Imap_Client::SEARCH_RESULTS_MIN is set.
  - modseq: (integer) The highest mod-sequence for all messages being
           returned. Returned if 'sort' is false, the search query
           includes a MODSEQ command, and the server supports the
           CONDSTORE IMAP extension.
  - relevancy: (array) The list of relevancy scores. Returned if
               Horde_Imap_Client::SEARCH_RESULTS_RELEVANCY is set and
               the server supports FUZZY search matching.
  - save: (boolean) Whether the search results were saved. Returned if
          Horde_Imap_Client::SEARCH_RESULTS_SAVE is set.

setComparator()

setComparator(string  $comparator = null) 

Set the comparator to use for searching/sorting (RFC 5255).

Parameters

string $comparator

The comparator string (see RFC 4790 [3.1] - "collation-id" - for format). The reserved string 'default' can be used to select the default comparator.

Throws

\Horde_Imap_Client_Exception
\Horde_Imap_Client_Exception_NoSupportExtension

getComparator()

getComparator() : mixed

Get the comparator used for searching/sorting (RFC 5255).

Throws

\Horde_Imap_Client_Exception

Returns

mixed —

Null if the default comparator is being used, or an array of comparator information (see RFC 5255 [4.8]).

thread()

thread(mixed  $mailbox, array  $options = array()) : \Horde_Imap_Client_Data_Thread

Thread sort a given list of messages (RFC 5256).

Parameters

mixed $mailbox

The mailbox to query. Either a Horde_Imap_Client_Mailbox object or a string (UTF-8).

array $options

Additional options:

  - criteria: (mixed) The following thread criteria are available:
    - Horde_Imap_Client::THREAD_ORDEREDSUBJECT
    - Horde_Imap_Client::THREAD_REFERENCES
    - Horde_Imap_Client::THREAD_REFS
      Other algorithms can be explicitly specified by passing the IMAP
      thread algorithm in as a string value.
    DEFAULT: Horde_Imap_Client::THREAD_ORDEREDSUBJECT
  - search: (Horde_Imap_Client_Search_Query) The search query.
            DEFAULT: All messages in mailbox included in thread sort.
  - sequence: (boolean) If true, each message is stored and referred to
              by its message sequence number.
              DEFAULT: Stored/referred to by UID.

Throws

\Horde_Imap_Client_Exception

Returns

\Horde_Imap_Client_Data_Thread

A thread data object.

fetch()

fetch(mixed  $mailbox, \Horde_Imap_Client_Fetch_Query  $query, array  $options = array()) : \Horde_Imap_Client_Fetch_Results

Fetch message data (see RFC 3501 [6.4.5]).

Parameters

mixed $mailbox

The mailbox to search. Either a Horde_Imap_Client_Mailbox object or a string (UTF-8).

\Horde_Imap_Client_Fetch_Query $query

Fetch query object.

array $options

Additional options:

  • changedsince: (integer) Only return messages that have a mod-sequence larger than this value. This option requires the CONDSTORE IMAP extension (if not present, this value is ignored). Additionally, the mailbox must support mod-sequences or an exception will be thrown. If valid, this option implicity adds the mod-sequence fetch criteria to the fetch command. DEFAULT: Mod-sequence values are ignored.
  • exists: (boolean) Ensure that all ids returned exist on the server. If false, the list of ids returned in the results object is not guaranteed to reflect the current state of the remote mailbox. DEFAULT: false
  • ids: (Horde_Imap_Client_Ids) A list of messages to fetch data from. DEFAULT: All messages in $mailbox will be fetched.
  • nocache: (boolean) If true, will not cache the results (previously cached data will still be used to generate results) [since 2.8.0]. DEFAULT: false

Throws

\Horde_Imap_Client_Exception
\Horde_Imap_Client_Exception_NoSupportExtension

Returns

\Horde_Imap_Client_Fetch_Results

A results object.

vanished()

vanished(mixed  $mailbox, integer  $modseq, array  $opts = array()) : \Horde_Imap_Client_Ids

Get the list of vanished messages (UIDs that have been expunged since a given mod-sequence value).

Parameters

mixed $mailbox

The mailbox to query. Either a Horde_Imap_Client_Mailbox object or a string (UTF-8).

integer $modseq

Search for expunged messages after this mod-sequence value.

array $opts

Additional options:

  • ids: (Horde_Imap_Client_Ids) Restrict to these UIDs. DEFAULT: Returns full list of UIDs vanished (QRESYNC only). This option is REQUIRED for non-QRESYNC servers or else an empty list will be returned.

Throws

\Horde_Imap_Client_NoSupportExtension

Returns

\Horde_Imap_Client_Ids

List of UIDs that have vanished.

store()

store(mixed  $mailbox, array  $options = array()) : \Horde_Imap_Client_Ids

Store message flag data (see RFC 3501 [6.4.6]).

Parameters

mixed $mailbox

The mailbox containing the messages to modify. Either a Horde_Imap_Client_Mailbox object or a string (UTF-8).

array $options

Additional options:

  • add: (array) An array of flags to add. DEFAULT: No flags added.
  • ids: (Horde_Imap_Client_Ids) The list of messages to modify. DEFAULT: All messages in $mailbox will be modified.
  • remove: (array) An array of flags to remove. DEFAULT: No flags removed.
  • replace: (array) Replace the current flags with this set of flags. Overrides both the 'add' and 'remove' options. DEFAULT: No replace is performed.
  • unchangedsince: (integer) Only changes flags if the mod-sequence ID of the message is equal or less than this value. Requires the CONDSTORE IMAP extension on the server. Also requires the mailbox to support mod-sequences. Will throw an exception if either condition is not met. DEFAULT: mod-sequence is ignored when applying changes

Throws

\Horde_Imap_Client_Exception
\Horde_Imap_Client_Exception_NoSupportExtension

Returns

\Horde_Imap_Client_Ids

A Horde_Imap_Client_Ids object containing the list of IDs that failed the 'unchangedsince' test.

copy()

copy(mixed  $source, mixed  $dest, array  $options = array()) : mixed

Copy messages to another mailbox.

Parameters

mixed $source

The source mailbox. Either a Horde_Imap_Client_Mailbox object or a string (UTF-8).

mixed $dest

The destination mailbox. Either a Horde_Imap_Client_Mailbox object or a string (UTF-8).

array $options

Additional options:

  • create: (boolean) Try to create $dest if it does not exist? DEFAULT: No.
  • force_map: (boolean) Forces the array mapping to always be returned. [@since 2.19.0]
  • ids: (Horde_Imap_Client_Ids) The list of messages to copy. DEFAULT: All messages in $mailbox will be copied.
  • move: (boolean) If true, delete the original messages. DEFAULT: Original messages are not deleted.

Throws

\Horde_Imap_Client_Exception
\Horde_Imap_Client_Exception_NoSupportExtension

Returns

mixed —

An array mapping old UIDs (keys) to new UIDs (values) on success (only guaranteed if 'force_map' is true) or true.

setQuota()

setQuota(mixed  $root, array  $resources = array()) 

Set quota limits. The server must support the IMAP QUOTA extension (RFC 2087).

Parameters

mixed $root

The quota root. Either a Horde_Imap_Client_Mailbox object or a string (UTF-8).

array $resources

The resource values to set. Keys are the resource atom name; value is the resource value.

Throws

\Horde_Imap_Client_Exception
\Horde_Imap_Client_Exception_NoSupportExtension

getQuota()

getQuota(mixed  $root) : mixed

Get quota limits. The server must support the IMAP QUOTA extension (RFC 2087).

Parameters

mixed $root

The quota root. Either a Horde_Imap_Client_Mailbox object or a string (UTF-8).

Throws

\Horde_Imap_Client_Exception
\Horde_Imap_Client_Exception_NoSupportExtension

Returns

mixed —

An array with resource keys. Each key holds an array with 2 values: 'limit' and 'usage'.

getQuotaRoot()

getQuotaRoot(mixed  $mailbox) : mixed

Get quota limits for a mailbox. The server must support the IMAP QUOTA extension (RFC 2087).

Parameters

mixed $mailbox

A mailbox. Either a Horde_Imap_Client_Mailbox object or a string (UTF-8).

Throws

\Horde_Imap_Client_Exception
\Horde_Imap_Client_Exception_NoSupportExtension

Returns

mixed —

An array with the keys being the quota roots. Each key holds an array with resource keys: each of these keys holds an array with 2 values: 'limit' and 'usage'.

getACL()

getACL(mixed  $mailbox) : array

Get the ACL rights for a given mailbox. The server must support the IMAP ACL extension (RFC 2086/4314).

Parameters

mixed $mailbox

A mailbox. Either a Horde_Imap_Client_Mailbox object or a string (UTF-8).

Throws

\Horde_Imap_Client_Exception

Returns

array —

An array with identifiers as the keys and Horde_Imap_Client_Data_Acl objects as the values.

setACL()

setACL(mixed  $mailbox, string  $identifier, array  $options) 

Set ACL rights for a given mailbox/identifier.

Parameters

mixed $mailbox

A mailbox. Either a Horde_Imap_Client_Mailbox object or a string (UTF-8).

string $identifier

The identifier to alter (UTF-8).

array $options

Additional options:

  • rights: (string) The rights to alter or set.
  • action: (string, optional) If 'add' or 'remove', adds or removes the specified rights. Sets the rights otherwise.

Throws

\Horde_Imap_Client_Exception
\Horde_Imap_Client_Exception_NoSupportExtension

deleteACL()

deleteACL(mixed  $mailbox, string  $identifier) 

Deletes ACL rights for a given mailbox/identifier.

Parameters

mixed $mailbox

A mailbox. Either a Horde_Imap_Client_Mailbox object or a string (UTF-8).

string $identifier

The identifier to delete (UTF-8).

Throws

\Horde_Imap_Client_Exception
\Horde_Imap_Client_Exception_NoSupportExtension

listACLRights()

listACLRights(mixed  $mailbox, string  $identifier) : \Horde_Imap_Client_Data_AclRights

List the ACL rights for a given mailbox/identifier. The server must support the IMAP ACL extension (RFC 2086/4314).

Parameters

mixed $mailbox

A mailbox. Either a Horde_Imap_Client_Mailbox object or a string (UTF-8).

string $identifier

The identifier to query (UTF-8).

Throws

\Horde_Imap_Client_Exception
\Horde_Imap_Client_Exception_NoSupportExtension

Returns

\Horde_Imap_Client_Data_AclRights

An ACL data rights object.

getMyACLRights()

getMyACLRights(mixed  $mailbox) : \Horde_Imap_Client_Data_Acl

Get the ACL rights for the current user for a given mailbox. The server must support the IMAP ACL extension (RFC 2086/4314).

Parameters

mixed $mailbox

A mailbox. Either a Horde_Imap_Client_Mailbox object or a string (UTF-8).

Throws

\Horde_Imap_Client_Exception
\Horde_Imap_Client_Exception_NoSupportExtension

Returns

\Horde_Imap_Client_Data_Acl

An ACL data object.

allAclRights()

allAclRights() : array

Return master list of ACL rights available on the server.

Returns

array —

A list of ACL rights.

getMetadata()

getMetadata(mixed  $mailbox, array  $entries, array  $options = array()) : array

Get metadata for a given mailbox. The server must support either the IMAP METADATA extension (RFC 5464) or the ANNOTATEMORE extension (http://ietfreport.isoc.org/idref/draft-daboo-imap-annotatemore/).

Parameters

mixed $mailbox

A mailbox. Either a Horde_Imap_Client_Mailbox object or a string (UTF-8).

array $entries

The entries to fetch (UTF-8 strings).

array $options

Additional options:

  • depth: (string) Either "0", "1" or "infinity". Returns only the given value (0), only values one level below the specified value (1) or all entries below the specified value (infinity).
  • maxsize: (integer) The maximal size the returned values may have. DEFAULT: No maximal size.

Throws

\Horde_Imap_Client_Exception

Returns

array —

An array with metadata names as the keys and metadata values as the values. If 'maxsize' is set, and entries exist on the server larger than this size, the size will be returned in the key '*longentries'.

setMetadata()

setMetadata(mixed  $mailbox, array  $data) 

Set metadata for a given mailbox/identifier.

Parameters

mixed $mailbox

A mailbox. Either a Horde_Imap_Client_Mailbox object or a string (UTF-8). If empty, sets a server annotation.

array $data

A set of data values. The metadata values corresponding to the keys of the array will be set to the values in the array.

Throws

\Horde_Imap_Client_Exception

getCacheId()

getCacheId(mixed  $mailbox, array  $addl = array()) : string

Returns a unique identifier for the current mailbox status.

Parameters

mixed $mailbox

A mailbox. Either a Horde_Imap_Client_Mailbox object or a string (UTF-8).

array $addl

Additional cache info to add to the cache ID string.

Throws

\Horde_Imap_Client_Exception

Returns

string —

The cache ID string, which will change when the composition of the mailbox changes. The uidvalidity will always be the first element, and will be delimited by the '|' character.

parseCacheId()

parseCacheId(string  $id) : array

Parses a cacheID created by getCacheId().

Parameters

string $id

The cache ID.

Returns

array —

An array with the following information:

  • highestmodseq: (integer)
  • messages: (integer)
  • uidnext: (integer)
  • uidvalidity: (integer) Always present

resolveIds()

resolveIds(\Horde_Imap_Client_Mailbox  $mailbox, \Horde_Imap_Client_Ids  $ids, integer  $convert) : \Horde_Imap_Client_Ids

Resolves an IDs object into a list of IDs.

Parameters

\Horde_Imap_Client_Mailbox $mailbox

The mailbox.

\Horde_Imap_Client_Ids $ids

The Ids object.

integer $convert

Convert to UIDs?

  • 0: No
  • 1: Only if $ids is not already a UIDs object
  • 2: Always

Returns

\Horde_Imap_Client_Ids

The list of IDs.

validSearchCharset()

validSearchCharset(string  $charset) : boolean

Determines if the given charset is valid for search-related queries.

This check pertains just to the basic IMAP SEARCH command.

Parameters

string $charset

The query charset.

Returns

boolean —

True if server supports this charset.

getSyncToken()

getSyncToken(mixed  $mailbox) : string

Returns a unique token for the current mailbox synchronization status.

Parameters

mixed $mailbox

A mailbox. Either a Horde_Imap_Client_Mailbox object or a string (UTF-8).

Throws

\Horde_Imap_Client_Exception

Returns

string —

The sync token.

sync()

sync(mixed  $mailbox, string  $token, array  $opts = array()) : \Horde_Imap_Client_Data_Sync

Synchronize a mailbox from a sync token.

Parameters

mixed $mailbox

A mailbox. Either a Horde_Imap_Client_Mailbox object or a string (UTF-8).

string $token

A sync token generated by getSyncToken().

array $opts

Additional options:

  • criteria: (integer) Mask of Horde_ImapClient::SYNC* criteria to return. Defaults to SYNC_ALL.
  • ids: (Horde_Imap_Client_Ids) A cached list of UIDs. Unless QRESYNC is available on the server, failure to specify this option means SYNC_VANISHEDUIDS information cannot be returned.

Throws

\Horde_Imap_Client_Exception
\Horde_Imap_Client_Exception_Sync

Returns

\Horde_Imap_Client_Data_Sync

A sync object.

_getEncryptKey()

_getEncryptKey() : string

Get encryption key.

Returns

string —

The encryption key.

_initOb()

_initOb() 

Do initialization tasks.

_initCache()

_initCache(boolean  $current = false) : boolean

Initialize the Horde_Imap_Client_Cache object, if necessary.

Parameters

boolean $current

If true, we are going to update the currently selected mailbox. Add an additional check to see if caching is available in current mailbox.

Returns

boolean —

Returns true if caching is enabled.

_capability()

_capability() : mixed

Query server capability.

Required because internal code can't call capability via magic method directly - it may not exist yet, the creation code may call capability recursively, and __get() doesn't allow recursive calls to the same property (chicken/egg issue).

Throws

\Horde_Imap_Client_Exception

Returns

mixed —

The capability object if no arguments provided. If arguments are provided, they are passed to the query() method and this value is returned.

_initCapability()

_initCapability() 

Retrieve capability information from the IMAP server.

Throws

\Horde_Imap_Client_Exception

_noop()

_noop() 

Send a NOOP command.

Throws

\Horde_Imap_Client_Exception

_getNamespaces()

_getNamespaces() : \Horde_Imap_Client_Namespace_List

Get the NAMESPACE information from the IMAP server.

Throws

\Horde_Imap_Client_Exception

Returns

\Horde_Imap_Client_Namespace_List

Namespace list object.

_connect()

_connect() 

Connect to the remote server.

Throws

\Horde_Imap_Client_Exception

_login()

_login() : boolean

Login to the IMAP server.

Throws

\Horde_Imap_Client_Exception

Returns

boolean —

Return true if global login tasks should be run.

_logout()

_logout() 

Logout from the IMAP server (see RFC 3501 [6.1.3]).

_sendID()

_sendID(array  $info) 

Send ID information to the IMAP server (RFC 2971).

Parameters

array $info

The information to send to the server.

Throws

\Horde_Imap_Client_Exception

_getID()

_getID() : array

Return ID information from the IMAP server (RFC 2971).

Throws

\Horde_Imap_Client_Exception

Returns

array —

An array of information returned, with the keys as the 'field' and the values as the 'value'.

_setLanguage()

_setLanguage(array  $langs) : string

Sets the preferred language for server response messages (RFC 5255).

Parameters

array $langs

The preferred list of languages.

Throws

\Horde_Imap_Client_Exception

Returns

string —

The language accepted by the server, or null if the default language is used.

_getLanguage()

_getLanguage(array  $list) : mixed

Gets the preferred language for server response messages (RFC 5255).

Parameters

array $list

If true, return the list of available languages.

Throws

\Horde_Imap_Client_Exception

Returns

mixed —

If $list is true, the list of languages available on the server (may be empty). If false, the language used by the server, or null if the default language is used.

_openMailbox()

_openMailbox(\Horde_Imap_Client_Mailbox  $mailbox, integer  $mode) 

Open a mailbox.

Parameters

\Horde_Imap_Client_Mailbox $mailbox

The mailbox to open.

integer $mode

The access mode.

Throws

\Horde_Imap_Client_Exception

_changeSelected()

_changeSelected(mixed  $mailbox = null, integer  $mode = null) 

Called when the selected mailbox is changed.

Parameters

mixed $mailbox

The selected mailbox or null.

integer $mode

The access mode.

_mailboxOb()

_mailboxOb(string  $mailbox = null) : \Horde_Imap_Client_Base_Mailbox

Return the Horde_Imap_Client_Base_Mailbox object.

Parameters

string $mailbox

The mailbox name. Defaults to currently selected mailbox.

Returns

\Horde_Imap_Client_Base_Mailbox

Mailbox object.

_createMailbox()

_createMailbox(\Horde_Imap_Client_Mailbox  $mailbox, array  $opts) 

Create a mailbox.

Parameters

\Horde_Imap_Client_Mailbox $mailbox

The mailbox to create.

array $opts

Additional options. See createMailbox().

Throws

\Horde_Imap_Client_Exception

_deleteMailbox()

_deleteMailbox(\Horde_Imap_Client_Mailbox  $mailbox) 

Delete a mailbox.

Parameters

\Horde_Imap_Client_Mailbox $mailbox

The mailbox to delete.

Throws

\Horde_Imap_Client_Exception

_deleteMailboxPost()

_deleteMailboxPost(\Horde_Imap_Client_Mailbox  $mailbox) 

Actions to perform after a mailbox delete.

Parameters

\Horde_Imap_Client_Mailbox $mailbox

The deleted mailbox.

_renameMailbox()

_renameMailbox(\Horde_Imap_Client_Mailbox  $old, \Horde_Imap_Client_Mailbox  $new) 

Rename a mailbox.

Parameters

\Horde_Imap_Client_Mailbox $old

The old mailbox name.

\Horde_Imap_Client_Mailbox $new

The new mailbox name.

Throws

\Horde_Imap_Client_Exception

_subscribeMailbox()

_subscribeMailbox(\Horde_Imap_Client_Mailbox  $mailbox, boolean  $subscribe) 

Manage subscription status for a mailbox.

Parameters

\Horde_Imap_Client_Mailbox $mailbox

The mailbox to [un]subscribe to.

boolean $subscribe

True to subscribe, false to unsubscribe.

Throws

\Horde_Imap_Client_Exception

_listMailboxes()

_listMailboxes(array  $pattern, integer  $mode, array  $options) : array

Obtain a list of mailboxes matching a pattern.

Parameters

array $pattern

The mailbox search patterns (Horde_Imap_Client_Mailbox objects).

integer $mode

Which mailboxes to return.

array $options

Additional options.

Throws

\Horde_Imap_Client_Exception

Returns

array —

See listMailboxes().

_status()

_status(array  $mboxes, integer  $flags) : array

Obtain status information for mailboxes.

Parameters

array $mboxes

The list of mailbox objects to query.

integer $flags

A bitmask of information requested from the server.

Throws

\Horde_Imap_Client_Exception

Returns

array —

See array return for status().

_append()

_append(\Horde_Imap_Client_Mailbox  $mailbox, array  $data, array  $options) : mixed

Append message(s) to a mailbox.

Parameters

\Horde_Imap_Client_Mailbox $mailbox

The mailbox to append the message(s) to.

array $data

The message data.

array $options

Additional options.

Throws

\Horde_Imap_Client_Exception

Returns

mixed —

A Horde_Imap_Client_Ids object containing the UIDs of the appended messages (if server supports UIDPLUS extension) or true.

_check()

_check() 

Request a checkpoint of the currently selected mailbox.

Throws

\Horde_Imap_Client_Exception

_close()

_close(array  $options) 

Close the connection to the currently selected mailbox, optionally expunging all deleted messages (RFC 3501 [6.4.2]).

Parameters

array $options

Additional options.

Throws

\Horde_Imap_Client_Exception

_expunge()

_expunge(array  $options) : \Horde_Imap_Client_Ids

Expunge all deleted messages from the given mailbox.

Parameters

array $options

Additional options.

Throws

\Horde_Imap_Client_Exception

Returns

\Horde_Imap_Client_Ids

If 'list' option is true, returns the list of expunged messages.

_search()

_search(object  $query, array  $options) : \Horde_Imap_Client_Ids

Search a mailbox.

Parameters

object $query

The search query.

array $options

Additional options. The '_query' key contains the value of $query->build().

Throws

\Horde_Imap_Client_Exception

Returns

\Horde_Imap_Client_Ids

An array of IDs.

_setComparator()

_setComparator(string  $comparator) 

Set the comparator to use for searching/sorting (RFC 5255).

Parameters

string $comparator

The comparator string (see RFC 4790 [3.1] - "collation-id" - for format). The reserved string 'default' can be used to select the default comparator.

Throws

\Horde_Imap_Client_Exception

_getComparator()

_getComparator() : mixed

Get the comparator used for searching/sorting (RFC 5255).

Throws

\Horde_Imap_Client_Exception

Returns

mixed —

Null if the default comparator is being used, or an array of comparator information (see RFC 5255 [4.8]).

_thread()

_thread(array  $options) : \Horde_Imap_Client_Data_Thread

Thread sort a given list of messages (RFC 5256).

Parameters

array $options

Additional options. See thread().

Throws

\Horde_Imap_Client_Exception

Returns

\Horde_Imap_Client_Data_Thread

A thread data object.

_fetch()

_fetch(\Horde_Imap_Client_Fetch_Results  $results, array  $queries) 

Fetch message data.

Fetch queries should be grouped in the $queries argument. Each value is an array of fetch options, with the fetch query stored in the '_query' parameter. IMPORTANT: All queries must have the same ID type (either sequence or UID).

Parameters

\Horde_Imap_Client_Fetch_Results $results

Fetch results.

array $queries

The list of queries.

Throws

\Horde_Imap_Client_Exception

_vanished()

_vanished(integer  $modseq, \Horde_Imap_Client_Ids  $ids) : \Horde_Imap_Client_Ids

Get the list of vanished messages.

Parameters

integer $modseq

Mod-sequence value.

\Horde_Imap_Client_Ids $ids

UIDs.

Returns

\Horde_Imap_Client_Ids

List of UIDs that have vanished.

_store()

_store(array  $options) : \Horde_Imap_Client_Ids

Store message flag data.

Parameters

array $options

Additional options.

Throws

\Horde_Imap_Client_Exception

Returns

\Horde_Imap_Client_Ids

A Horde_Imap_Client_Ids object containing the list of IDs that failed the 'unchangedsince' test.

_copy()

_copy(\Horde_Imap_Client_Mailbox  $dest, array  $options) : mixed

Copy messages to another mailbox.

Parameters

\Horde_Imap_Client_Mailbox $dest

The destination mailbox.

array $options

Additional options.

Throws

\Horde_Imap_Client_Exception

Returns

mixed —

An array mapping old UIDs (keys) to new UIDs (values) on success (if the IMAP server and/or driver support the UIDPLUS extension) or true.

_setQuota()

_setQuota(\Horde_Imap_Client_Mailbox  $root, array  $resources) : boolean

Set quota limits.

Parameters

\Horde_Imap_Client_Mailbox $root

The quota root.

array $resources

The resource values to set.

Throws

\Horde_Imap_Client_Exception

Returns

boolean —

True on success.

_getQuota()

_getQuota(\Horde_Imap_Client_Mailbox  $root) : mixed

Get quota limits.

Parameters

\Horde_Imap_Client_Mailbox $root

The quota root.

Throws

\Horde_Imap_Client_Exception

Returns

mixed —

An array with resource keys. Each key holds an array with 2 values: 'limit' and 'usage'.

_getQuotaRoot()

_getQuotaRoot(\Horde_Imap_Client_Mailbox  $mailbox) : mixed

Get quota limits for a mailbox.

Parameters

\Horde_Imap_Client_Mailbox $mailbox

A mailbox.

Throws

\Horde_Imap_Client_Exception

Returns

mixed —

An array with the keys being the quota roots. Each key holds an array with resource keys: each of these keys holds an array with 2 values: 'limit' and 'usage'.

_getACL()

_getACL(\Horde_Imap_Client_Mailbox  $mailbox) : array

Get ACL rights for a given mailbox.

Parameters

\Horde_Imap_Client_Mailbox $mailbox

A mailbox.

Throws

\Horde_Imap_Client_Exception

Returns

array —

An array with identifiers as the keys and Horde_Imap_Client_Data_Acl objects as the values.

_setACL()

_setACL(\Horde_Imap_Client_Mailbox  $mailbox, string  $identifier, array  $options) 

Set ACL rights for a given mailbox/identifier.

Parameters

\Horde_Imap_Client_Mailbox $mailbox

A mailbox.

string $identifier

The identifier to alter (UTF7-IMAP).

array $options

Additional options. 'rights' contains the string of rights to set on the server.

Throws

\Horde_Imap_Client_Exception

_deleteACL()

_deleteACL(\Horde_Imap_Client_Mailbox  $mailbox, string  $identifier) 

Deletes ACL rights for a given mailbox/identifier.

Parameters

\Horde_Imap_Client_Mailbox $mailbox

A mailbox.

string $identifier

The identifier to delete (UTF7-IMAP).

Throws

\Horde_Imap_Client_Exception

_listACLRights()

_listACLRights(\Horde_Imap_Client_Mailbox  $mailbox, string  $identifier) : \Horde_Imap_Client_Data_AclRights

Get ACL rights for a given mailbox/identifier.

Parameters

\Horde_Imap_Client_Mailbox $mailbox

A mailbox.

string $identifier

The identifier to query (UTF7-IMAP).

Throws

\Horde_Imap_Client_Exception

Returns

\Horde_Imap_Client_Data_AclRights

An ACL data rights object.

_getMyACLRights()

_getMyACLRights(\Horde_Imap_Client_Mailbox  $mailbox) : \Horde_Imap_Client_Data_Acl

Get the ACL rights for the current user for a given mailbox.

Parameters

\Horde_Imap_Client_Mailbox $mailbox

A mailbox.

Throws

\Horde_Imap_Client_Exception

Returns

\Horde_Imap_Client_Data_Acl

An ACL data object.

_getMetadata()

_getMetadata(\Horde_Imap_Client_Mailbox  $mailbox, array  $entries, array  $options) : array

Get metadata for a given mailbox.

Parameters

\Horde_Imap_Client_Mailbox $mailbox

A mailbox.

array $entries

The entries to fetch (UTF7-IMAP strings).

array $options

Additional options.

Throws

\Horde_Imap_Client_Exception

Returns

array —

An array with metadata names as the keys and metadata values as the values.

_setMetadata()

_setMetadata(\Horde_Imap_Client_Mailbox  $mailbox, array  $data) 

Set metadata for a given mailbox/identifier.

Parameters

\Horde_Imap_Client_Mailbox $mailbox

A mailbox.

array $data

A set of data values. See setMetadata() for format.

Throws

\Horde_Imap_Client_Exception

_updateCache()

_updateCache(\Horde_Imap_Client_Fetch_Results  $data) 

Store FETCH data in cache.

Parameters

\Horde_Imap_Client_Fetch_Results $data

The fetch results.

Throws

\Horde_Imap_Client_Exception

_moveCache()

_moveCache(\Horde_Imap_Client_Mailbox  $to, array  $map, string  $uidvalid) 

Moves cache entries from the current mailbox to another mailbox.

Parameters

\Horde_Imap_Client_Mailbox $to

The destination mailbox.

array $map

Mapping of source UIDs (keys) to destination UIDs (values).

string $uidvalid

UIDVALIDITY of destination mailbox.

Throws

\Horde_Imap_Client_Exception

_deleteMsgs()

_deleteMsgs(\Horde_Imap_Client_Mailbox  $mailbox, \Horde_Imap_Client_Ids  $ids, array  $opts = array()) : \Horde_Imap_Client_Ids

Delete messages in the cache.

Parameters

\Horde_Imap_Client_Mailbox $mailbox

The mailbox.

\Horde_Imap_Client_Ids $ids

The list of IDs to delete in $mailbox.

array $opts

Additional options (not used in base class).

Throws

\Horde_Imap_Client_Exception

Returns

\Horde_Imap_Client_Ids

UIDs that were deleted.

_getSearchCache()

_getSearchCache(string  $type, array  $options) : mixed

Retrieve data from the search cache.

Parameters

string $type

The cache type ('search' or 'thread').

array $options

The options array of the calling function.

Returns

mixed —

Returns search cache metadata. If search was retrieved, data is in key 'data'. Returns null if caching is not available.

_setSearchCache()

_setSearchCache(mixed  $data, string  $sdata) 

Set data in the search cache.

Parameters

mixed $data

The cache data to store.

string $sdata

The search data returned from _getSearchCache().

_updateModSeq()

_updateModSeq(integer  $modseq) : mixed

Updates the cached MODSEQ value.

Parameters

integer $modseq

MODSEQ value to store.

Returns

mixed —

The MODSEQ of the old value if it was replaced (or false if it didn't exist or is the same).

_condstoreSync()

_condstoreSync() 

Synchronizes the current mailbox cache with the server (using CONDSTORE or QRESYNC).

_cacheFields()

_cacheFields() : array

Provide the list of available caching fields.

Returns

array —

The list of available caching fields (fields are in the key).

_syncStatus()

_syncStatus(mixed  $mailbox) : array

Return the current mailbox synchronization status.

Parameters

mixed $mailbox

A mailbox. Either a Horde_Imap_Client_Mailbox object or a string (UTF-8).

Returns

array —

An array with status data. (This data is not guaranteed to have any specific format).

_getUidByMessageId()

_getUidByMessageId(\Horde_Imap_Client_Mailbox  $mailbox, string  $msgid) : string

Get a message UID by the Message-ID. Returns the last message in a mailbox that matches.

Parameters

\Horde_Imap_Client_Mailbox $mailbox

The mailbox to search

string $msgid

Message-ID.

Returns

string —

UID (null if not found).