Added methods for checking if a mailbox exists and to create a mailbox.

This commit is contained in:
Roger Llopart Pla 2012-09-18 12:58:41 +02:00
parent 812e4eb048
commit ebeacf6edf

View File

@ -230,6 +230,21 @@ class Server
* @return string
*/
protected function getServerString()
{
$mailboxPath = $this->getServerSpecification();
if(isset($this->mailbox))
$mailboxPath .= $this->mailbox;
return $mailboxPath;
}
/**
* Returns the server specification, without adding any mailbox.
*
* @return string
*/
protected function getServerSpecification()
{
$mailboxPath = '{' . $this->serverPath;
@ -239,16 +254,12 @@ class Server
if ($this->service != 'imap')
$mailboxPath .= '/' . $this->service;
foreach($this->flags as $flag)
{
foreach ($this->flags as $flag) {
$mailboxPath .= '/' . $flag;
}
$mailboxPath .= '}';
if(isset($this->mailbox))
$mailboxPath .= $this->mailbox;
return $mailboxPath;
}
@ -359,4 +370,32 @@ class Server
{
return imap_expunge($this->getImapStream());
}
/**
* Checks if the given mailbox exists.
*
* @param $mailbox
*
* @return bool
*/
public function hasMailBox($mailbox)
{
return (boolean) imap_getmailboxes(
$this->getImapStream(),
$this->getServerString(),
$this->getServerSpecification() . $mailbox
);
}
/**
* Creates the given mailbox.
*
* @param $mailbox
*
* @return bool
*/
public function createMailBox($mailbox)
{
return imap_createmailbox($this->getImapStream(), $this->getServerSpecification() . $mailbox);
}
}