{ $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');