Merge pull request #6 from Wiakowe/create-mailbox-method

Added methods for checking if a mailbox exists and to create a mailbox.
This commit is contained in:
Robert Hafner 2012-10-04 10:16:05 -07:00
commit 17b57c53ec

View File

@ -235,25 +235,36 @@ class Server
* @return string
*/
public 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;
if(isset($this->port))
if (isset($this->port))
$mailboxPath .= ':' . $this->port;
if($this->service != 'imap')
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;
}
@ -364,4 +375,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);
}
}