| | |
| | | } |
| | | |
| | | // parse email address input |
| | | function rcmail_mailto_format($mailto) |
| | | function rcmail_email_input_format($mailto) |
| | | { |
| | | $regexp = array('/[,;]\s*[\r\n]+/', '/[\r\n]+/', '/[,;]\s*$/m', '/;/', '/(\S{1})(<\S+@\S+>)/U'); |
| | | $replace = array(', ', ', ', '', ',', '\\1 \\2'); |
| | |
| | | $input_charset = $OUTPUT->get_charset(); |
| | | $message_charset = isset($_POST['_charset']) ? $_POST['_charset'] : $input_charset; |
| | | |
| | | $mailto = rcmail_mailto_format(get_input_value('_to', RCUBE_INPUT_POST, TRUE, $message_charset)); |
| | | $mailcc = rcmail_mailto_format(get_input_value('_cc', RCUBE_INPUT_POST, TRUE, $message_charset)); |
| | | $mailbcc = rcmail_mailto_format(get_input_value('_bcc', RCUBE_INPUT_POST, TRUE, $message_charset)); |
| | | $mailto = rcmail_email_input_format(get_input_value('_to', RCUBE_INPUT_POST, TRUE, $message_charset)); |
| | | $mailcc = rcmail_email_input_format(get_input_value('_cc', RCUBE_INPUT_POST, TRUE, $message_charset)); |
| | | $mailbcc = rcmail_email_input_format(get_input_value('_bcc', RCUBE_INPUT_POST, TRUE, $message_charset)); |
| | | |
| | | if (empty($mailto) && !empty($mailcc)) { |
| | | $mailto = $mailcc; |
| | |
| | | $mailto = 'undisclosed-recipients:;'; |
| | | |
| | | // get sender name and address |
| | | $from = get_input_value('_from', RCUBE_INPUT_POST); |
| | | $from = get_input_value('_from', RCUBE_INPUT_POST, true, $message_charset); |
| | | $identity_arr = rcmail_get_identity($from); |
| | | |
| | | if ($identity_arr) |
| | | if (!$identity_arr && ($from = rcmail_email_input_format($from))) { |
| | | if (preg_match('/(\S+@\S+)/', $from, $m)) |
| | | $identity_arr['mailto'] = $m[1]; |
| | | } else |
| | | $from = $identity_arr['mailto']; |
| | | |
| | | if (empty($identity_arr['string'])) |
| | |
| | | $headers['Organization'] = $identity_arr['organization']; |
| | | |
| | | if (!empty($_POST['_replyto'])) |
| | | $headers['Reply-To'] = rcmail_mailto_format(get_input_value('_replyto', RCUBE_INPUT_POST, TRUE, $message_charset)); |
| | | $headers['Reply-To'] = rcmail_email_input_format(get_input_value('_replyto', RCUBE_INPUT_POST, TRUE, $message_charset)); |
| | | else if (!empty($identity_arr['reply-to'])) |
| | | $headers['Reply-To'] = $identity_arr['reply-to']; |
| | | |
| | |
| | | // generic footer for all messages |
| | | if (!empty($CONFIG['generic_message_footer'])) { |
| | | $footer = file_get_contents(realpath($CONFIG['generic_message_footer'])); |
| | | $footer = rcube_charset_convert($footer, 'UTF-8', $message_charset); |
| | | $footer = rcube_charset_convert($footer, RCMAIL_CHARSET, $message_charset); |
| | | } |
| | | } |
| | | |