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

怎么样

$searchresults = $storage->search(array('search term'));
于 2011-01-02T17:05:35.243 回答
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

storage\imap 中(仍然)没有搜索功能,该功能实际上在协议类中。

要在 storage\imap 中进行搜索,请添加此功能:

public function search($params = null) {
    return $this->protocol->search($params);
}

现在你应该可以这样打电话了

$storage->search(array('SUBJECT "test","UNSEEN",'FROM "santa@northpole.org"'));

结果应该是消息的 ids/uids 列表,就像 imap_search 一样。恕我直言,此函数或协议的 getter 应该在存储类中,但它不是。

于 2019-06-12T11:46:08.640 回答