X-Git-Url: https://vcs.fsf.org/?a=blobdiff_plain;f=src%2Ffolders_delete.php;h=0561c920f8a281a884c89a3bf98c86da4c8da565;hb=05207a68b0446f5da0e2e0aa86e9edbe85a40ada;hp=3af351a89ae6178fb72dc38689293af5dce9d1d3;hpb=8c7dfc9960e03539b2ab145a37a3752cb8b31b4d;p=squirrelmail.git diff --git a/src/folders_delete.php b/src/folders_delete.php index 3af351a8..0561c920 100644 --- a/src/folders_delete.php +++ b/src/folders_delete.php @@ -3,54 +3,47 @@ include("../functions/strings.php"); include("../functions/page_header.php"); include("../functions/imap.php"); + include("../functions/mailbox.php"); - $imapConnection = fsockopen($imapServerAddress, 143, &$errorNumber, &$errorString); - if (!$imapConnection) { - echo "Error connecting to IMAP Server.
"; - echo "$errorNumber : $errorString
"; - exit; - } - $serverInfo = fgets($imapConnection, 256); - - fputs($imapConnection, "1 login $username $key\n"); - $read = fgets($imapConnection, 1024); - echo $read; - - if (strpos($read, "NO")) { - error_username_password_incorrect(); - exit; - } - - // switch to the mailbox, and get the number of messages in it. + $imapConnection = loginToImapServer($username, $key, $imapServerAddress); selectMailbox($imapConnection, $mailbox, $numMessages); + getFolderList($imapConnection, $boxesFormatted, $boxesUnformatted); + + /** Lets start removing the folders and messages **/ + if ($move_to_trash == true) { /** if they wish to move messages to the trash **/ + /** Creates the subfolders under $trash_folder **/ + for ($i = 0; $i < count($boxesUnformatted); $i++) { + if (substr($boxesUnformatted[$i], 0, strlen($mailbox)) == $mailbox) { + $folderWithoutINBOX = getFolderNameMinusINBOX($boxesUnformatted[$i]); + createFolder($imapConnection, "$trash_folder.$folderWithoutINBOX"); + } + } + for ($i = 0; $i < count($boxesUnformatted); $i++) { + if (substr($boxesUnformatted[$i], 0, strlen($mailbox)) == $mailbox) { + selectMailbox($imapConnection, $boxesUnformatted[$i], $numMessages); + $folder = getFolderNameMinusINBOX($boxesUnformatted[$i]); - // Marks the selected messages ad 'Deleted' - $j = 0; - $i = 0; + if ($numMessages > 0) + $success = copyMessages($imapConnection, 1, $numMessages, "$trash_folder.$folder"); + else + $success = true; - while ($j < count($msg)) { - if ($msg[$i]) { - /** check if they would like to move it to the trash folder or not */ - if ($move_to_trash == true) { - createFolder($imapConnection, "user.$username.$folder"); - $success = copyMessages($imapConnection, $msg[$i], $msg[$i], $trash_folder); if ($success == true) - setMessageFlag($imapConnection, $msg[$i], $msg[$i], "Deleted"); - } else { - setMessageFlag($imapConnection, $msg[$i], "Deleted"); + removeFolder($imapConnection, "$boxesUnformatted[$i]"); + } + } + } else { /** if they do NOT wish to move messages to the trash **/ + for ($i = 0; $i < count($boxesUnformatted); $i++) { + if (substr($boxesUnformatted[$i], 0, strlen($mailbox)) == $mailbox) { + removeFolder($imapConnection, "$boxesUnformatted[$i]"); } - $j++; } - $i++; } - if ($auto_expunge == true) - expungeBox($imapConnection, $mailbox, $numMessages); - - // Log out this session + /** Log out this session **/ fputs($imapConnection, "1 logout"); - echo "

Return"; + echo "

Return"; ?>