2010-12-31 3 views
0

Ниже приведена функция из zend_mail_protocol_imap. Я читал, что для поиска сообщений электронной почты я хотел бы переопределить его, используя zend_mail_storage_imap (вот что я сейчас использую для получения электронной почты из gmail). Я копирую и вставляю следующую функцию в zend_mail_storage_imap, но у меня возникают проблемы с параметрами. Я не могу найти документацию о том, что использовать для параметра $ params массива. Сначала я подумал, что это поисковый запрос, прежде чем читать его более подробно. У меня нет идей. Вот функция ...Как искать почтовые ящики с помощью zend mail

/** 
* do a search request 
* 
* This method is currently marked as internal as the API might change and is not 
* safe if you don't take precautions. 
* 
* @internal 
* @return array message ids 
*/ 
public function search(array $params) 
{                      
    $response = $this->requestAndResponse('SEARCH', $params); 
    if (!$response) { 
     return $response; 
    } 

    foreach ($response as $ids) { 
     if ($ids[0] == 'SEARCH') { 
      array_shift($ids); 
      return $ids; 
     } 
    } 
    return array(); 
} 

Первоначально я думал, что это будет делать трюк ...

$storage = new Zend_Mail_Storage_Imap($imap); 

$searchresults = $storage->search('search term'); 

Вот сообщение об ошибке:

Catchable fatal error: Argument 1 passed to Zend_Mail_Storage_Imap::search() must be an array, string given, called in...

Но нет, мне нужно отправить информация в массиве. Есть идеи?

+0

Привет, Боб, ты когда-нибудь это понял? Я пытаюсь сделать то же самое сейчас. – themerlinproject

+0

Нет, но я нашел аналогичную функциональность, переписав код из zend_mail в библиотеку php_imap: http://www.php.net/manual/en/ref.imap.php –

ответ

0

Как насчет

$searchresults = $storage->search(array('search term')); 
+0

Я пробовал это и получил другую фатальную ошибку «Неустранимая ошибка : Вызов неопределенного метода Zend_Mail_Storage_Imap :: search() in ... " –

0

это, как я сделал это

$searchTerm = 'TEXT ' . $searchTerm ; 
$searchresults = $storage->search(array($searchTerm)); 

Поиск параметров для Зенда таким же, как в imap_search. Используйте http://php.net/manual/en/function.imap-search.php для дальнейшего использования.