[Tickets #3716] NEW: Can't delete emails (to trash) when quota is full

bugs@bugs.horde.org bugs at bugs.horde.org
Thu Mar 30 04:01:17 PST 2006


DO NOT REPLY TO THIS MESSAGE. THIS EMAIL ADDRESS IS NOT MONITORED.

Ticket URL: http://bugs.horde.org/ticket/?id=3716
-----------------------------------------------------------------------
 Ticket             | 3716
 Created By         | tuomas.silen at nodeta.fi
 Summary            | Can't delete emails (to trash) when quota is full
 Queue              | IMP
 Version            | 4.1
 State              | Unconfirmed
 Priority           | 1. Low
 Type               | Bug
 Owners             | 
+New Attachment     | Message.patch
-----------------------------------------------------------------------


tuomas.silen at nodeta.fi (2006-03-30 04:01) wrote:

There seems to be some bugs in delete() function in lib/Message.php that
prevent emails from being deleted (or actually being moved to trash) when
quota is full.

First, on line 205 there is line
    if (stristr('over quota', $error_msg) !== false) {
The definition of this function is stristr ( string haystack, string needle
)
So the parameters are mixed up and it probably never matches with anything.

Also at least with Courier IMAP, you get an error "You exceeded your mail
quota" so it certainly won't match.

Changing the line to
   if ((stristr($error_msg, 'over quota') !== false) || (stristr($error_msg,
'exceeded your mail quota') !== false)) {
works for me. 

Now the file gets deleted, but not moved to the trash and you still get the
quota exeeced error. This is because of an other bug on line 218:
   if (!@imap_append($imp['stream'], $trash, $val)) {
This actually returns an error that INBOX.Trash does not exist, but
$error_msg
is not updated.

Apparently $trash should be IMP::serverString($trash).

Attached patch seems to fix these problems.





More information about the bugs mailing list