- }
- return $r[1];
- }
- if ($auto_expunge) {
- fputs ($imap_stream, "a001 EXPUNGE\r\n");
- $tmp = sqimap_read_data($imap_stream, "a001", false, $a, $b);
- }
- }
-
-
-
- /******************************************************************************
- ** Creates a folder
- ******************************************************************************/
- function sqimap_mailbox_create ($imap_stream, $mailbox, $type) {
- if (strtolower($type) == "noselect") {
- $dm = sqimap_get_delimiter($imap_stream);
- $mailbox = $mailbox.$dm;
- }
- fputs ($imap_stream, "a001 CREATE \"$mailbox\"\r\n");
- $read_ary = sqimap_read_data($imap_stream, "a001", true, $response, $message);
-
- sqimap_subscribe ($imap_stream, $mailbox);
- }
-
-
-
- /******************************************************************************
- ** Subscribes to an existing folder
- ******************************************************************************/
- function sqimap_subscribe ($imap_stream, $mailbox) {
- fputs ($imap_stream, "a001 SUBSCRIBE \"$mailbox\"\r\n");
- $read_ary = sqimap_read_data($imap_stream, "a001", true, $response, $message);
- }
-
-
-
-
- /******************************************************************************
- ** Unsubscribes to an existing folder
- ******************************************************************************/
- function sqimap_unsubscribe ($imap_stream, $mailbox) {
- global $imap_server_type;
-
- fputs ($imap_stream, "a001 UNSUBSCRIBE \"$mailbox\"\r\n");
- $read_ary = sqimap_read_data($imap_stream, "a001", true, $response, $message);
- }
-
-
-
-
- /******************************************************************************
- ** This function simply deletes the given folder
- ******************************************************************************/
- function sqimap_mailbox_delete ($imap_stream, $mailbox) {
- fputs ($imap_stream, "a001 DELETE \"$mailbox\"\r\n");
- $read_ary = sqimap_read_data($imap_stream, "a001", true, $response, $message);
- sqimap_unsubscribe ($imap_stream, $mailbox);
- }
-
-
- /******************************************************************************
- ** Formats a mailbox into 4 parts for the $boxes array
- **
- ** The four parts are:
- **
- ** raw - Raw LIST/LSUB response from the IMAP server
- ** formatted - nicely formatted folder name
- ** unformatted - unformatted, but with delimiter at end removed
- ** unformatted-dm - folder name as it appears in raw response
- ** unformatted-disp - unformatted without $folder_prefix
- **
- ******************************************************************************/
- function sqimap_mailbox_parse ($line, $line_lsub, $dm) {
- global $folder_prefix;
-
- // Process each folder line
- for ($g=0; $g < count($line); $g++) {
-
- // Store the raw IMAP reply
- if (isset($line[$g]))
+ }
+ return $r[1];
+ }
+ if ($auto_expunge) {
+ $tmp = sqimap_run_command($imap_stream, 'EXPUNGE',
+ false, $a, $b);
+ }
+}
+
+
+
+/******************************************************************************
+ ** Creates a folder
+ ******************************************************************************/
+function sqimap_mailbox_create ($imap_stream, $mailbox, $type)
+{
+ global $delimiter;
+ if (strtolower($type) == 'noselect') {
+ $mailbox = $mailbox.$delimiter;
+ }
+ $read_ary = sqimap_run_command($imap_stream, "CREATE \"$mailbox\"",
+ TRUE, $response, $message);
+
+ sqimap_subscribe ($imap_stream, $mailbox);
+}
+
+
+
+/******************************************************************************
+ ** Subscribes to an existing folder
+ ******************************************************************************/
+function sqimap_subscribe ($imap_stream, $mailbox)
+{
+ $read_ary = sqimap_run_command($imap_stream, "SUBSCRIBE \"$mailbox\"",
+ TRUE, $response, $message);
+}
+
+
+
+/******************************************************************************
+ ** Unsubscribes to an existing folder
+ ******************************************************************************/
+function sqimap_unsubscribe ($imap_stream, $mailbox)
+{
+ global $imap_server_type;
+
+ $read_ary = sqimap_run_command($imap_stream, "UNSUBSCRIBE \"$mailbox\"",
+ TRUE, $response, $message);
+}
+
+
+
+/******************************************************************************
+ ** This function simply deletes the given folder
+ ******************************************************************************/
+function sqimap_mailbox_delete ($imap_stream, $mailbox)
+{
+ $read_ary = sqimap_run_command($imap_stream, "DELETE \"$mailbox\"",
+ TRUE, $response, $message);
+ sqimap_unsubscribe ($imap_stream, $mailbox);
+}
+
+/***********************************************************************
+ ** Determines if the user is subscribed to the folder or not
+ **********************************************************************/
+function sqimap_mailbox_is_subscribed($imap_stream, $folder)
+{
+ $boxes = sqimap_mailbox_list ($imap_stream);
+ foreach ($boxes as $ref) {
+ if ($ref['unformatted'] == $folder) {
+ return TRUE;
+ }
+ }
+ return false;
+}
+
+/*
+ Renames a mailbox
+*/
+function sqimap_mailbox_rename( $imap_stream, $old_name, $new_name ) {
+
+ if ( $old_name <> $new_name ) {
+
+ global $delimiter;
+
+ if ( substr( $old_name, -1 ) == $delimiter ) {
+ $old_name = substr( $old_name, 0, strlen( $old_name ) - 1 );
+ $new_name = substr( $new_name, 0, strlen( $new_name ) - 1 );
+ $postfix = $delimiter;
+ $boxes = sqimap_mailbox_list($imap_stream);
+ } else {
+ $postfix = '';
+ $boxes = FALSE;
+ }
+
+ $cmd = 'RENAME "' . quoteIMAP($old_name) . '" "' . quoteIMAP($new_name) . '"';
+ $data = sqimap_run_command($imap_stream, $cmd,
+ TRUE, $response, $message);
+ sqimap_unsubscribe($imap_stream, $old_name.$postfix);
+ sqimap_subscribe($imap_stream, $new_name.$postfix);
+
+ if ( $boxes ) {
+ // Sub-unsub subfolders
+ $l = strlen( $old_name ) + 1;
+ $p = 'unformatted';
+ foreach ( $boxes as $box ) {
+ if ( substr( $box[$p], 0, $l ) == $old_name . $delimiter ) {
+ sqimap_unsubscribe($imap_stream, $box[$p]);
+ sqimap_subscribe($imap_stream,
+ $new_name . $delimiter . substr( $box[$p], $l ) );
+ }
+ }
+ }
+
+ }
+
+}
+
+/******************************************************************************
+ ** Formats a mailbox into 4 parts for the $boxes array
+ **
+ ** The four parts are:
+ **
+ ** raw - Raw LIST/LSUB response from the IMAP server
+ ** formatted - nicely formatted folder name
+ ** unformatted - unformatted, but with delimiter at end removed
+ ** unformatted-dm - folder name as it appears in raw response
+ ** unformatted-disp - unformatted without $folder_prefix
+ **
+ ******************************************************************************/
+function sqimap_mailbox_parse ($line, $line_lsub)
+{
+ global $folder_prefix, $delimiter;
+
+ /* Process each folder line */
+ for ($g=0; $g < count($line); $g++) {
+
+ /* Store the raw IMAP reply */
+ if (isset($line[$g])) {