API Documentation

Mail/Storage/Writable/Maildir.php

Includes Classes 
category
Zend
copyright
Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com)
license
http://framework.zend.com/license/new-bsd New BSD License
package
Zend_Mail
subpackage
Storage
version
$Id: Maildir.php 20096 2010-01-06 02:05:09Z bkarwin $
Classes
Zend_Mail_Storage_Writable_Maildir

Description

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.

Zend_Mail_Storage_Writable_Maildir

Extends from
Zend_Mail_Storage_Folder_Maildir
Implements
Zend_Mail_Storage_Writable_Interface
category
Zend
copyright
Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com)
license
http://framework.zend.com/license/new-bsd New BSD License
package
Zend_Mail
subpackage
Storage
Properties
$_quota
Methods
initMaildir
__construct
createFolder
removeFolder
renameFolder
_createUniqueId
_createTmpFile
_getInfoString
appendMessage
copyMessage
moveMessage
setFlags
removeMessage
setQuota
getQuota
_calculateMaildirsize
_calculateQuota
_addQuotaEntry
checkQuota

Description

Properties

$_quota

bool|int $_quota = ''

use quota and size of quota if given

Details

$_quota
bool|int
visibility
protected
default
final
false
static
false

Methods

__construct

__construct( $params $params ) :

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

Arguments
$params
$params
array mail reader specific parameters
Details
visibility
public
final
false
static
false
throws

_addQuotaEntry

_addQuotaEntry(  $size,  $count = 1 ) :
Arguments
$size
$count
Details
visibility
protected
final
false
static
false

_calculateMaildirsize

_calculateMaildirsize( ) :

Details
visibility
protected
final
false
static
false
see
http://www.inter7.com/courierimap/README.maildirquota.html "Calculating maildirsize"

_calculateQuota

_calculateQuota(  $forceRecalc = false ) :

Arguments
$forceRecalc
Details
visibility
protected
final
false
static
false
see
http://www.inter7.com/courierimap/README.maildirquota.html "Calculating the quota for a Maildir++"

_createTmpFile

_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!

Arguments
$folder
string
name of current folder without leading .
Output
array
array('dirname' => dir of maildir folder, 'uniq' => unique id, 'filename' => name of create file 'handle' => file opened for writing)
Details
visibility
protected
final
false
static
false
throws

_createUniqueId

_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.

Output
string
new uniqueid
Details
visibility
protected
final
false
static
false

_getInfoString

_getInfoString( array $flags ) : string

create an info string for filenames with given flags

Arguments
$flags
array
wanted flags, with the reference you'll get the set flags with correct key (= char for flag)
Output
string
info string for version 2 filenames including the leading colon
Details
visibility
protected
final
false
static
false
throws

appendMessage

appendMessage( string|stream $message, null|string|Zend_Mail_Storage_Folder $folder = null, null|array $flags = null, bool $recent = false ) :

append a new message to mail storage

Arguments
$message
stringstream
message as string or stream resource
$folder
nullstringZend_Mail_Storage_Folder
folder for new message, else current folder is taken
$flags
nullarray
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
Details
visibility
public
final
false
static
false
throws

checkQuota

checkQuota( bool $detailedResponse = false,  $forceRecalc = false ) : bool|array

check if storage is currently over quota

Arguments
$detailedResponse
bool
return known data of quota and current size and message count @see _calculateQuota()
$forceRecalc
Output
bool|array
over quota state or detailed response
Details
visibility
public
final
false
static
false

copyMessage

copyMessage( int $id, string|Zend_Mail_Storage_Folder $folder ) : null

copy an existing message

Arguments
$id
int
number of message
$folder
stringZend_Mail_Storage_Folder
name or instance of targer folder
Output
null
Details
visibility
public
final
false
static
false
throws

createFolder

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

Arguments
$name
string
global name of folder, local name if $parentFolder is set
$parentFolder
stringZend_Mail_Storage_Folder
parent folder for new folder, else root folder is parent
Output
string
only used internally (new created maildir)
Details
visibility
public
final
false
static
false
throws

getQuota

getQuota(  $fromStorage = false ) : bool|array

get currently set quota

Arguments
$fromStorage
Output
bool|array
Details
visibility
public
final
false
static
false
see
Zend_Mail_Storage_Writable_Maildir::setQuota()

initMaildir

initMaildir( string $dir ) : null

create a new maildir

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

Arguments
$dir
string
directory for the new maildir (may already exist)
Output
null
Details
visibility
public
final
false
static
true
throws

moveMessage

moveMessage( int $id, string|Zend_Mail_Storage_Folder $folder ) : null

move an existing message

Arguments
$id
int
number of message
$folder
stringZend_Mail_Storage_Folder
name or instance of targer folder
Output
null
Details
visibility
public
final
false
static
false
throws

removeFolder

removeFolder( string|Zend_Mail_Storage_Folder $name ) : null

remove a folder

Arguments
$name
stringZend_Mail_Storage_Folder
name or instance of folder
Output
null
Details
visibility
public
final
false
static
false
throws

removeMessage

removeMessage(  $id ) : null

stub for not supported message deletion

Arguments
$id
Output
null
Details
visibility
public
final
false
static
false
throws

renameFolder

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

Arguments
$oldName
stringZend_Mail_Storage_Folder
name or instance of folder
$newName
string
new global name of folder
Output
null
Details
visibility
public
final
false
static
false
throws

setFlags

setFlags( int $id, array $flags ) :

set flags for message

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

Arguments
$id
int
number of message
$flags
array
new flags for message
Details
visibility
public
final
false
static
false
throws

setQuota

setQuota( 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!

Arguments
$value
boolarray
new quota value
Output
null
Details
visibility
public
final
false
static
false
Documentation was generated by DocBlox.