| | |
| | | | | |
| | | | This file is part of the Roundcube Webmail client | |
| | | | Copyright (C) 2005-2011, The Roundcube Dev Team | |
| | | | Licensed under the GNU GPL | |
| | | | | |
| | | | Licensed under the GNU General Public License version 3 or | |
| | | | any later version with exceptions for skins & plugins. | |
| | | | See the README file for a full license statement. | |
| | | | | |
| | | | PURPOSE: | |
| | | | Compose a new mail message with all headers and attachments | |
| | |
| | | +-----------------------------------------------------------------------+ |
| | | | Author: Thomas Bruederli <roundcube@gmail.com> | |
| | | +-----------------------------------------------------------------------+ |
| | | |
| | | $Id$ |
| | | |
| | | */ |
| | | |
| | | // remove all scripts and act as called in frame |
| | |
| | | // address with name (handle name) |
| | | } else if (preg_match('/<*'.$email_regexp.'>*$/', $item, $matches)) { |
| | | $address = $matches[0]; |
| | | $name = trim(str_replace($address, '', $item), '" '); |
| | | $name = trim(str_replace($address, '', $item)); |
| | | if ($name[0] == '"' && $name[count($name)-1] == '"') { |
| | | $name = substr($name, 1, -1); |
| | | } |
| | | $name = stripcslashes($name); |
| | | $address = rcube_idn_to_ascii(trim($address, '<>')); |
| | | $result[] = format_email_recipient($address, $name); |
| | | $item = $address; |
| | |
| | | unlink($mailbody_file); |
| | | $mailbody_file = null; |
| | | } |
| | | } |
| | | |
| | | // raise error if saving failed |
| | | if (!$saved) { |
| | | raise_error(array('code' => 800, 'type' => 'imap', |
| | | 'file' => __FILE__, 'line' => __LINE__, |
| | | 'message' => "Could not save message in $store_target"), TRUE, FALSE); |
| | | // raise error if saving failed |
| | | if (!$saved) { |
| | | raise_error(array('code' => 800, 'type' => 'imap', |
| | | 'file' => __FILE__, 'line' => __LINE__, |
| | | 'message' => "Could not save message in $store_target"), TRUE, FALSE); |
| | | |
| | | if ($savedraft) { |
| | | $OUTPUT->show_message('errorsaving', 'error'); |
| | | $OUTPUT->send('iframe'); |
| | | } |
| | | if ($savedraft) { |
| | | $OUTPUT->show_message('errorsaving', 'error'); |
| | | // start the auto-save timer again |
| | | $OUTPUT->command('auto_save_start'); |
| | | $OUTPUT->send('iframe'); |
| | | } |
| | | } |
| | | |
| | |
| | | $delete_idx = $RCMAIL->storage->search_once($CONFIG['drafts_mbox'], |
| | | 'HEADER Message-ID '.$olddraftmessageid); |
| | | |
| | | if ($del_uid = $delete_idx->getElement('FIRST')) { |
| | | if ($del_uid = $delete_idx->get_element('FIRST')) { |
| | | $deleted = $RCMAIL->storage->delete_message($del_uid, $CONFIG['drafts_mbox']); |
| | | |
| | | // raise error if deletion of old draft failed |
| | |
| | | // remember new draft-uid ($saved could be an UID or TRUE here) |
| | | if (is_bool($saved)) { |
| | | $draft_idx = $RCMAIL->storage->search_once($CONFIG['drafts_mbox'], 'HEADER Message-ID '.$msgid); |
| | | $saved = $draft_idx->getElement('FIRST'); |
| | | $saved = $draft_idx->get_element('FIRST'); |
| | | } |
| | | $COMPOSE['param']['draft_uid'] = $saved; |
| | | $plugin = $RCMAIL->plugins->exec_hook('message_draftsaved', array('msgid' => $msgid, 'uid' => $saved, 'folder' => $store_target)); |
| | | |
| | | // display success |
| | | $OUTPUT->show_message('messagesaved', 'confirmation'); |
| | | $OUTPUT->show_message($plugin['message'] ? $plugin['message'] : 'messagesaved', 'confirmation'); |
| | | |
| | | // update "_draft_saveid" and the "cmp_hash" to prevent "Unsaved changes" warning |
| | | $OUTPUT->command('set_draft_id', $msgid); |