Esempio n. 1
0
 /**
  * @param array $messageIdSet
  * @param Folder $folder
  * @return MessageCollection
  */
 function GetMessages(&$messageIdUidSet, &$folder, $setRead = false)
 {
     $mailCollection = new WebMailMessageCollection();
     $GLOBALS[MailDefaultCharset] = $this->_account->GetDefaultIncCharset();
     $GLOBALS[MailOutputCharset] = $this->_account->GetUserCharset();
     ConvertUtils::SetLimits();
     $messageIdSet = array_keys($messageIdUidSet);
     $messageUidSet = array_values($messageIdUidSet);
     for ($i = 0, $c = count($messageIdUidSet); $i < $c; $i++) {
         $messageId =& $messageIdSet[$i];
         $messageUid =& $messageUidSet[$i];
         $mailMess = null;
         if ($folder->SyncType == FOLDERSYNC_DirectMode) {
             if ($this->MailStorage->Connect()) {
                 $mailMess =& $this->MailStorage->LoadMessage($messageUid, true, $folder);
             }
         } elseif ($this->DbStorage->Connect()) {
             if ($this->DbStorage->GetMessageDownloadedFlag($messageId, $folder)) {
                 $mailMess =& $this->DbStorage->LoadMessage($messageId, false, $folder);
             } elseif ($this->MailStorage->Connect()) {
                 $mailMess =& $this->MailStorage->LoadMessage($messageUid, true, $folder);
             }
         }
         if ($setRead && $mailMess) {
             $mailMess->Flags = $mailMess->Flags | MESSAGEFLAGS_Seen;
         }
         if ($mailMess) {
             $mailMess->IdFolder = $folder->IdDb;
         }
         $mailCollection->Add($mailMess);
         unset($mailMess);
     }
     return $mailCollection;
 }
 /**
  * @param int $messageId
  * @param string $messageUid
  * @param Folder $folder
  * @return WebMailMessage
  */
 function &GetMessage($messageId, $messageUid, &$folder)
 {
     $mailMess = null;
     $GLOBALS[MailDefaultCharset] = $this->_account->GetDefaultIncCharset();
     $GLOBALS[MailOutputCharset] = $this->_account->GetUserCharset();
     @ini_set('memory_limit', MEMORYLIMIT);
     @set_time_limit(TIMELIMIT);
     if ($folder->SyncType == FOLDERSYNC_DirectMode) {
         if ($this->MailStorage->Connect()) {
             $mailMess =& $this->MailStorage->LoadMessage($messageUid, true, $folder);
         }
     } elseif ($this->DbStorage->Connect()) {
         if ($this->DbStorage->GetMessageDownloadedFlag($messageId, $folder)) {
             $mailMess =& $this->DbStorage->LoadMessage($messageId, false, $folder);
         } elseif ($this->MailStorage->Connect()) {
             $mailMess =& $this->MailStorage->LoadMessage($messageUid, true, $folder);
         }
     }
     return $mailMess;
 }