forked from extern/egroupware
161 lines
4.4 KiB
PHP
161 lines
4.4 KiB
PHP
<?php
|
|
/**
|
|
* EGroupware EMailAdmin: Interface for IMAP support
|
|
*
|
|
* @link http://www.stylite.de
|
|
* @package emailadmin
|
|
* @author Ralf Becker <rb@stylite.de>
|
|
* @author Stylite AG <info@stylite.de>
|
|
* @license http://opensource.org/licenses/gpl-license.php GPL - GNU General Public License
|
|
* @version $Id$
|
|
*/
|
|
|
|
define('IMAP_NAMESPACE_PERSONAL', 'personal');
|
|
define('IMAP_NAMESPACE_OTHERS' , 'others');
|
|
define('IMAP_NAMESPACE_SHARED' , 'shared');
|
|
define('IMAP_NAMESPACE_ALL' , 'all');
|
|
|
|
/**
|
|
* This class holds all information about the imap connection.
|
|
* This is the base class for all other imap classes.
|
|
*
|
|
* Also proxies Sieve calls to emailadmin_sieve (eg. it behaves like the former felamimail bosieve),
|
|
* to allow IMAP plugins to also manage Sieve connection.
|
|
*/
|
|
interface defaultimap
|
|
{
|
|
/**
|
|
* adds a account on the imap server
|
|
*
|
|
* @param array $_hookValues
|
|
* @return bool true on success, false on failure
|
|
*/
|
|
function addAccount($_hookValues);
|
|
|
|
/**
|
|
* updates a account on the imap server
|
|
*
|
|
* @param array $_hookValues
|
|
* @return bool true on success, false on failure
|
|
*/
|
|
function updateAccount($_hookValues);
|
|
|
|
/**
|
|
* deletes a account on the imap server
|
|
*
|
|
* @param array $_hookValues
|
|
* @return bool true on success, false on failure
|
|
*/
|
|
function deleteAccount($_hookValues);
|
|
|
|
/**
|
|
* converts a foldername from current system charset to UTF7
|
|
*
|
|
* @param string $_folderName
|
|
* @return string the encoded foldername
|
|
*/
|
|
function encodeFolderName($_folderName);
|
|
|
|
/**
|
|
* returns the supported capabilities of the imap server
|
|
* return false if the imap server does not support capabilities
|
|
*
|
|
* @return array the supported capabilites
|
|
*/
|
|
function getCapabilities();
|
|
|
|
/**
|
|
* return the delimiter used by the current imap server
|
|
*
|
|
* @return string the delimimiter
|
|
*/
|
|
function getDelimiter();
|
|
|
|
/**
|
|
* get the effective Username for the Mailbox, as it is depending on the loginType
|
|
* @param string $_username
|
|
* @return string the effective username to be used to access the Mailbox
|
|
*/
|
|
function getMailBoxUserName($_username);
|
|
|
|
/**
|
|
* Create mailbox string from given mailbox-name and user-name
|
|
*
|
|
* @param string $_folderName=''
|
|
* @return string utf-7 encoded (done in getMailboxName)
|
|
*/
|
|
function getUserMailboxString($_username, $_folderName='');
|
|
|
|
/**
|
|
* get list of namespaces
|
|
*
|
|
* @return array with keys 'personal', 'shared' and 'others' and value array with values for keys 'name' and 'delimiter'
|
|
*/
|
|
function getNameSpaceArray();
|
|
/**
|
|
* return the quota for another user
|
|
* used by admin connections only
|
|
*
|
|
* @param string $_username
|
|
* @param string $_what - what to retrieve either QMAX, USED or ALL is supported
|
|
* @return mixed the quota for specified user (by what) or array with all available Quota Information, or false
|
|
*/
|
|
function getQuotaByUser($_username, $_what='QMAX');
|
|
|
|
/**
|
|
* returns information about a user
|
|
*
|
|
* Only a stub, as admin connection requires, which is only supported for Cyrus
|
|
*
|
|
* @param string $_username
|
|
* @return array userdata
|
|
*/
|
|
function getUserData($_username);
|
|
|
|
/**
|
|
* opens a connection to a imap server
|
|
*
|
|
* @param bool $_adminConnection create admin connection if true
|
|
* @param int $_timeout=null timeout in secs, if none given fmail pref or default of 20 is used
|
|
* @throws Exception on error
|
|
*/
|
|
function openConnection($_adminConnection=false, $_timeout=null);
|
|
|
|
/**
|
|
* set userdata
|
|
*
|
|
* @param string $_username username of the user
|
|
* @param int $_quota quota in bytes
|
|
* @return bool true on success, false on failure
|
|
*/
|
|
function setUserData($_username, $_quota);
|
|
|
|
/**
|
|
* check if imap server supports given capability
|
|
*
|
|
* @param string $_capability the capability to check for
|
|
* @return bool true if capability is supported, false if not
|
|
*/
|
|
function supportsCapability($_capability);
|
|
|
|
/**
|
|
* Set vacation message for given user
|
|
*
|
|
* @param int|string $_euser nummeric account_id or imap username
|
|
* @param array $_vacation
|
|
* @param string $_scriptName=null
|
|
* @return boolean
|
|
*/
|
|
public function setVacationUser($_euser, array $_vacation, $_scriptName=null);
|
|
|
|
/**
|
|
* Get vacation message for given user
|
|
*
|
|
* @param int|string $_euser nummeric account_id or imap username
|
|
* @param string $_scriptName=null
|
|
* @throws Exception on connection error or authentication failure
|
|
* @return array
|
|
*/
|
|
public function getVacationUser($_euser, $_scriptName=null);
|
|
}
|