/** * Constructor * * @param Horde_Imap_Client_Base $imap The imap client object. * @param Horde_Imap_Client_Mailbox $mbox The mailbox object. * @param Horde_Imap_Client_Data_Fetch $data The data returned from a FETCH * must contain at least uid, * structure and flags. */ public function __construct(Horde_Imap_Client_Base $imap, Horde_Imap_Client_Mailbox $mbox, Horde_Imap_Client_Data_Fetch $data) { $this->_imap = $imap; $this->_message = new Horde_ActiveSync_Mime($data->getStructure()); $this->_uid = $data->getUid(); $this->_flags = $data->getFlags(); $this->_mbox = $mbox; $this->_data = $data; $this->_envelope = $data->getEnvelope(); }
/** * Accessor * * @param string $property The property. * * @return mixed */ public function &__get($property) { switch ($property) { case 'envelope': $e = $this->_data->getEnvelope(); return $e; case 'flags': $f = $this->_data->getFlags(); return $f; case 'uid': $u = $this->_data->getUid(); return $u; case 'basePart': if (empty($this->_basePart)) { $this->_basePart = new Horde_ActiveSync_Mime($this->_data->getStructure()); } return $this->_basePart; } throw new InvalidArgumentException(sprintf('The property %s of Horde_ActiveSync_Imap_Message does not exist', $property)); }
/** * @return array */ public function getFlags() { $flags = $this->fetch->getFlags(); return ['unseen' => !in_array(Horde_Imap_Client::FLAG_SEEN, $flags), 'flagged' => in_array(Horde_Imap_Client::FLAG_FLAGGED, $flags), 'answered' => in_array(Horde_Imap_Client::FLAG_ANSWERED, $flags), 'deleted' => in_array(Horde_Imap_Client::FLAG_DELETED, $flags), 'draft' => in_array(Horde_Imap_Client::FLAG_DRAFT, $flags), 'forwarded' => in_array(Horde_Imap_Client::FLAG_FORWARDED, $flags), 'hasAttachments' => $this->hasAttachments($this->fetch->getStructure())]; }