API Documentation

Mail/Storage/Writable/Maildir.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 license@zend.com so we can send you a copy immediately.

category
Zend  
copyright
Copyright (c) 2005-2011 Zend Technologies USA Inc. (http://www.zend.com)  
license
New BSD License  
package
Zend_Mail  
subpackage
Storage  
version
$Id: Maildir.php 23775 2011-03-01 17:25:24Z ralph $  

\Zend_Mail_Storage_Writable_Maildir

Extends from
\Zend_Mail_Storage_Folder_Maildir
Implements
\Zend_Mail_Storage_Writable_Interface
category
Zend  
copyright
Copyright (c) 2005-2011 Zend Technologies USA Inc. (http://www.zend.com)  
license
New BSD License  
package
Zend_Mail  
subpackage
Storage  

Properties

Propertyprotectedbool|int  $_quota= ''

use quota and size of quota if given

Details
Type
boolint

Methods

methodpublic__construct( array $params ) : void

Create instance with parameters Additional parameters are (see parent for more): - create if true a new maildir is create if none exists

Parameters
Name Type Description
$params array mail reader specific parameters
Throws
Exception Description
\Zend_Mail_Storage_Exception
methodpublic__destruct( ) : void

Destructor calls close() and therefore closes the resource.

Inherited from: \Zend_Mail_Storage_Abstract::__destruct()
methodpublic__get( string $var ) : bool

Getter for has-properties. The standard has properties are: hasFolder, hasUniqueid, hasDelete, hasCreate, hasTop

Inherited from: \Zend_Mail_Storage_Abstract::__get()

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

Parameters
Name Type Description
$var string property name
Returns
Type Description
bool supported or not
Throws
Exception Description
\Zend_Mail_Storage_Exception
methodprotected_addQuotaEntry(  $size,  $count = 1 ) : void

Parameters
Name Type Description
$size
$count
methodprotected_buildFolderTree( ) : null

find all subfolders and mbox files for folder structure

Inherited from: \Zend_Mail_Storage_Folder_Maildir::_buildFolderTree()

Result is save in Zend_Mail_Storage_Folder instances with the root in $this->_rootFolder. $parentFolder and $parentGlobalName are only used internally for recursion.

Returns
Type Description
null
Throws
Exception Description
\Zend_Mail_Storage_Exception
methodprotected_calculateMaildirsize( ) : void

Details
see
\http://www.inter7.com/courierimap/README.maildirquota.html  
methodprotected_calculateQuota(  $forceRecalc = false ) : void

Parameters
Name Type Description
$forceRecalc
Details
see
\http://www.inter7.com/courierimap/README.maildirquota.html  
methodprotected_createTmpFile( string $folder = INBOX ) : array

open a temporary maildir file

makes sure tmp/ exists and create a file with a unique name you should close the returned filehandle!

Parameters
Name Type Description
$folder string name of current folder without leading .
Returns
Type Description
array array('dirname' => dir of maildir folder, 'uniq' => unique id, 'filename' => name of create file 'handle' => file opened for writing)
Throws
Exception Description
\Zend_Mail_Storage_Exception
methodprotected_createUniqueId( ) : string

create a uniqueid for maildir filename

This is nearly the format defined in the maildir standard. The microtime() call should already create a uniqueid, the pid is for multicore/-cpu machine that manage to call this function at the exact same time, and uname() gives us the hostname for multiple machines accessing the same storage.

If someone disables posix we create a random number of the same size, so this method should also work on Windows - if you manage to get maildir working on Windows. Microtime could also be disabled, altough I've never seen it.

Returns
Type Description
string new uniqueid
methodprotected_getFileData( int $id, string|null $field = null ) : string|array

Get one or all fields from file structure. Also checks if message is valid

Inherited from: \Zend_Mail_Storage_Maildir::_getFileData()
Parameters
Name Type Description
$id int message number
$field string|null wanted field
Returns
Type Description
stringarray wanted field or all fields as array
Throws
Exception Description
\Zend_Mail_Storage_Exception
methodprotected_getInfoString( array $flags ) : string

create an info string for filenames with given flags

Parameters
Name Type Description
$flags array

wanted flags, with the reference you'll get the set flags with correct key (= char for flag)

Returns
Type Description
string info string for version 2 filenames including the leading colon
Throws
Exception Description
\Zend_Mail_Storage_Exception
methodprotected_getMaildirFiles( resource $dh, string $dirname, array $default_flags = array ) : null

find all files in opened dir handle and add to maildir files

Inherited from: \Zend_Mail_Storage_Maildir::_getMaildirFiles()
Parameters
Name Type Description
$dh resource dir handle used for search
$dirname string

dirname of dir in $dh

$default_flags array default flags for given dir
Returns
Type Description
null
methodprotected_isMaildir( string $dirname ) : bool

check if a given dir is a valid maildir

Inherited from: \Zend_Mail_Storage_Maildir::_isMaildir()
Parameters
Name Type Description
$dirname string name of dir
Returns
Type Description
bool dir is valid maildir
methodprotected_openMaildir( string $dirname ) : null

open given dir as current maildir

Inherited from: \Zend_Mail_Storage_Maildir::_openMaildir()
Parameters
Name Type Description
$dirname string name of maildir
Returns
Type Description
null
Throws
Exception Description
\Zend_Mail_Storage_Exception
methodpublicappendMessage( string|\stream $message, null|string|\Zend_Mail_Storage_Folder $folder = null, null|array $flags = null, bool $recent = false ) : void

append a new message to mail storage

Parameters
Name Type Description
$message string|\stream message as string or stream resource
$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
$recent bool handle this mail as if recent flag has been set, should only be used in delivery
Throws
Exception Description
\Zend_Mail_Storage_Exception
methodpubliccheckQuota( bool $detailedResponse = false,  $forceRecalc = false ) : bool|array

check if storage is currently over quota

Parameters
Name Type Description
$detailedResponse bool

return known data of quota and current size and message count @see _calculateQuota()

$forceRecalc
Returns
Type Description
boolarray over quota state or detailed response
methodpublicclose( ) : void

Close resource for mail lib. If you need to control, when the resource is closed. Otherwise the destructor would call this.

Inherited from: \Zend_Mail_Storage_Maildir::close()
methodpubliccopyMessage( int $id, string|\Zend_Mail_Storage_Folder $folder ) : null

copy an existing message

Parameters
Name Type Description
$id int number of message
$folder string|\Zend_Mail_Storage_Folder name or instance of targer folder
Returns
Type Description
null
Throws
Exception Description
\Zend_Mail_Storage_Exception
methodpubliccount( ) : int

Countable::count()

Inherited from: \Zend_Mail_Storage_Abstract::count()
Returns
Type Description
int
methodpubliccountMessages(  $flags = null ) : int

Count messages all messages in current box

Inherited from: \Zend_Mail_Storage_Maildir::countMessages()
Parameters
Name Type Description
$flags
Returns
Type Description
int number of messages
Throws
Exception Description
\Zend_Mail_Storage_Exception
methodpubliccreateFolder( string $name, string|\Zend_Mail_Storage_Folder $parentFolder = null ) : string

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

Parameters
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
Returns
Type Description
string only used internally (new created maildir)
Throws
Exception Description
\Zend_Mail_Storage_Exception
methodpubliccurrent( ) : \Zend_Mail_Message

Iterator::current()

Inherited from: \Zend_Mail_Storage_Abstract::current()
Returns
Type Description
\Zend_Mail_Message current message
methodpublicgetCapabilities( ) : array

Get a full list of features supported by the specific mail lib and the server

Inherited from: \Zend_Mail_Storage_Abstract::getCapabilities()
Returns
Type Description
array list of features as array(featurename => true|false[|null])
methodpublicgetCurrentFolder( ) : \Zend_Mail_Storage_Folder

get Zend_Mail_Storage_Folder instance for current folder

Inherited from: \Zend_Mail_Storage_Folder_Maildir::getCurrentFolder()
Returns
Type Description
\Zend_Mail_Storage_Folder instance of current folder
Throws
Exception Description
\Zend_Mail_Storage_Exception
methodpublicgetFolders( string $rootFolder = null ) : \Zend_Mail_Storage_Folder

get root folder or given folder

Inherited from: \Zend_Mail_Storage_Folder_Maildir::getFolders()
Parameters
Name Type Description
$rootFolder string get folder structure for given folder, else root
Returns
Type Description
\Zend_Mail_Storage_Folder root or wanted folder
Throws
Exception Description
\Zend_Mail_Storage_Exception
methodpublicgetMessage( int $id ) : \Zend_Mail_Message_File

Fetch a message

Inherited from: \Zend_Mail_Storage_Maildir::getMessage()
Parameters
Name Type Description
$id int number of message
Returns
Type Description
\Zend_Mail_Message_File
Throws
Exception Description
\Zend_Mail_Storage_Exception
methodpublicgetNumberByUniqueId( string $id ) : int

get a message number from a unique id

Inherited from: \Zend_Mail_Storage_Maildir::getNumberByUniqueId()

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()

Parameters
Name Type Description
$id string unique id
Returns
Type Description
int message number
Throws
Exception Description
\Zend_Mail_Storage_Exception
methodpublicgetQuota(  $fromStorage = false ) : bool|array

get currently set quota

Parameters
Name Type Description
$fromStorage
Returns
Type Description
boolarray
Details
see
\Zend_Mail_Storage_Writable_Maildir::setQuota()  
methodpublicgetRawContent( int $id, null|array|string $part = null ) : string

Get raw content of message or part

Inherited from: \Zend_Mail_Storage_Maildir::getRawContent()
Parameters
Name Type Description
$id int number of message
$part null|array|string path to part or null for messsage content
Returns
Type Description
string raw content
methodpublicgetRawHeader( int $id, null|array|string $part = null, int $topLines = 0 ) : string

Get raw header of message or part

Inherited from: \Zend_Mail_Storage_Maildir::getRawHeader()
Parameters
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)

Returns
Type Description
string raw header
methodpublicgetSize( int|null $id = null ) : int|array

Get a list of messages with number and size

Inherited from: \Zend_Mail_Storage_Maildir::getSize()
Parameters
Name Type Description
$id int|null number of message or null for all messages
Returns
Type Description
intarray size of given message of list with all messages as array(num => size)
Throws
Exception Description
\Zend_Mail_Storage_Exception
methodpublicgetUniqueId( int|null $id = null ) : array|string

get unique id for one or all messages

Inherited from: \Zend_Mail_Storage_Maildir::getUniqueId()

if storage does not support unique ids it's the same as the message number

Parameters
Name Type Description
$id int|null message number
Returns
Type Description
arraystring message number for given message or all messages as array
Throws
Exception Description
\Zend_Mail_Storage_Exception
methodpublicinitMaildir( string $dir ) : null
static

create a new maildir

If the given dir is already a valid maildir this will not fail.

Parameters
Name Type Description
$dir string

directory for the new maildir (may already exist)

Returns
Type Description
null
Throws
Exception Description
\Zend_Mail_Storage_Exception
methodpublickey( ) : int

Iterator::key()

Inherited from: \Zend_Mail_Storage_Abstract::key()
Returns
Type Description
int id of current position
methodpublicmoveMessage( int $id, string|\Zend_Mail_Storage_Folder $folder ) : null

move an existing message

Parameters
Name Type Description
$id int number of message
$folder string|\Zend_Mail_Storage_Folder name or instance of targer folder
Returns
Type Description
null
Throws
Exception Description
\Zend_Mail_Storage_Exception
methodpublicnext( ) : void

Iterator::next()

Inherited from: \Zend_Mail_Storage_Abstract::next()
methodpublicnoop( ) : void

Waste some CPU cycles doing nothing.

Inherited from: \Zend_Mail_Storage_Maildir::noop()
methodpublicoffsetExists( int $id ) : boolean

ArrayAccess::offsetExists()

Inherited from: \Zend_Mail_Storage_Abstract::offsetExists()
Parameters
Name Type Description
$id int
Returns
Type Description
boolean
methodpublicoffsetGet( int $id ) : \Zend_Mail_Message

ArrayAccess::offsetGet()

Inherited from: \Zend_Mail_Storage_Abstract::offsetGet()
Parameters
Name Type Description
$id int
Returns
Type Description
\Zend_Mail_Message message object
methodpublicoffsetSet( \id $id, mixed $value ) : void

ArrayAccess::offsetSet()

Inherited from: \Zend_Mail_Storage_Abstract::offsetSet()
Parameters
Name Type Description
$id \id
$value mixed
Throws
Exception Description
\Zend_Mail_Storage_Exception
methodpublicoffsetUnset( int $id ) : boolean

ArrayAccess::offsetUnset()

Inherited from: \Zend_Mail_Storage_Abstract::offsetUnset()
Parameters
Name Type Description
$id int
Returns
Type Description
boolean success
methodpublicremoveFolder( string|\Zend_Mail_Storage_Folder $name ) : null

remove a folder

Parameters
Name Type Description
$name string|\Zend_Mail_Storage_Folder name or instance of folder
Returns
Type Description
null
Throws
Exception Description
\Zend_Mail_Storage_Exception
methodpublicremoveMessage(  $id ) : null

stub for not supported message deletion

Parameters
Name Type Description
$id
Returns
Type Description
null
Throws
Exception Description
\Zend_Mail_Storage_Exception
methodpublicrenameFolder( string|\Zend_Mail_Storage_Folder $oldName, string $newName ) : null

rename and/or move folder

The new name has the same restrictions as in createFolder()

Parameters
Name Type Description
$oldName string|\Zend_Mail_Storage_Folder name or instance of folder
$newName string new global name of folder
Returns
Type Description
null
Throws
Exception Description
\Zend_Mail_Storage_Exception
methodpublicrewind( ) : void

Iterator::rewind()

Inherited from: \Zend_Mail_Storage_Abstract::rewind()

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.

methodpublicseek( int $pos ) : void

SeekableIterator::seek()

Inherited from: \Zend_Mail_Storage_Abstract::seek()
Parameters
Name Type Description
$pos int
Throws
Exception Description
\OutOfBoundsException
methodpublicselectFolder( \Zend_Mail_Storage_Folder|string $globalName ) : null

select given folder

Inherited from: \Zend_Mail_Storage_Folder_Maildir::selectFolder()

folder must be selectable!

Parameters
Name Type Description
$globalName \Zend_Mail_Storage_Folder|string global name of folder or instance for subfolder
Returns
Type Description
null
Throws
Exception Description
\Zend_Mail_Storage_Exception
methodpublicsetFlags( int $id, array $flags ) : void

set flags for message

NOTE: this method can't set the recent flag.

Parameters
Name Type Description
$id int number of message
$flags array new flags for message
Throws
Exception Description
\Zend_Mail_Storage_Exception
methodpublicsetQuota( bool|array $value ) : null

enable/disable quota and set a quota value if wanted or needed

You can enable/disable quota with true/false. If you don't have a MDA or want to enforce a quota value you can also set this value here. Use array('size' => SIZE_QUOTA, 'count' => MAX_MESSAGE) do define your quota. Order of these fields does matter!

Parameters
Name Type Description
$value bool|array new quota value
Returns
Type Description
null
methodpublicvalid( ) : boolean

Iterator::valid()

Inherited from: \Zend_Mail_Storage_Abstract::valid()
Returns
Type Description
boolean
Documentation was generated by DocBlox 0.13.3.