| | |
| | | |
| | | // Determine which folder to save message |
| | | if ($savedraft) |
| | | $store_target = 'drafts_mbox'; |
| | | else |
| | | $store_target = 'sent_mbox'; |
| | | $store_target = $CONFIG['drafts_mbox']; |
| | | else |
| | | $store_target = isset($_POST['_store_target']) ? get_input_value('_store_target', RCUBE_INPUT_POST) : $CONFIG['sent_mbox']; |
| | | |
| | | if ($CONFIG[$store_target]) |
| | | if ($store_target) |
| | | { |
| | | // check if mailbox exists |
| | | if (!in_array_nocase($CONFIG[$store_target], $IMAP->list_mailboxes())) |
| | | $store_folder = $IMAP->create_mailbox($CONFIG[$store_target], TRUE); |
| | | if (!in_array_nocase($store_target, $IMAP->list_mailboxes())) |
| | | { |
| | | // folder may be existing but not subscribed (#1485241) |
| | | if (!in_array_nocase($store_target, $IMAP->list_unsubscribed())) |
| | | $store_folder = $IMAP->create_mailbox($store_target, TRUE); |
| | | else if ($IMAP->subscribe($store_target)) |
| | | $store_folder = TRUE; |
| | | } |
| | | else |
| | | $store_folder = TRUE; |
| | | |
| | | // append message to sent box |
| | | if ($store_folder) |
| | | $saved = $IMAP->save_message($CONFIG[$store_target], $MAIL_MIME->getMessage()); |
| | | $saved = $IMAP->save_message($store_target, $MAIL_MIME->getMessage()); |
| | | |
| | | // raise error if saving failed |
| | | if (!$saved) |
| | | { |
| | | raise_error(array('code' => 800, 'type' => 'imap', 'file' => __FILE__, |
| | | 'message' => "Could not save message in $CONFIG[$store_target]"), TRUE, FALSE); |
| | | 'message' => "Could not save message in $store_target"), TRUE, FALSE); |
| | | |
| | | $OUTPUT->show_message('errorsaving', 'error'); |
| | | $OUTPUT->send('iframe'); |
| | | if ($savedraft) { |
| | | $OUTPUT->show_message('errorsaving', 'error'); |
| | | $OUTPUT->send('iframe'); |
| | | } |
| | | } |
| | | |
| | | if ($olddraftmessageid) |
| | |
| | | } |
| | | else |
| | | { |
| | | if ($CONFIG['smtp_log']) |
| | | { |
| | | $log_entry = sprintf( |
| | | "[%s] User: %d on %s; Message for %s; %s\n", |
| | | date("d-M-Y H:i:s O", mktime()), |
| | | $_SESSION['user_id'], |
| | | $_SERVER['REMOTE_ADDR'], |
| | | $mailto, |
| | | !empty($smtp_response) ? join('; ', $smtp_response) : ''); |
| | | |
| | | if ($fp = @fopen($CONFIG['log_dir'].'/sendmail', 'a')) |
| | | { |
| | | fwrite($fp, $log_entry); |
| | | fclose($fp); |
| | | } |
| | | } |
| | | |
| | | rcmail_compose_cleanup(); |
| | | $OUTPUT->command('sent_successfully', rcube_label('messagesent')); |
| | | |
| | | if ($store_folder && !$saved) |
| | | $OUTPUT->command('sent_successfully', 'error', rcube_label('errorsavingsent')); |
| | | else |
| | | $OUTPUT->command('sent_successfully', 'confirmation', rcube_label('messagesent')); |
| | | $OUTPUT->send('iframe'); |
| | | } |
| | | |