Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/259.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
HORDE Imap PHP客户端-如何获取消息_Php_Email_Horde - Fatal编程技术网

HORDE Imap PHP客户端-如何获取消息

HORDE Imap PHP客户端-如何获取消息,php,email,horde,Php,Email,Horde,好的,ZETA的电子邮件客户端没有什么好运气,所以现在我尝试安装Horde IMAP客户端库。我已成功登录到我的帐户,搜索电子邮件,并返回结果,但我不知道如何获取电子邮件数据,文档也没有真正的帮助:| 我假设我必须使用Horde\u Imap\u Client\u Base::fetch()方法来获取一些电子邮件,它接受两个参数,一个邮箱名和一个Horde\u Imap\u Client\u fetch\u Query对象,但我不知道如何获取第二个对象:| 这个对象应该由一个基函数返回,还是应该

好的,ZETA的电子邮件客户端没有什么好运气,所以现在我尝试安装Horde IMAP客户端库。我已成功登录到我的帐户,搜索电子邮件,并返回结果,但我不知道如何获取电子邮件数据,文档也没有真正的帮助:|

我假设我必须使用
Horde\u Imap\u Client\u Base::fetch()
方法来获取一些电子邮件,它接受两个参数,一个邮箱名和一个
Horde\u Imap\u Client\u fetch\u Query
对象,但我不知道如何获取第二个对象:|

这个对象应该由一个基函数返回,还是应该用我想要的查询参数构建这个对象?如果是第二种情况,我应该如何在下面示例中的fetchquery对象中重建搜索查询

以下是我在收件箱中搜索特定联系人在特定日期发送的邮件的方式:

 $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)和一些附加数据。

$results=$Client->search($mailbox,$searchquery,array('sort'=>array($sSortDir,$sSort));
$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();
}
$uids=$results['match']; 对于($i=$i_start;$i<$i_to;$i++) { $muid=新部落的Imap\U客户机\U ID($UID->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(); }
没有完全回答您的问题。这就是我搜索未删除邮件的方式

  $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);
  }