header & actions class added
This commit is contained in:
parent
48b63f0eb7
commit
b959c2b408
5 changed files with 101 additions and 11 deletions
|
|
@ -6,6 +6,8 @@
|
|||
namespace Clivern\Imap\Core;
|
||||
|
||||
use Clivern\Imap\Core\Connection;
|
||||
use Clivern\Imap\Core\Message\Header;
|
||||
use Clivern\Imap\Core\Message\Actions;
|
||||
|
||||
/**
|
||||
* Message Class
|
||||
|
|
@ -19,6 +21,16 @@ class Message
|
|||
*/
|
||||
protected $connection;
|
||||
|
||||
/**
|
||||
* @var Header
|
||||
*/
|
||||
protected $header;
|
||||
|
||||
/**
|
||||
* @var Actions
|
||||
*/
|
||||
protected $actions;
|
||||
|
||||
/**
|
||||
* @var integer
|
||||
*/
|
||||
|
|
@ -34,9 +46,11 @@ class Message
|
|||
*
|
||||
* @param Connection $connection
|
||||
*/
|
||||
public function __construct(Connection $connection)
|
||||
public function __construct(Connection $connection, Header $header, Actions $actions)
|
||||
{
|
||||
$this->connection = $connection;
|
||||
$this->header = $header;
|
||||
$this->actions = $actions;
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -103,6 +117,18 @@ class Message
|
|||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get Message Header
|
||||
*
|
||||
* @param string $key
|
||||
* @param boolean $default
|
||||
* @return mixed
|
||||
*/
|
||||
public function header($key, $default = false)
|
||||
{
|
||||
return $this->header->config($this->msg_number, $this->uid, $options = 0)->get($key, $default);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get Body
|
||||
*
|
||||
|
|
|
|||
|
|
@ -30,10 +30,22 @@ class Actions
|
|||
*/
|
||||
protected $message_uid;
|
||||
|
||||
public function __construct(Connection $connection, $message_number, $message_uid)
|
||||
public function __construct(Connection $connection)
|
||||
{
|
||||
$this->connection = $connection;
|
||||
}
|
||||
|
||||
/**
|
||||
* Config Message
|
||||
*
|
||||
* @param integer $message_number
|
||||
* @param integer $message_uid
|
||||
* @return Actions
|
||||
*/
|
||||
public function config($message_number, $message_uid)
|
||||
{
|
||||
$this->message_number = $message_number;
|
||||
$this->message_uid = $message_uid;
|
||||
return $this;
|
||||
}
|
||||
}
|
||||
|
|
@ -25,21 +25,45 @@ class Header
|
|||
*/
|
||||
protected $message_number;
|
||||
|
||||
/**
|
||||
* @var array
|
||||
*/
|
||||
protected $header = [];
|
||||
|
||||
/**
|
||||
* @var integer
|
||||
*/
|
||||
protected $message_uid;
|
||||
|
||||
public function __construct(Connection $connection, $message_number, $message_uid)
|
||||
/**
|
||||
* @var array
|
||||
*/
|
||||
protected $header = [];
|
||||
|
||||
|
||||
/**
|
||||
* Class Constructor
|
||||
*
|
||||
* @param Connection $connection
|
||||
*/
|
||||
public function __construct(Connection $connection)
|
||||
{
|
||||
$this->connection = $connection;
|
||||
}
|
||||
|
||||
/**
|
||||
* Config Message
|
||||
*
|
||||
* @param integer $message_number
|
||||
* @param integer $message_uid
|
||||
* @return Header
|
||||
*/
|
||||
public function config($message_number, $message_uid, $options = 0)
|
||||
{
|
||||
if( !empty($this->header) ){
|
||||
return $this;
|
||||
}
|
||||
|
||||
$this->message_number = $message_number;
|
||||
$this->message_uid = $message_uid;
|
||||
$this->load();
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -68,10 +92,31 @@ class Header
|
|||
/**
|
||||
* Load Header Data
|
||||
*
|
||||
* @return boolean
|
||||
* @param mixed $options
|
||||
* @return Header
|
||||
*/
|
||||
protected function load()
|
||||
protected function load($options = 0)
|
||||
{
|
||||
#~
|
||||
$overview = imap_fetch_overview($this->connection->getStream(), $this->message_number, $options);
|
||||
|
||||
foreach ($overview as $key => $item_overview) {
|
||||
$this->header['subject'] = (isset($item_overview->subject)) ? $item_overview->subject : false;
|
||||
$this->header['from'] = (isset($item_overview->from)) ? $item_overview->from : false;
|
||||
$this->header['to'] = (isset($item_overview->to)) ? $item_overview->to : false;
|
||||
$this->header['date'] = (isset($item_overview->date)) ? $item_overview->date : false;
|
||||
$this->header['message_id'] = (isset($item_overview->message_id)) ? $item_overview->message_id : false;
|
||||
$this->header['size'] = (isset($item_overview->size)) ? $item_overview->size : false;
|
||||
$this->header['uid'] = (isset($item_overview->uid)) ? $item_overview->uid : false;
|
||||
$this->header['msgno'] = (isset($item_overview->msgno)) ? $item_overview->msgno : false;
|
||||
$this->header['recent'] = (isset($item_overview->recent)) ? $item_overview->recent : false;
|
||||
$this->header['flagged'] = (isset($item_overview->flagged)) ? $item_overview->flagged : false;
|
||||
$this->header['answered'] = (isset($item_overview->answered)) ? $item_overview->answered : false;
|
||||
$this->header['deleted'] = (isset($item_overview->deleted)) ? $item_overview->deleted : false;
|
||||
$this->header['seen'] = (isset($item_overview->seen)) ? $item_overview->seen : false;
|
||||
$this->header['draft'] = (isset($item_overview->draft)) ? $item_overview->draft : false;
|
||||
$this->header['udate'] = (isset($item_overview->udate)) ? $item_overview->udate : false;
|
||||
}
|
||||
|
||||
return $this;
|
||||
}
|
||||
}
|
||||
|
|
@ -7,6 +7,8 @@ namespace Clivern\Imap\Core;
|
|||
|
||||
use Clivern\Imap\Core\Message;
|
||||
use Clivern\Imap\Core\Connection;
|
||||
use Clivern\Imap\Core\Message\Header;
|
||||
use Clivern\Imap\Core\Message\Actions;
|
||||
|
||||
/**
|
||||
* Message Iterator Class
|
||||
|
|
@ -16,6 +18,9 @@ use Clivern\Imap\Core\Connection;
|
|||
class MessageIterator extends \ArrayIterator
|
||||
{
|
||||
|
||||
/**
|
||||
* @var Connection
|
||||
*/
|
||||
protected $connection;
|
||||
|
||||
/**
|
||||
|
|
@ -37,7 +42,7 @@ class MessageIterator extends \ArrayIterator
|
|||
*/
|
||||
public function current()
|
||||
{
|
||||
$message = new Message($this->connection);
|
||||
$message = new Message($this->connection, new Header($this->connection), new Actions($this->connection));
|
||||
return $message->setUid(parent::current())->config();
|
||||
}
|
||||
}
|
||||
|
|
@ -9,6 +9,8 @@ use Clivern\Imap\Core\Connection;
|
|||
use Clivern\Imap\Core\MessageIterator;
|
||||
use Clivern\Imap\Core\Message;
|
||||
use Clivern\Imap\Core\Search;
|
||||
use Clivern\Imap\Core\Message\Header;
|
||||
use Clivern\Imap\Core\Message\Actions;
|
||||
|
||||
/**
|
||||
* MailBox Class
|
||||
|
|
@ -102,7 +104,7 @@ class MailBox
|
|||
{
|
||||
$this->connection->survive($this->folder);
|
||||
|
||||
$message = new Message($this->connection);
|
||||
$message = new Message($this->connection, new Header($this->connection), new Actions($this->connection));
|
||||
|
||||
if( $message_number == false ){
|
||||
return $message->setUid($message_uid)->config();
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue