- fputs($imapConnection, "1 LIST \"$mailbox\" *\n");
- $data = imapReadData($imapConnection , "1", false, $response, $message);
- while (substr($data[0], strpos($data[0], " ")+1, 4) == "LIST") {
- for ($i = 0; $i < count($boxes); $i++) {
- if (($boxes[$i]["UNFORMATTED"] == $mailbox) ||
- (substr($boxes[$i]["UNFORMATTED"], 0, strlen($mailbox . $dm)) == $mailbox . $dm)) {
- removeFolder($imapConnection, $boxes[$i]["UNFORMATTED"]);
- }
+ $boxes = sqimap_mailbox_list($imap_stream);
+ $dm = sqimap_get_delimiter($imap_stream);
+
+ // According to RFC2060, a DELETE command should NOT remove inferiors (sub folders)
+ // so lets go through the list of subfolders and remove them before removing the
+ // parent.
+
+ /** First create the top node in the tree **/
+ for ($i = 0;$i < count($boxes);$i++) {
+ if (($boxes[$i]["unformatted"] == $mailbox) && (strlen($boxes[$i]["unformatted"]) == strlen($mailbox))) {
+ $foldersTree[0]["value"] = $mailbox;
+ $foldersTree[0]["doIHaveChildren"] = false;
+ continue;