|
php.net | support | documentation | report a bug | advanced search | search howto | statistics | random bug | login |
PatchesPull RequestsHistoryAllCommentsChangesGit/SVN commits
[2001-04-28 13:40 UTC] chagenbu@php.net
|
|||||||||||||||||||||||||||
Copyright © 2001-2025 The PHP GroupAll rights reserved. |
Last updated: Wed Oct 29 19:00:01 2025 UTC |
As I wrote the following code I found the strong situation in imap_expunge(). It will expunge mails with odd number only but not every mail as I expected. $mbox = imap_open("{localhost/pop3:110INBOX", "test", "test"); $num_msg = imap_num_msg($mbox); echo "start at $num_msg...<br>"; for ( $i=1; $i<=$num_msg; $i++ ) { imap_delete($mbox, $i); imap_expunge($mbox); echo "doing $i....<br>"; } imap_expunge($mbox); $num_msg = imap_num_msg($mbox); echo "now is $num_msg<br>"; imap_close($mbox); I have the following output: start at 10... doing 1.... doing 2.... doing 3.... doing 4.... doing 5.... doing 6.... doing 7.... doing 8.... doing 9.... doing 10.... now is 5 If I modify the code as following the problem solved: for ( $i=1; $i<=$num_msg; $i++ ) { imap_delete($mbox, $i); echo "doing $i....<br>"; } imap_expunge($mbox); The result is coreect and all mail has been deleted. This bug occurs if a web mail system with a pop server try to delete lots of spam at a time.