You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
203 lines
5.8 KiB
203 lines
5.8 KiB
<?php
|
|
/**
|
|
* Copyright 2008-2017 Horde LLC (http://www.horde.org/)
|
|
*
|
|
* See the enclosed file COPYING for license information (LGPL). If you
|
|
* did not receive this file, see http://www.horde.org/licenses/lgpl21.
|
|
*
|
|
* @category Horde
|
|
* @copyright 2008-2017 Horde LLC
|
|
* @license http://www.horde.org/licenses/lgpl21 LGPL 2.1
|
|
* @package Imap_Client
|
|
*/
|
|
|
|
/**
|
|
* Base class for Horde_Imap_Client package. Defines common constants for use
|
|
* in the package.
|
|
*
|
|
* @author Michael Slusarz <slusarz@horde.org>
|
|
* @category Horde
|
|
* @copyright 2008-2017 Horde LLC
|
|
* @license http://www.horde.org/licenses/lgpl21 LGPL 2.1
|
|
* @package Imap_Client
|
|
*/
|
|
class Horde_Imap_Client
|
|
{
|
|
/* Constants for openMailbox() */
|
|
const OPEN_READONLY = 1;
|
|
const OPEN_READWRITE = 2;
|
|
const OPEN_AUTO = 3;
|
|
|
|
/* Constants for listMailboxes() */
|
|
const MBOX_SUBSCRIBED = 1;
|
|
const MBOX_SUBSCRIBED_EXISTS = 2;
|
|
const MBOX_UNSUBSCRIBED = 3;
|
|
const MBOX_ALL = 4;
|
|
/* @since 2.23.0 */
|
|
const MBOX_ALL_SUBSCRIBED = 5;
|
|
|
|
/* Constants for status() */
|
|
const STATUS_MESSAGES = 1;
|
|
const STATUS_RECENT = 2;
|
|
const STATUS_UIDNEXT = 4;
|
|
const STATUS_UIDVALIDITY = 8;
|
|
const STATUS_UNSEEN = 16;
|
|
const STATUS_ALL = 32;
|
|
const STATUS_FIRSTUNSEEN = 64;
|
|
const STATUS_FLAGS = 128;
|
|
const STATUS_PERMFLAGS = 256;
|
|
const STATUS_HIGHESTMODSEQ = 512;
|
|
const STATUS_SYNCMODSEQ = 1024;
|
|
const STATUS_SYNCFLAGUIDS = 2048;
|
|
const STATUS_UIDNOTSTICKY = 4096;
|
|
const STATUS_UIDNEXT_FORCE = 8192;
|
|
const STATUS_SYNCVANISHED = 16384;
|
|
/* @since 2.12.0 */
|
|
const STATUS_RECENT_TOTAL = 32768;
|
|
/* @since 2.14.0 */
|
|
const STATUS_FORCE_REFRESH = 65536;
|
|
|
|
/* Constants for search() */
|
|
const SORT_ARRIVAL = 1;
|
|
const SORT_CC = 2;
|
|
const SORT_DATE = 3;
|
|
const SORT_FROM = 4;
|
|
const SORT_REVERSE = 5;
|
|
const SORT_SIZE = 6;
|
|
const SORT_SUBJECT = 7;
|
|
const SORT_TO = 8;
|
|
/* SORT_THREAD provided for completeness - it is not a valid sort criteria
|
|
* for search() (use thread() instead). */
|
|
const SORT_THREAD = 9;
|
|
/* Sort criteria defined in RFC 5957 */
|
|
const SORT_DISPLAYFROM = 10;
|
|
const SORT_DISPLAYTO = 11;
|
|
/* SORT_SEQUENCE does a simple numerical sort on the returned
|
|
* UIDs/sequence numbers. */
|
|
const SORT_SEQUENCE = 12;
|
|
/* Fuzzy sort criteria defined in RFC 6203 */
|
|
const SORT_RELEVANCY = 13;
|
|
/* @since 2.4.0 */
|
|
const SORT_DISPLAYFROM_FALLBACK = 14;
|
|
/* @since 2.4.0 */
|
|
const SORT_DISPLAYTO_FALLBACK = 15;
|
|
|
|
/* Search results constants */
|
|
const SEARCH_RESULTS_COUNT = 1;
|
|
const SEARCH_RESULTS_MATCH = 2;
|
|
const SEARCH_RESULTS_MAX = 3;
|
|
const SEARCH_RESULTS_MIN = 4;
|
|
const SEARCH_RESULTS_SAVE = 5;
|
|
/* Fuzzy sort criteria defined in RFC 6203 */
|
|
const SEARCH_RESULTS_RELEVANCY = 6;
|
|
|
|
/* Constants for thread() */
|
|
const THREAD_ORDEREDSUBJECT = 1;
|
|
const THREAD_REFERENCES = 2;
|
|
const THREAD_REFS = 3;
|
|
|
|
/* Fetch criteria constants. */
|
|
const FETCH_STRUCTURE = 1;
|
|
const FETCH_FULLMSG = 2;
|
|
const FETCH_HEADERTEXT = 3;
|
|
const FETCH_BODYTEXT = 4;
|
|
const FETCH_MIMEHEADER = 5;
|
|
const FETCH_BODYPART = 6;
|
|
const FETCH_BODYPARTSIZE = 7;
|
|
const FETCH_HEADERS = 8;
|
|
const FETCH_ENVELOPE = 9;
|
|
const FETCH_FLAGS = 10;
|
|
const FETCH_IMAPDATE = 11;
|
|
const FETCH_SIZE = 12;
|
|
const FETCH_UID = 13;
|
|
const FETCH_SEQ = 14;
|
|
const FETCH_MODSEQ = 15;
|
|
/* @since 2.11.0 */
|
|
const FETCH_DOWNGRADED = 16;
|
|
|
|
/* Namespace constants. @deprecated */
|
|
const NS_PERSONAL = 1;
|
|
const NS_OTHER = 2;
|
|
const NS_SHARED = 3;
|
|
|
|
/* ACL constants (RFC 4314 [2.1]). */
|
|
const ACL_LOOKUP = 'l';
|
|
const ACL_READ = 'r';
|
|
const ACL_SEEN = 's';
|
|
const ACL_WRITE = 'w';
|
|
const ACL_INSERT = 'i';
|
|
const ACL_POST = 'p';
|
|
const ACL_CREATEMBOX = 'k';
|
|
const ACL_DELETEMBOX = 'x';
|
|
const ACL_DELETEMSGS = 't';
|
|
const ACL_EXPUNGE = 'e';
|
|
const ACL_ADMINISTER = 'a';
|
|
// Old constants (RFC 2086 [3]; RFC 4314 [2.1.1])
|
|
const ACL_CREATE = 'c';
|
|
const ACL_DELETE = 'd';
|
|
|
|
/* System flags. */
|
|
// RFC 3501 [2.3.2]
|
|
const FLAG_ANSWERED = '\\answered';
|
|
const FLAG_DELETED = '\\deleted';
|
|
const FLAG_DRAFT = '\\draft';
|
|
const FLAG_FLAGGED = '\\flagged';
|
|
const FLAG_RECENT = '\\recent';
|
|
const FLAG_SEEN = '\\seen';
|
|
// RFC 3503 [3.3]
|
|
const FLAG_MDNSENT = '$mdnsent';
|
|
// RFC 5550 [2.8]
|
|
const FLAG_FORWARDED = '$forwarded';
|
|
// RFC 5788 registered keywords:
|
|
// http://www.ietf.org/mail-archive/web/morg/current/msg00441.html
|
|
const FLAG_JUNK = '$junk';
|
|
const FLAG_NOTJUNK = '$notjunk';
|
|
|
|
/* Special-use mailbox attributes (RFC 6154 [2]). */
|
|
const SPECIALUSE_ALL = '\\All';
|
|
const SPECIALUSE_ARCHIVE = '\\Archive';
|
|
const SPECIALUSE_DRAFTS = '\\Drafts';
|
|
const SPECIALUSE_FLAGGED = '\\Flagged';
|
|
const SPECIALUSE_JUNK = '\\Junk';
|
|
const SPECIALUSE_SENT = '\\Sent';
|
|
const SPECIALUSE_TRASH = '\\Trash';
|
|
|
|
/* Constants for sync(). */
|
|
const SYNC_UIDVALIDITY = 0;
|
|
const SYNC_FLAGS = 1;
|
|
const SYNC_FLAGSUIDS = 2;
|
|
const SYNC_NEWMSGS = 4;
|
|
const SYNC_NEWMSGSUIDS = 8;
|
|
const SYNC_VANISHED = 16;
|
|
const SYNC_VANISHEDUIDS = 32;
|
|
const SYNC_ALL = 64;
|
|
|
|
/**
|
|
* Capability dependencies.
|
|
*
|
|
* @deprecated
|
|
*
|
|
* @var array
|
|
*/
|
|
public static $capability_deps = array(
|
|
// RFC 7162 [3.2]
|
|
'QRESYNC' => array(
|
|
// QRESYNC requires CONDSTORE, but the latter is implied and is
|
|
// not required to be listed.
|
|
'ENABLE'
|
|
),
|
|
// RFC 5182 [2.1]
|
|
'SEARCHRES' => array(
|
|
'ESEARCH'
|
|
),
|
|
// RFC 5255 [3.1]
|
|
'LANGUAGE' => array(
|
|
'NAMESPACE'
|
|
),
|
|
// RFC 5957 [1]
|
|
'SORT=DISPLAY' => array(
|
|
'SORT'
|
|
)
|
|
);
|
|
|
|
}
|
|
|