Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Почему imap_delete + imap_expunge удаляют не все письма?
Форумы портала PHP.SU » » Работа с сетью » Почему imap_delete + imap_expunge удаляют не все письма?

Страниц (1): [1]
 

1. mrPooh - 31 Января, 2017 - 21:55:14 - перейти к сообщению
Всем привет!
Почему imap_delete + imap_expunge удаляют не все письма?
CODE (htmlphp):
скопировать код в буфер обмена
  1. $imap_host = "{imap.mail.ru/imap:143}";
  2. $mbox = imap_open($imap_host.'INBOX', $email, $pass);
  3. $check = imap_status($mbox, $imap_host.'INBOX', SA_MESSAGES);
  4. $i = 1;
  5. while($i <= $check->messages) {
  6.         imap_delete($mbox, $i);
  7.         $i++;
  8. }
  9. imap_expunge($mbox);
  10. imap_close ($mbox, CL_EXPUNGE);
  11.  

Удаляется чуть больше половины писем, т.е. в ящике 400шт., после удаления остается около 180шт., после еще одного запуска 80шт. и т.д.
Полного удаления удается добиться только если обернуть код в еще один цикл с чтением кол-ва оставшихся писем и прогоном следующего удаления.
Почему с первого раза удаляются не все письма?

 

Powered by ExBB FM 1.0 RC1