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";
?>