2017-01-05 3 views
0

Я использую IMAP для чтения писем с моего почтового сервера.Как читать только ограниченные электронные письма от IMAP в PHP?

Но у меня есть огромное количество писем в папке «Входящие», каждый раз, когда я пытаюсь протестировать, загрузка занимает около минуты.

Я только хочу New, непрочитанной, только Первых 10 Электронной почты.

Для чтения Email:

// 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

Но, это может быть прочитать все, но мне нужно Un прочитать! –

+0

ok обновляю свой ответ –

Смежные вопросы