/** * create new message for the cache * * @param array $_message * @param Felamimail_Model_Folder $_folder * @return Felamimail_Model_Message */ protected function _createModelMessage(array $_message, Felamimail_Model_Folder $_folder = NULL) { // Optimization!!! if ($_folder == NULL) { if (isset($_message['folder_id'])) { $_folder = array_key_exists($_message['folder_id'], $this->_folderMap) ? $this->_folderMap[$_message['folder_id']] : ($this->_folderMap[$_message['folder_id']] = Felamimail_Controller_Folder::getInstance()->get($_message['folder_id'])); } else { return NULL; } } $message = new Felamimail_Model_Message(array('id' => self::createMessageId($_folder->account_id, $_folder->getId(), $_message['uid']), 'account_id' => $_folder->account_id, 'messageuid' => $_message['uid'], 'folder_id' => $_folder->getId(), 'timestamp' => Tinebase_DateTime::now(), 'received' => Felamimail_Message::convertDate($_message['received']), 'size' => $_message['size'], 'flags' => $_message['flags']), true); $message->parseStructure($_message['structure']); $message->parseHeaders($_message['header']); $message->fixToListModel(); $message->parseBodyParts(); $message->parseSmime($_message['structure']); $attachments = Felamimail_Controller_Message::getInstance()->getAttachments($message); $message->has_attachment = count($attachments) > 0 ? true : false; return $message; }
/** * get message content (body, headers and attachments) * * @param Felamimail_Model_Message $_message * @param Felamimail_Model_Account $_account * @param string $_partId */ protected function _getCompleteMessageContent(Felamimail_Model_Message $_message, Felamimail_Model_Account $_account, $_partId = NULL) { $mimeType = $_account->display_format == Felamimail_Model_Account::DISPLAY_HTML || $_account->display_format == Felamimail_Model_Account::DISPLAY_CONTENT_TYPE ? Zend_Mime::TYPE_HTML : Zend_Mime::TYPE_TEXT; $headers = $this->getMessageHeaders($_message, $_partId, true); $body = $this->getMessageBody($_message, $_partId, $mimeType, $_account, true); $attachments = $this->getAttachments($_message, $_partId); if ($_partId === null) { $message = $_message; $message->body = $body; $message->headers = $headers; $message->attachments = $attachments; // make sure the structure is present $message->structure = $message->structure; } else { // create new object for rfc822 message $structure = $_message->getPartStructure($_partId, FALSE); $message = new Felamimail_Model_Message(array('account_id' => $_message->account_id, 'messageuid' => $_message->messageuid, 'folder_id' => $_message->folder_id, 'received' => $_message->received, 'size' => isset($structure['size']) ? $structure['size'] : 0, 'partid' => $_partId, 'body' => $body, 'headers' => $headers, 'attachments' => $attachments)); $message->parseHeaders($headers); $structure = isset($structure['messageStructure']) ? $structure['messageStructure'] : $structure; $message->parseStructure($structure); } return $message; }
/** * create new message for the cache * * @param array $_message * @param Felamimail_Model_Folder $_folder * @return Felamimail_Model_Message */ protected function _createMessageToCache(array $_message, Felamimail_Model_Folder $_folder) { $message = new Felamimail_Model_Message(array('account_id' => $_folder->account_id, 'messageuid' => $_message['uid'], 'folder_id' => $_folder->getId(), 'timestamp' => Tinebase_DateTime::now(), 'received' => Felamimail_Message::convertDate($_message['received']), 'size' => $_message['size'], 'flags' => $_message['flags'])); $message->parseStructure($_message['structure']); $message->parseHeaders($_message['header']); $message->parseBodyParts(); $attachments = $this->getAttachments($message); $message->has_attachment = count($attachments) > 0 ? true : false; return $message; }
/** * get message content (body, headers and attachments) * * @param Felamimail_Model_Message $_message * @param Felamimail_Model_Account $_account * @param string $_partId */ protected function _getCompleteMessageContent(Felamimail_Model_Message $_message, Felamimail_Model_Account $_account, $_partId = NULL) { $mimeType = $_account->display_format == Felamimail_Model_Account::DISPLAY_HTML || $_account->display_format == Felamimail_Model_Account::DISPLAY_CONTENT_TYPE ? Zend_Mime::TYPE_HTML : Zend_Mime::TYPE_TEXT; $headers = $this->getMessageHeaders($_message, $_partId, true); $attachments = $this->getAttachments($_message, $_partId); $this->_attachments = $attachments; $body = $this->getMessageBody($_message, $_partId, $mimeType, $_account, true); $signature = $this->getDigitalSignature($_message, $_partId); if ($_partId === null) { $message = $_message; $message->body = $body; $message->headers = $headers; $message->attachments = $attachments; $message->signature_info = $signature; } else { // create new object for rfc822 message $structure = $_message->getPartStructure($_partId, FALSE); $message = new Felamimail_Model_Message(array('messageuid' => $_message->messageuid, 'folder_id' => $_message->folder_id, 'received' => $_message->received, 'size' => array_key_exists('size', $structure) ? $structure['size'] : 0, 'partid' => $_partId, 'body' => $body, 'headers' => $headers, 'attachments' => $attachments, 'signature_info' => $signature)); $message->parseHeaders($headers); $structure = array_key_exists('messageStructure', $structure) ? $structure['messageStructure'] : $structure; $message->parseStructure($structure); $message->parseSmime($message->structure); } $message->sendReadingConfirmation(); return $message; }