Mail/Storage/Imap.php
Zend Framework
LICENSE
This source file is subject to the new BSD license that is bundled with this package in the file LICENSE.txt. It is also available through the world-wide-web at this URL: http://framework.zend.com/license/new-bsd If you did not receive a copy of the license and are unable to obtain it through the world-wide-web, please send an email to [email protected] so we can send you a copy immediately.
- Category
- Zend
- Copyright
- Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com)
- License
- New BSD License
- Package
- Zend_Mail
- Subpackage
- Storage
- Version
- $Id: Imap.php 24593 2012-01-05 20:35:02Z matthew $
\Zend_Mail_Storage_Imap
- Implements
- \Zend_Mail_Storage_Folder_Interface
- \Zend_Mail_Storage_Writable_Interface
- Parent(s)
- \Zend_Mail_Storage_Abstract
- Category
- Zend
- Copyright
- Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com)
- License
- New BSD License
Properties


array $_has = array('uniqueid' => true, 'delete' => false, 'create' => false, 'top' => false, 'fetchPart' => true, 'flags' => false)
array('uniqueid' => true, 'delete' => false, 'create' => false, 'top' => false, 'fetchPart' => true, 'flags' => false)
Details- Type
- array
- Inherited_from
- \Zend_Mail_Storage_Abstract::$$_has


null|int $_iterationMax = null
maximum iteration position (= message count)
Inherited from: \Zend_Mail_Storage_Abstract::$$_iterationMaxnull
Details- Type
- null | int
- Inherited_from
- \Zend_Mail_Storage_Abstract::$$_iterationMax


int $_iterationPos = 0
0
Details- Type
- int
- Inherited_from
- \Zend_Mail_Storage_Abstract::$$_iterationPos


array $_knownFlags = array('\Passed' => \Zend_Mail_Storage::FLAG_PASSED, '\Answered' => \Zend_Mail_Storage::FLAG_ANSWERED, '\Seen' => \Zend_Mail_Storage::FLAG_SEEN, '\Deleted' => \Zend_Mail_Storage::FLAG_DELETED, '\Draft' => \Zend_Mail_Storage::FLAG_DRAFT, '\Flagged' => \Zend_Mail_Storage::FLAG_FLAGGED)
imap flags to constants translation
array('\Passed' => \Zend_Mail_Storage::FLAG_PASSED, '\Answered' => \Zend_Mail_Storage::FLAG_ANSWERED, '\Seen' => \Zend_Mail_Storage::FLAG_SEEN, '\Deleted' => \Zend_Mail_Storage::FLAG_DELETED, '\Draft' => \Zend_Mail_Storage::FLAG_DRAFT, '\Flagged' => \Zend_Mail_Storage::FLAG_FLAGGED)
Details- Type
- array


string $_messageClass = 'Zend_Mail_Message'
used message class, change it in an extened class to extend the returned message class
Inherited from: \Zend_Mail_Storage_Abstract::$$_messageClass'Zend_Mail_Message'
Details- Type
- string
- Inherited_from
- \Zend_Mail_Storage_Abstract::$$_messageClass


null|\Zend_Mail_Protocol_Imap $_protocol =
protocol handler
- Type
- null | \Zend_Mail_Protocol_Imap


array $_searchFlags = array('\Recent' => 'RECENT', '\Answered' => 'ANSWERED', '\Seen' => 'SEEN', '\Deleted' => 'DELETED', '\Draft' => 'DRAFT', '\Flagged' => 'FLAGGED')
map flags to search criterias
array('\Recent' => 'RECENT', '\Answered' => 'ANSWERED', '\Seen' => 'SEEN', '\Deleted' => 'DELETED', '\Draft' => 'DRAFT', '\Flagged' => 'FLAGGED')
Details- Type
- array
Methods


__construct(array $params) : void
create instance with parameters Supported paramters are - user username - host hostname or ip address of IMAP server [optional, default = 'localhost'] - password password for user 'username' [optional, default = ''] - port port for IMAP server [optional, default = 110] - ssl 'SSL' or 'TLS' for secure sockets - folder select this folder [optional, default = 'INBOX']
Name | Type | Description |
---|---|---|
$params | array | mail reader specific parameters |
Exception | Description |
---|---|
\Zend_Mail_Storage_Exception | |
\Zend_Mail_Protocol_Exception |


__destruct() : void
Destructor calls close() and therefore closes the resource.
Inherited from: \Zend_Mail_Storage_Abstract::__destruct()

__get(string $var) : bool
The standard has properties are: hasFolder, hasUniqueid, hasDelete, hasCreate, hasTop
The valid values for the has-properties are: - true if a feature is supported - false if a feature is not supported - null is it's not yet known or it can't be know if a feature is supported
Name | Type | Description |
---|---|---|
$var | string | property name |
Type | Description |
---|---|
bool | supported or not |
Exception | Description |
---|---|
\Zend_Mail_Storage_Exception |


appendMessage(string | \Zend_Mail_Message | \Zend_Mime_Message $message, null | string | \Zend_Mail_Storage_Folder $folder = null, null | array $flags = null) : void
append a new message to mail storage
Name | Type | Description |
---|---|---|
$message | string | \Zend_Mail_Message | \Zend_Mime_Message | message as string or instance of message class |
$folder | null | string | \Zend_Mail_Storage_Folder | folder for new message, else current folder is taken |
$flags | null | array | set flags for new message, else a default set is used |
Exception | Description |
---|---|
\Zend_Mail_Storage_Exception |


close() : null
Close resource for mail lib.
If you need to control, when the resource is closed. Otherwise the destructor would call this.
Type | Description |
---|---|
null |


copyMessage(int $id, string | \Zend_Mail_Storage_Folder $folder) : null
copy an existing message
Name | Type | Description |
---|---|---|
$id | int | number of message |
$folder | string | \Zend_Mail_Storage_Folder | name or instance of targer folder |
Type | Description |
---|---|
null |
Exception | Description |
---|---|
\Zend_Mail_Storage_Exception |


countMessages( $flags = null) : int
Count messages all messages in current box
Name | Type | Description |
---|---|---|
$flags |
Type | Description |
---|---|
int | number of messages |
Exception | Description |
---|---|
\Zend_Mail_Storage_Exception | |
\Zend_Mail_Protocol_Exception |


createFolder(string $name, string | \Zend_Mail_Storage_Folder $parentFolder = null) : null
create a new folder
This method also creates parent folders if necessary. Some mail storages may restrict, which folder may be used as parent or which chars may be used in the folder name
Name | Type | Description |
---|---|---|
$name | string | global name of folder, local name if $parentFolder is set |
$parentFolder | string | \Zend_Mail_Storage_Folder | parent folder for new folder, else root folder is parent |
Type | Description |
---|---|
null |
Exception | Description |
---|---|
\Zend_Mail_Storage_Exception |


getCapabilities() : array
Get a full list of features supported by the specific mail lib and the server
Inherited from: \Zend_Mail_Storage_Abstract::getCapabilities()Type | Description |
---|---|
array | list of features as array(featurename => true|false[|null]) |


getCurrentFolder() : \Zend_Mail_Storage_Folder
get Zend_Mail_Storage_Folder instance for current folder
Type | Description |
---|---|
\Zend_Mail_Storage_Folder | instance of current folder |
Exception | Description |
---|---|
\Zend_Mail_Storage_Exception |


getFolders(string $rootFolder = null) : \Zend_Mail_Storage_Folder
get root folder or given folder
Name | Type | Description |
---|---|---|
$rootFolder | string | get folder structure for given folder, else root |
Type | Description |
---|---|
\Zend_Mail_Storage_Folder | root or wanted folder |
Exception | Description |
---|---|
\Zend_Mail_Storage_Exception | |
\Zend_Mail_Protocol_Exception |


getMessage(int $id) : \Zend_Mail_Message
Fetch a message
Name | Type | Description |
---|---|---|
$id | int | number of message |
Type | Description |
---|---|
\Zend_Mail_Message |
Exception | Description |
---|---|
\Zend_Mail_Protocol_Exception |


getNumberByUniqueId(string $id) : int
get a message number from a unique id
I.e. if you have a webmailer that supports deleting messages you should use unique ids as parameter and use this method to translate it to message number right before calling removeMessage()
Name | Type | Description |
---|---|---|
$id | string | unique id |
Type | Description |
---|---|
int | message number |
Exception | Description |
---|---|
\Zend_Mail_Storage_Exception |


getRawContent(int $id, null | array | string $part = null) : string
Get raw content of message or part
Name | Type | Description |
---|---|---|
$id | int | number of message |
$part | null | array | string | path to part or null for messsage content |
Type | Description |
---|---|
string | raw content |


getRawHeader(int $id, null | array | string $part = null, int $topLines = 0) : string
Get raw header of message or part
Name | Type | Description |
---|---|---|
$id | int | number of message |
$part | null | array | string | path to part or null for messsage header |
$topLines | int | include this many lines with header (after an empty line) |
Type | Description |
---|---|
string | raw header |


getSize(int $id = 0) : int | array
get a list of messages with number and size
Name | Type | Description |
---|---|---|
$id | int | number of message |
Type | Description |
---|---|
int | array | size of given message of list with all messages as array(num => size) |
Exception | Description |
---|---|
\Zend_Mail_Protocol_Exception |


getUniqueId(int | null $id = null) : array | string
get unique id for one or all messages
if storage does not support unique ids it's the same as the message number
Name | Type | Description |
---|---|---|
$id | int | null | message number |
Type | Description |
---|---|
array | string | message number for given message or all messages as array |
Exception | Description |
---|---|
\Zend_Mail_Storage_Exception |


moveMessage(int $id, string | \Zend_Mail_Storage_Folder $folder) : null
move an existing message
NOTE: imap has no native move command, thus it's emulated with copy and delete
Name | Type | Description |
---|---|---|
$id | int | number of message |
$folder | string | \Zend_Mail_Storage_Folder | name or instance of targer folder |
Type | Description |
---|---|
null |
Exception | Description |
---|---|
\Zend_Mail_Storage_Exception |


noop() : null
Keep the server busy.
Type | Description |
---|---|
null |
Exception | Description |
---|---|
\Zend_Mail_Storage_Exception |


offsetExists(int $id) : boolean
Name | Type | Description |
---|---|---|
$id | int |
Type | Description |
---|---|
boolean |


offsetGet(int $id) : \Zend_Mail_Message
Name | Type | Description |
---|---|---|
$id | int |
Type | Description |
---|---|
\Zend_Mail_Message | message object |


offsetSet(\id $id, mixed $value) : void
Name | Type | Description |
---|---|---|
$id | \id | |
$value | mixed |
Exception | Description |
---|---|
\Zend_Mail_Storage_Exception |


offsetUnset(int $id) : boolean
Name | Type | Description |
---|---|---|
$id | int |
Type | Description |
---|---|
boolean | success |


removeFolder(string | \Zend_Mail_Storage_Folder $name) : null
remove a folder
Name | Type | Description |
---|---|---|
$name | string | \Zend_Mail_Storage_Folder | name or instance of folder |
Type | Description |
---|---|
null |
Exception | Description |
---|---|
\Zend_Mail_Storage_Exception |


removeMessage(int $id) : null
Remove a message from server.
If you're doing that from a web enviroment you should be careful and use a uniqueid as parameter if possible to identify the message.
Name | Type | Description |
---|---|---|
$id | int | number of message |
Type | Description |
---|---|
null |
Exception | Description |
---|---|
\Zend_Mail_Storage_Exception |


renameFolder(string | \Zend_Mail_Storage_Folder $oldName, string $newName) : null
rename and/or move folder
The new name has the same restrictions as in createFolder()
Name | Type | Description |
---|---|---|
$oldName | string | \Zend_Mail_Storage_Folder | name or instance of folder |
$newName | string | new global name of folder |
Type | Description |
---|---|
null |
Exception | Description |
---|---|
\Zend_Mail_Storage_Exception |


rewind() : void
Rewind always gets the new count from the storage. Thus if you use the interfaces and your scripts take long you should use reset() from time to time.


seek(int $pos) : void
Name | Type | Description |
---|---|---|
$pos | int |
Exception | Description |
---|---|
\OutOfBoundsException |


selectFolder(\Zend_Mail_Storage_Folder | string $globalName) : null
select given folder
folder must be selectable!
Name | Type | Description |
---|---|---|
$globalName | \Zend_Mail_Storage_Folder | string | global name of folder or instance for subfolder |
Type | Description |
---|---|
null |
Exception | Description |
---|---|
\Zend_Mail_Storage_Exception | |
\Zend_Mail_Protocol_Exception |


setFlags(int $id, array $flags) : void
set flags for message
NOTE: this method can't set the recent flag.
Name | Type | Description |
---|---|---|
$id | int | number of message |
$flags | array | new flags for message |
Exception | Description |
---|---|
\Zend_Mail_Storage_Exception |