示例#1
0
    {
        $messages = array();
        $this->xp = new DomXPath($this->mbox);
        if ($type == Mailbox::MBX_ALL) {
            $nodes = $this->xp->query("message");
        } else {
            $nodes = $this->xp->query("message[@type='" . $type . "']");
        }
        for ($n = 0; $n < $nodes->length; $n++) {
            $messages[] = array('msgid' => $nodes->item($n)->getAttribute('msgid'), 'unread' => $nodes->item($n)->getAttribute('read') != '1', 'from' => $nodes->item($n)->getAttribute('from'), 'date' => $nodes->item($n)->getAttribute('date'), 'size' => strlen($nodes->item($n)->nodeValue), 'subject' => $nodes->item($n)->getAttribute('subject'));
        }
        return $messages;
    }
    /**
     * @brief Return the message with the matching id
     * 
     * @param string $msgid The message id
     * @return MailMessage The message
     */
    function getMessage($msgid)
    {
        console::debugEx(LOG_DEBUG, __CLASS__, "Fetching message %s...", $msgid);
        $messages = $this->xp->query("message[@msgid='" . $msgid . "']");
        $mailmsg = new MailMessage();
        $mailmsg->subject = $messages->item(0)->getAttribute('subject');
        $mailmsg->body = $messages->item(0)->nodeValue;
        return $mailmsg;
    }
}
Mailbox::registerBackend('fs', 'FilesystemMailStorage');