- global $sent_folder, $auto_create_special, $auto_create_done;
- global $sent_subfolders_base, $sent_subfolders_setting;
- global $data_dir, $imapServerAddress, $imapPort;
- global $use_sent_subfolders, $move_to_sent, $imap_server_type;
-
- sqgetGlobalVar('username', $username, SQ_SESSION);
- sqgetGlobalVar('key', $key, SQ_COOKIE);
- sqgetGlobalVar('delimiter', $delimiter, SQ_SESSION);
-
- if ($use_sent_subfolders || $move_to_sent) {
- $year = date('Y');
- $month = date('m');
- $quarter = sent_subfolder_getQuarter($month);
-
- /*
- Regarding the structure we've got three main possibilities.
- One sent holder. level 0.
- Multiple year holders with messages in it. level 1.
- Multiple year folders with holders in it. level 2.
- */
-/*
- if( $imap_server_type == 'uw' ) {
- $cnd_delimiter = '';
- } else {
- $cnd_delimiter = $delimiter;
- }
-*/
- $cnd_delimiter = $delimiter;
-
- switch ($sent_subfolders_setting) {
- case SMPREF_SENT_SUBFOLDERS_YEARLY:
- $level = 1;
- $sent_subfolder = $sent_subfolders_base . $cnd_delimiter
- . $year;
- break;
- case SMPREF_SENT_SUBFOLDERS_QUARTERLY:
- $level = 2;
- $sent_subfolder = $sent_subfolders_base . $cnd_delimiter
- . $year
- . $delimiter . $quarter;
- $year_folder = $sent_subfolders_base
- . $year;
- break;
- case SMPREF_SENT_SUBFOLDERS_MONTHLY:
- $level = 2;
- $sent_subfolder = $sent_subfolders_base . $cnd_delimiter
- . $year
- . $delimiter . $month;
- $year_folder = $sent_subfolders_base . $year;
- break;
- case SMPREF_SENT_SUBFOLDERS_DISABLED:
- default:
- $level = 0;
- $sent_subfolder = $sent_folder;
- $year_folder = $sent_folder;
- }
-
- /* If this folder is NOT the current sent folder, update stuff. */
- if ($sent_subfolder != $sent_folder) {
- /* First, update the sent folder. */
-
- setPref($data_dir, $username, 'sent_folder', $sent_subfolder);
- setPref($data_dir, $username, 'move_to_sent', SMPREF_ON);
- $sent_folder = $sent_subfolder;
- $move_to_sent = SMPREF_ON;
-
- /* Auto-create folders, if they do not yet exist. */
- if ($sent_folder != 'none') {
- /* Create the imap connection. */
- $ic = sqimap_login
- ($username, $key, $imapServerAddress, $imapPort, 10);
-
- /* Auto-create the year folder, if it does not yet exist. */
- if (!sqimap_mailbox_exists($ic, $year_folder)) {
- sqimap_mailbox_create($ic, $year_folder, ($level==1)?'':'noselect');
- } else if (!sqimap_mailbox_is_subscribed($ic, $year_folder)) {
- sqimap_subscribe($ic, $year_folder);
- }
-
- /* Auto-create the subfolder, if it does not yet exist. */
- if (!sqimap_mailbox_exists($ic, $sent_folder)) {
- sqimap_mailbox_create($ic, $sent_folder, '');
- } else if (!sqimap_mailbox_is_subscribed($ic, $sent_subfolder)) {
- sqimap_subscribe($ic, $sent_subfolder);
- }
-
- /* Close the imap connection. */
- sqimap_logout($ic);
- }
- }
- }
-}
-
-/**
- * Sets quarter subfolder names
- *
- * @param string $month numeric month
- * @return string quarter name (Q + number)
- */
-function sent_subfolder_getQuarter($month) {
- switch ($month) {
- case '01':
- case '02':
- case '03':
- $result = '1';
- break;
- case '04':
- case '05':
- case '06':
- $result = '2';
- break;
- case '07':
- case '08':
- case '09':
- $result = '3';
- break;
- case '10':
- case '11':
- case '12':
- $result = '4';
- break;
- default:
- $result = 'ERR';
- }
-
- /* Return the current quarter. */
- return ('Q' . $result);