好吧,在ZETA电子邮件客户端上没有成功,所以现在我尝试安装Horde IMAP客户端库。我设法登录到我的帐户,搜索电子邮件,也得到了结果,但我不知道如何获取电子邮件数据,并且文档也没有真正的帮助:|
我假设我必须使用Horde_Imap_Client_Base::fetch()方法来获取一些电子邮件,该方法接受两个参数,一个邮箱名称和一个Horde_Imap_Client_Fetch_Query对象,但我不知道如何获取第二个对象:|
这个对象应该由某个Base函数返回,还是应该用我想要的查询参数来构建这个对象?如果是第二种情况,我应该如何从下面的示例中重新构建fetch query对象中的搜索查询?
以下是我如何搜索我的收件箱,查找特定联系人在特定日期的邮件:
$client = new Horde_Imap_Client_Socket(array(
'username' => 'my.email@address.com',
'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","mycontact@contact.email");
$results = $client->search('INBOX', $query);Horde_Imap_Client_Base::search()返回一个数组,其中包含搜索结果(搜索到的电子邮件的消息id)和一些附加数据。
发布于 2016-04-28 03:44:42
没有完全回答你的问题。这就是我搜索未被删除的邮件的方式。
$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);
}发布于 2016-02-03 23:06:36
$results = $client->search($mailbox, $searchquery, array('sort' => array($sSortDir, $sSort)));
$uids = $results['match'];
for ($i = $i_start; $i < $i_to; $i++)
{
$muid = new Horde_Imap_Client_Ids($uids->ids[$i]);
$list = $client->fetch($mailbox, $query, array(
'ids' => $muid
));
$flags = $list->first()->getFlags();
$part = $list->first()->getStructure();
$map = $part->ContentTypeMap();
$envelope = $list->first()->getEnvelope();
}https://stackoverflow.com/questions/32824207
复制相似问题