2

よし、ZETA メール クライアントがうまくいかなかったので、今度は Horde IMAP クライアント ライブラリをインストールしてみました。アカウントにログインし、電子メールを検索し、結果も返ってきましたが、電子メール データを取得する方法がわかりません。また、ドキュメントはあまり役に立ちません:|

メールボックス名とオブジェクトの 2 つのパラメーターを受け取るメソッドを使用してHorde_Imap_Client_Base::fetch()電子メールを取得する必要があるHorde_Imap_Client_Fetch_Queryと思いますが、この 2 番目のオブジェクトを取得する方法がわかりません:|

このオブジェクトは、Base 関数の 1 つによって返される必要がありますか?それとも、必要なクエリ パラメーターを使用してこのオブジェクトを作成する必要がありますか? 2 番目の場合、次の例のフェッチ クエリ オブジェクトで検索クエリを再構築するにはどうすればよいですか?

特定の日の特定の連絡先からのメールを受信トレイで検索する方法は次のとおりです。

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

は、検索結果 (検索された電子メールのメッセージ ID) といくつかのHorde_Imap_Client_Base::search()追加データを含む配列を返します。

4

2 に答える 2

2

あなたの質問に完全に答えているわけではありません。これは、削除されていないメッセージを検索する方法です。

  $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-04-27T19:44:41.573 に答える
1
$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();
}
于 2016-02-03T15:06:35.780 に答える