| | |
| | | $mailcc = rcmail_email_input_format(rcube_utils::get_input_value('_cc', rcube_utils::INPUT_POST, TRUE, $message_charset), true); |
| | | $mailbcc = rcmail_email_input_format(rcube_utils::get_input_value('_bcc', rcube_utils::INPUT_POST, TRUE, $message_charset), true); |
| | | |
| | | if ($EMAIL_FORMAT_ERROR) { |
| | | if ($EMAIL_FORMAT_ERROR && !$savedraft) { |
| | | $OUTPUT->show_message('emailformaterror', 'error', array('email' => $EMAIL_FORMAT_ERROR)); |
| | | $OUTPUT->send('iframe'); |
| | | } |
| | |
| | | $headers['Mail-Reply-To'] = $headers['Reply-To']; |
| | | } |
| | | if ($hdr = rcube_utils::get_input_value('_followupto', rcube_utils::INPUT_POST, TRUE, $message_charset)) { |
| | | $headers['Mail-Followup-To'] = rcmail_email_input_format(); |
| | | $headers['Mail-Followup-To'] = rcmail_email_input_format($hdr); |
| | | } |
| | | |
| | | // remember reply/forward UIDs in special headers |
| | |
| | | $headers['X-Draft-Info'] = array('type' => 'reply', 'uid' => $COMPOSE['reply_uid']); |
| | | } |
| | | else if (!empty($COMPOSE['forward_uid']) && $savedraft) { |
| | | $headers['X-Draft-Info'] = array('type' => 'forward', 'uid' => $COMPOSE['forward_uid']); |
| | | $headers['X-Draft-Info'] = array('type' => 'forward', 'uid' => rcube_imap_generic::compressMessageSet($COMPOSE['forward_uid'])); |
| | | } |
| | | |
| | | if (!empty($COMPOSE['reply_msgid'])) { |
| | |
| | | $transfer_encoding = $RCMAIL->config->get('force_7bit') ? 'quoted-printable' : '8bit'; |
| | | } |
| | | else { |
| | | $text_charset = ''; |
| | | $text_charset = 'US-ASCII'; |
| | | $transfer_encoding = '7bit'; |
| | | } |
| | | |
| | | if ($flowed) { |
| | | if (!$text_charset) { |
| | | $text_charset = 'US-ASCII'; |
| | | } |
| | | |
| | | $text_charset .= ";\r\n format=flowed"; |
| | | } |
| | | |
| | |
| | | else if (!$RCMAIL->config->get('no_save_sent_messages')) { |
| | | $store_target = rcube_utils::get_input_value('_store_target', rcube_utils::INPUT_POST); |
| | | if (!strlen($store_target)) { |
| | | $sore_target = $RCMAIL->config->get('sent_mbox'); |
| | | $store_target = $RCMAIL->config->get('sent_mbox'); |
| | | } |
| | | } |
| | | |
| | |
| | | $body = $mime_message->getHTMLBody(); |
| | | $offset = 0; |
| | | $list = array(); |
| | | $regexp = '# src=[\'"](data:(image/[a-z]+);base64,([a-z0-9+/=\r\n]+))([\'"])#i'; |
| | | |
| | | // get domain for the Content-ID, must be the same as in Mail_Mime::get() |
| | | if (preg_match('#@([0-9a-zA-Z\-\.]+)#', $from, $matches)) { |
| | | $domain = $matches[1]; |
| | | } else { |
| | | $domain = 'localhost'; |
| | | } |
| | | $domain = 'localhost'; |
| | | $regexp = '#img[^>]+src=[\'"](data:([^;]*);base64,([a-z0-9+/=\r\n]+))([\'"])#i'; |
| | | |
| | | if (preg_match_all($regexp, $body, $matches, PREG_OFFSET_CAPTURE)) { |
| | | // get domain for the Content-ID, must be the same as in Mail_Mime::get() |
| | | if (preg_match('#@([0-9a-zA-Z\-\.]+)#', $from, $m)) { |
| | | $domain = $m[1]; |
| | | } |
| | | |
| | | foreach ($matches[1] as $idx => $m) { |
| | | $data = preg_replace('/\r\n/', '', $matches[3][$idx][0]); |
| | | $data = base64_decode($data); |
| | |
| | | $mime_type = $matches[2][$idx][0]; |
| | | $name = $list[$hash]; |
| | | |
| | | if (empty($mime_type)) { |
| | | $mime_type = rcube_mime::image_content_type($data); |
| | | } |
| | | |
| | | // add the image to the MIME message |
| | | if (!$name) { |
| | | $ext = preg_replace('#^[^/]+/#', '', $mime_type); |