好吧,ZETA 电子邮件客户端没有运气,所以现在我尝试安装 Horde IMAP 客户端库。我已经成功登录我的帐户,并搜索电子邮件,也得到了结果,但我不知道如何获取电子邮件数据,并且文档并没有真正帮助:|
我认为我必须使用 Horde_Imap_Client_Base::fetch()
方法来获取一些电子邮件,该方法接受两个参数,一个邮箱名称和一个 Horde_Imap_Client_Fetch_Query
code> 对象,但我不知道如何获取第二个对象:|
这个对象应该由基本函数之一返回,还是应该使用我想要的查询参数构建这个对象?如果是第二种,我应该如何在下面的示例中的获取查询对象中重建我的搜索查询?
以下是我在收件箱中搜索特定日期来自特定联系人的邮件的方法:
$client = new Horde_Imap_Client_Socket(array(
'username' => '<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="90fde9bef5fdf1f9fcd0f1f4f4e2f5e3e3bef3fffd" rel="noreferrer noopener nofollow">[email protected]</a>',
'password' => 'xxxxxxxxxx',
'hostspec' => 'my.mail.server',
'port' => '143',
'debug' => '/tmp/foo',
));
$query = new Horde_Imap_Client_Fetch_Query();
$query->dateSearch(new Date(), Horde_Imap_Client_Search_Query::DATE_ON);
$query->headerText("from","<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="2c41554f4342584d4f586c4f4342584d4f580249414d4540" rel="noreferrer noopener nofollow">[email protected]</a>");
$results = $client->search('INBOX', $query);
Horde_Imap_Client_Base::search()
返回一个数组,其中包含搜索结果(搜索电子邮件的消息 ID)和一些附加数据。
最佳答案
没有完全回答你的问题。这就是我搜索未删除邮件的方式。
$client = new Horde_Imap_Client_Socket(array(
'username' => $user,
'password' => $pass,
'hostspec' => $server,
'secure' => 'ssl'
));
$query = new Horde_Imap_Client_Search_Query();
$query->flag(Horde_Imap_Client::FLAG_DELETED, false);
$results = $client->search('INBOX', $query);
foreach($results['match'] as $match) {
$muid = new Horde_Imap_Client_Ids($match);
$fetchQuery = new Horde_Imap_Client_Fetch_Query();
$fetchQuery->imapDate();
$list = $client->fetch('INBOX', $fetchQuery, array(
'ids' => $muid
));
var_dump($list);
}
关于php - HORDE Imap PHP 客户端 - 如何获取消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32824207/