| | |
| | | $OUTPUT->set_env('session_id', session_id()); |
| | | $OUTPUT->set_env('mailbox', $RCMAIL->storage->get_folder()); |
| | | $OUTPUT->set_env('top_posting', intval($RCMAIL->config->get('reply_mode')) > 0); |
| | | $OUTPUT->set_env('sig_below', $RCMAIL->config->get('sig_below')); |
| | | $OUTPUT->set_env('recipients_separator', trim($RCMAIL->config->get('recipients_separator', ','))); |
| | | $OUTPUT->set_env('save_localstorage', (bool)$RCMAIL->config->get('compose_save_localstorage')); |
| | | $OUTPUT->set_env('is_sent', false); |
| | |
| | | else if (!empty($MESSAGE->headers->from)) |
| | | $fvalue = $MESSAGE->headers->from; |
| | | |
| | | // Reply to message sent by yourself (#1487074, #1489230) |
| | | // Reply to message sent by yourself (#1487074, #1489230, #1490439) |
| | | // Reply-To address need to be unset (#1490233) |
| | | if (!empty($ident) && empty($replyto) |
| | | && in_array($ident['ident'], array($fvalue, $MESSAGE->headers->from)) |
| | | ) { |
| | | $fvalue = $MESSAGE->headers->to; |
| | | if (!empty($ident) && empty($replyto)) { |
| | | foreach (array($fvalue, $MESSAGE->headers->from) as $sender) { |
| | | $senders = rcube_mime::decode_address_list($sender, null, false, $charset, true); |
| | | |
| | | if (in_array($ident['email_ascii'], $senders)) { |
| | | $fvalue = $MESSAGE->headers->to; |
| | | break; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | // add recipient of original message if reply to all |
| | |
| | | if ($v = $MESSAGE->headers->cc) |
| | | $fvalue .= (!empty($fvalue) ? $separator : '') . $v; |
| | | // Use Sender header (#1489011) |
| | | if (($v = $MESSAGE->headers->get('Sender', false)) && strpos($v, '-bounces@') === false) |
| | | $fvalue .= (!empty($fvalue) ? $separator : '') . $v; |
| | | if ($v = $MESSAGE->headers->get('Sender', false)) { |
| | | // Skip common mailing lists addresses: *-bounces@ and *-request@ (#1490452) |
| | | if (empty($MESSAGE->headers->others['list-post']) || !preg_match('/-(bounces|request)@/', $v)) { |
| | | $fvalue .= (!empty($fvalue) ? $separator : '') . $v; |
| | | } |
| | | } |
| | | |
| | | // When To: and Reply-To: are the same we add From: address to the list (#1489037) |
| | | if ($v = $MESSAGE->headers->from) { |
| | |
| | | if (count($MESSAGE->identities)) { |
| | | $a_signatures = array(); |
| | | $identities = array(); |
| | | $separator = intval($RCMAIL->config->get('reply_mode')) > 0 |
| | | && ($compose_mode == RCUBE_COMPOSE_REPLY || $compose_mode == RCUBE_COMPOSE_FORWARD) ? '---' : '-- '; |
| | | $top_posting = intval($RCMAIL->config->get('reply_mode')) > 0 |
| | | && !$RCMAIL->config->get('sig_below') |
| | | && ($compose_mode == RCUBE_COMPOSE_REPLY || $compose_mode == RCUBE_COMPOSE_FORWARD); |
| | | $separator = $top_posting ? '---' : '-- '; |
| | | |
| | | $field_attrib['onchange'] = rcmail_output::JS_OBJECT_NAME.".change_identity(this)"; |
| | | $select_from = new html_select($field_attrib); |
| | |
| | | $text = $html = $sql_arr['signature']; |
| | | |
| | | if ($sql_arr['html_signature']) { |
| | | $h2t = new rcube_html2text($sql_arr['signature'], false, true); |
| | | $h2t = new rcube_html2text($html, false, true); |
| | | $text = trim($h2t->get_text()); |
| | | } |
| | | else { |
| | | $html = htmlentities($html, ENT_NOQUOTES, RCUBE_CHARSET); |
| | | $t2h = new rcube_text2html($text, false); |
| | | $html = $t2h->get_html(); |
| | | } |
| | | |
| | | if (!preg_match('/^--[ -]\r?\n/m', $text)) { |
| | | $text = $separator . "\n" . $text; |
| | | $html = $separator . "<br>" . $html; |
| | | } |
| | | |
| | | if (!$sql_arr['html_signature']) { |
| | | $t2h = new rcube_text2html($sql_arr['signature'], false); |
| | | $html = $t2h->get_html(); |
| | | } |
| | | |
| | | $a_signatures[$identity_id]['text'] = $text; |
| | |
| | | |
| | | return $out; |
| | | } |
| | | |
| | | |
| | | function rcmail_compose_editor_mode() |
| | | { |