Я использую imap_search, чтобы получить список сообщений из моего INBOX. Мне нужны только электронные письма, отправленные с адреса, скажем, «somemail@gmail.com».
Я делаю:
$headers = imap_search($box,'FROM "somemail@gmail.com"', SE_UID);
Но это занимает очень много времени, около 3 минут, а в папке «Входящие» – только 700 писем (мой ящик GMAIL). Проблема не в сервере, потому что я установил roundcube в localhost и быстро загружаю электронные письма.
Что я могу сделать, чтобы сделать это быстрее?
Этот метод работал быстрее, чем imap_search для меня в прошлом:
$stream = imap_open($mailbox,$username,$password); //imap_num_msg returns the number of messages in the current mailbox, as an integer, so .. $total_messages = imap_num_msg($stream); for ($message_number = 0; $message_number < $total_messages; $message_number++) { //get header $header = imap_header($stream, $message_number); if ($header === NULL) continue; //check from if($header->from == 'somemail@gmail.com') { // you found one so do something } }