【问题标题】:HORDE Imap PHP client - how to fetch messagesHORDE Imap PHP 客户端 - 如何获取消息
【发布时间】:2015-09-28 13:25:13
【问题描述】:

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

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

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

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

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

【问题讨论】:

    标签: php email horde


    【解决方案1】:

    没有完全回答您的问题。这就是我搜索未删除邮件的方式。

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

    【讨论】:

      【解决方案2】:
      $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();
      }
      

      【讨论】:

        猜你喜欢
        • 2018-12-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-12-07
        • 1970-01-01
        • 2023-03-30
        相关资源
        最近更新 更多