0

以下は zend_mail_protocol_imap の関数です。メールを検索するためにそれを読んだので、 zend_mail_storage_imap を使用してオーバーライドしたいと思います(これは、gmailからメールを取得するために現在使用しているものです)。次の関数をコピーして zend_mail_storage_imap に貼り付けましたが、パラメータに問題があります。配列 $params に何を使用するかに関するドキュメントが見つかりません。もっとよく読む前に、最初は検索語だと思っていました。私はアイデアがありません。ここに機能があります...

/**
 * 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');   

エラーメッセージは次のとおりです。

キャッチ可能な致命的なエラー: Zend_Mail_Storage_Imap::search() に渡される引数 1 は、指定された文字列で呼び出された配列でなければなりません...

しかし、いいえ、情報を配列で送信する必要があります。何か案は?

4

3 に答える 3

0

これが私がやった方法です

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

zend の検索パラメータは imap_search と同じです。詳しくはhttp://php.net/manual/en/function.imap-search.phpを参照してください。

于 2013-01-29T03:43:08.573 に答える
0

どうですか

$searchresults = $storage->search(array('search term'));
于 2011-01-02T17:05:35.243 に答える