| | |
| | | $REPLY_MESSAGE = &$MESSAGE; |
| | | $_SESSION['compose']['reply_uid'] = $_GET['_reply_uid']; |
| | | $_SESSION['compose']['reply_msgid'] = $REPLY_MESSAGE['headers']->messageID; |
| | | $_SESSION['compose']['references'] = $REPLY_MESSAGE['headers']->reference; |
| | | $_SESSION['compose']['references'] .= !empty($REPLY_MESSAGE['headers']->reference) ? ' ' : ''; |
| | | $_SESSION['compose']['references'] .= $REPLY_MESSAGE['headers']->messageID; |
| | | |
| | | if ($_GET['_all']) |
| | | $REPLY_MESSAGE['reply_all'] = 1; |
| | |
| | | $header = 'to'; |
| | | |
| | | // we have contact id's as get parameters |
| | | if (!empty($_GET['_to']) && preg_match('/^([0-9]+,?)+$/', $_GET['_to'])) |
| | | if (!empty($_GET['_to']) && preg_match('/^[0-9]+(,[0-9]+)*$/', $_GET['_to'])) |
| | | { |
| | | $a_recipients = array(); |
| | | $sql_result = $DB->query("SELECT name, email |
| | |
| | | |
| | | |
| | | if ($fname && !empty($_POST[$fname])) |
| | | $fvalue = $_POST[$fname]; |
| | | $fvalue = get_input_value($fname, RCUBE_INPUT_POST, TRUE); |
| | | else if ($header && is_object($REPLY_MESSAGE['headers'])) |
| | | { |
| | | // get recipent address(es) out of the message headers |
| | | if ($header=='to' && $REPLY_MESSAGE['headers']->replyto) |
| | | $fvalue = $IMAP->decode_header($REPLY_MESSAGE['headers']->replyto); |
| | | |
| | | else if ($header=='to' && $REPLY_MESSAGE['headers']->from) |
| | | $fvalue = $IMAP->decode_header($REPLY_MESSAGE['headers']->from); |
| | | |
| | | // add recipent of original message if reply to all |
| | | else if ($header=='cc' && $REPLY_MESSAGE['reply_all']) |
| | | { |
| | |
| | | $fvalue = ''; |
| | | foreach ($to_addresses as $addr_part) |
| | | { |
| | | if (!in_array($addr_part['mailto'], $sa_recipients)) |
| | | if (!in_array($addr_part['mailto'], $sa_recipients) && (!$REPLY_MESSAGE['FROM'] || !in_array($addr_part['mailto'], $REPLY_MESSAGE['FROM']))) |
| | | { |
| | | $fvalue .= (strlen($fvalue) ? ', ':'').$addr_part['string']; |
| | | $sa_recipients[] = $addr_part['mailto']; |
| | |
| | | $a_recipients = array(); |
| | | if ($REPLY_MESSAGE && is_object($REPLY_MESSAGE['headers'])) |
| | | { |
| | | $REPLY_MESSAGE['FROM'] = array(); |
| | | |
| | | $a_to = $IMAP->decode_address_list($REPLY_MESSAGE['headers']->to); |
| | | foreach ($a_to as $addr) |
| | | { |
| | |
| | | // set identity if it's one of the reply-message recipients |
| | | if (in_array($sql_arr['email'], $a_recipients)) |
| | | $from_id = $sql_arr['identity_id']; |
| | | |
| | | if ($REPLY_MESSAGE && is_array($REPLY_MESSAGE['FROM'])) |
| | | $REPLY_MESSAGE['FROM'][] = $sql_arr['email']; |
| | | } |
| | | |
| | | // overwrite identity selection with post parameter |
| | |
| | | |
| | | function rcmail_compose_body($attrib) |
| | | { |
| | | global $CONFIG, $REPLY_MESSAGE, $FORWARD_MESSAGE; |
| | | global $CONFIG, $OUTPUT, $REPLY_MESSAGE, $FORWARD_MESSAGE; |
| | | |
| | | list($form_start, $form_end) = get_form_tags($attrib); |
| | | unset($attrib['form']); |
| | | |
| | | if (empty($attrib['id'])) |
| | | $attrib['id'] = 'rcmComposeMessage'; |
| | | |
| | | $attrib['name'] = '_message'; |
| | | $textarea = new textarea($attrib); |
| | |
| | | |
| | | // use posted message body |
| | | if (!empty($_POST['_message'])) |
| | | $body = stripslashes($_POST['_message']); |
| | | $body = get_input_value('_message', RCUBE_INPUT_POST, TRUE); |
| | | |
| | | // compose reply-body |
| | | else if (is_array($REPLY_MESSAGE['parts'])) |
| | |
| | | $out = $form_start ? "$form_start\n" : ''; |
| | | $out .= $textarea->show($body); |
| | | $out .= $form_end ? "\n$form_end" : ''; |
| | | |
| | | |
| | | // include GoogieSpell |
| | | $OUTPUT->include_script('googiespell.js'); |
| | | |
| | | $OUTPUT->add_script(sprintf("var googie1 = new GoogieSpell('\$__skin_path/images/googiespell/','%s&_action=spell&lang=');\n". |
| | | "googie1.decorateTextarea('%s');", |
| | | $GLOBALS['COMM_PATH'], |
| | | $attrib['id']), 'foot'); |
| | | |
| | | return $out; |
| | | } |
| | | |
| | |
| | | |
| | | foreach ($FORWARD_MESSAGE['parts'] as $part) |
| | | { |
| | | if ($part->disposition != 'attachment') |
| | | continue; |
| | | if ($part->disposition=='attachment' || $part->disposition=='inline' || $part->headers['content-id'] || |
| | | (empty($part->disposition) && ($part->d_parameters['filename'] || $part->ctype_parameters['name']))) |
| | | { |
| | | $tmp_path = tempnam($temp_dir, 'rcmAttmnt'); |
| | | if ($fp = fopen($tmp_path, 'w')) |
| | | { |
| | | fwrite($fp, $IMAP->mime_decode($part->body, $part->headers['content-transfer-encoding'])); |
| | | fclose($fp); |
| | | |
| | | $tmp_path = tempnam($temp_dir, 'rcmAttmnt'); |
| | | if ($fp = fopen($tmp_path, 'w')) |
| | | { |
| | | fwrite($fp, $IMAP->mime_decode($part->body, $part->headers['content-transfer-encoding'])); |
| | | fclose($fp); |
| | | |
| | | $_SESSION['compose']['attachments'][] = array('name' => $part->d_parameters['filename'], |
| | | 'mimetype' => $part->ctype_primary . '/' . $part->ctype_secondary, |
| | | 'path' => $tmp_path); |
| | | } |
| | | if ($part->d_parameters['filename']) |
| | | $_SESSION['compose']['attachments'][] = array('name' => $part->d_parameters['filename'], |
| | | 'mimetype' => $part->ctype_primary . '/' . $part->ctype_secondary, |
| | | 'path' => $tmp_path); |
| | | |
| | | else if ($part->ctype_parameters['name']) |
| | | $_SESSION['compose']['attachments'][] = array('name' => $part->ctype_parameters['name'], |
| | | 'mimetype' => $part->ctype_primary . '/' . $part->ctype_secondary, |
| | | 'path' => $tmp_path); |
| | | |
| | | else if ($part->headers['content-description']) |
| | | $_SESSION['compose']['attachments'][] = array('name' => $part->headers['content-description'], |
| | | 'mimetype' => $part->ctype_primary . '/' . $part->ctype_secondary, |
| | | 'path' => $tmp_path); |
| | | } |
| | | } |
| | | } |
| | | |
| | | $_SESSION['compose']['forward_attachments'] = TRUE; |
| | |
| | | |
| | | // use subject from post |
| | | if (isset($_POST['_subject'])) |
| | | $subject = stripslashes($_POST['_subject']); |
| | | $subject = get_input_value('_subject', RCUBE_INPUT_POST, TRUE); |
| | | |
| | | // create a reply-subject |
| | | else if (isset($REPLY_MESSAGE['subject'])) |
| | |
| | | } |
| | | |
| | | |
| | | function rcmail_receipt_checkbox($attrib) |
| | | { |
| | | list($form_start, $form_end) = get_form_tags($attrib); |
| | | unset($attrib['form']); |
| | | |
| | | $attrib['name'] = '_receipt'; |
| | | $checkbox = new checkbox(array('name' => '_receipt', 'id' => 'receipt', 'value' => 1)); |
| | | |
| | | $out = $form_start ? "$form_start\n" : ''; |
| | | $out .= $checkbox->show(0); |
| | | $out .= $form_end ? "\n$form_end" : ''; |
| | | |
| | | return $out; |
| | | } |
| | | |
| | | |
| | | function get_form_tags($attrib) |
| | | { |
| | | global $CONFIG, $OUTPUT, $JS_OBJECT_NAME, $MESSAGE_FORM, $SESS_HIDDEN_FIELD; |