Summary | Can't delete emails (to trash) when quota is full |
Queue | IMP |
Queue Version | 4.1 |
Type | Bug |
State | Resolved |
Priority | 1. Low |
Owners | |
Requester | tuomas.silen (at) nodeta (dot) fi |
Created | 03/30/2006 (7072 days ago) |
Due | |
Updated | 03/30/2006 (7072 days ago) |
Assigned | |
Resolved | 03/30/2006 (7072 days ago) |
Github Issue Link | |
Github Pull Request | |
Milestone | |
Patch | No |
Bug 3687.State ⇒ Unconfirmed
Priority ⇒ 1. Low
Type ⇒ Bug
Summary ⇒ Can't delete emails (to trash) when quota is full
Queue ⇒ IMP
New Attachment: Message.patch
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.