2017-01-05 16 views
0

私はIMAPを使用して自分のメールサーバーからメールを読みます。どのようにPHPでIMAPによって限られた電子メールだけを読むか?

しかし、私は受信箱に膨大な数のメールを持っていますが、私が試してみる度に、 、読み込むのに数分かかります。

私だけだけ第10 Eメール、未読をしたいです。メールを読むため

// open IMAP connection 
    $dns = "{imap.smtp.domain:993/imap/ssl}INBOX"; 
    $email = "[email protected]"; 
    $password = "**********"; 


    $mbox = imap_open($dns, $email, $password); 
    $MC = imap_check($mbox); 
    if (!$mbox) 
     die("COULD NOT OPEN MAILBOX!\r\n"); 
    $result = imap_fetch_overview($mbox,"1:{$MC->Nmsgs}",0); 

    echo "<table>"; 
    $i=1; 
    foreach ($result as $overview) { 
    if($i == 10) break; 
     echo "<tr>" 
      ."<td>".$overview->msgno."</td>" 
      ."<td>".$overview->uid."</td>" 
      ."<td>".$overview->date."</td>" 
      ."<td>".$overview->udate."</td>" 
      ."<td>".$overview->from."</td>" 
      ."<td>".$overview->to."</td>" 
      ."<td>".$overview->size."</td>" 
      ."<td>".$overview->subject."</td>" 
      ."</tr>"; 
    $i++; 
    } 
    echo "</table>"; 

それだけを返しますが、それは膨大な時間がかかります。

私は電子メールを簡単かつ迅速に読む必要があります。

可能ですか?

その他の解決策はありますか?

答えて

1
// this will select top 10 emails 
$result = imap_fetch_overview($mbox,"1:10",0); 
//for recent emals 
$mailbox = imap_search($mbox,'RECENT'); 
// implode gives you id fo the messages 
messages = implode(",", $mailbox); 
// list of recent emails and you can pass your message ids in string with comma seperated values like(1,2,5,6) in imap_fetch_overview as below 
$messages = imap_fetch_overview($mbox,"$messages",0); 
// for unseen 
$mailbox = imap_search($mbox,'UNSEEN'); 
+0

あなたのために働く場合は、回答とupvoteとして受け入れるように.. –

+0

しかし、それはすべて読んでいるかもしれませんが、私は読む必要があります! –

+0

ok私は私の答えを更新しています –

関連する問題