thomascube
2006-02-19 f88d417c96119b8e50297b930b14fe6ff9a1c5ed
program/steps/mail/sendmail.inc
@@ -80,9 +80,6 @@
$input_charset = $CHARSET;
$message_charset = isset($_POST['_charset']) ? $_POST['_charset'] : $input_charset;
// unset global var
$CHARSET = '';
$mailto_regexp = array('/[,;]\s*[\r\n]+/', '/[\r\n]+/', '/[,;]\s*$/m');
$mailto_replace = array(', ', ', ', '');
@@ -118,7 +115,7 @@
  $headers['Bcc'] = ($headers['Bcc'] ? $headers['Bcc'].', ' : '') . $identity_arr['bcc'];
// add subject
$headers['Subject'] = rcube_charset_convert(trim(stripslashes($_POST['_subject'])), $input_charset, $message_charset);
$headers['Subject'] = rcube_charset_convert(trim($_POST['_subject']), $input_charset, $message_charset);
if (strlen($identity_arr['organization']))
  $headers['Organization'] = $identity_arr['organization'];
@@ -126,9 +123,11 @@
if (strlen($identity_arr['reply-to']))
  $headers['Reply-To'] = $identity_arr['reply-to'];
if ($_SESSION['compose']['reply_msgid'])
if (!empty($_SESSION['compose']['reply_msgid']))
  $headers['In-Reply-To'] = $_SESSION['compose']['reply_msgid'];
if (!empty($_SESSION['compose']['references']))
  $headers['References'] = $_SESSION['compose']['references'];
if ($_POST['_priority'])
  {
@@ -147,7 +146,7 @@
  $headers['User-Agent'] = $CONFIG['useragent'];
// fetch message body
$message_body = rcube_charset_convert(stripslashes($_POST['_message']), $input_charset, $message_charset);
$message_body = rcube_charset_convert($_POST['_message'], $input_charset, $message_charset);
// append generic footer to all messages
if (!empty($CONFIG['generic_message_footer']))
@@ -183,8 +182,12 @@
    $MAIL_MIME->addAttachment($filepath, $files['type'][$i], $files['name'][$i], TRUE);
// chose transfer encoding
$charset_7bit = array('ASCII', 'ISO-2022-JP', 'ISO-8859-1', 'ISO-8859-2', 'ISO-8859-15');
$transfer_encoding = in_array(strtoupper($message_charset), $charset_7bit) ? '7bit' : '8bit';
// encoding settings for mail composing
$message_param = array('text_encoding' => '7bit',
$message_param = array('text_encoding' => $transfer_encoding,
                       'html_encoding' => 'quoted-printable',
                       'head_encoding' => 'quoted-printable',
                       'head_charset'  => $message_charset,
@@ -193,8 +196,11 @@
// compose message body and get headers
$msg_body = $MAIL_MIME->get($message_param);
$msg_subject = $headers['Subject'];
$msg_subject = $headers['Subject'];
global $MBSTRING;
if ($MBSTRING&&function_exists( "mb_encode_mimeheader"))
  $headers['Subject'] = mb_encode_mimeheader( $headers['Subject'],$message_charset);
// send thru SMTP server using cusotm SMTP library
if ($CONFIG['smtp_server'])
@@ -207,8 +213,12 @@
  if (strlen($headers['Bcc']))
    $a_recipients[] = $headers['Bcc'];
  // clean Bcc from header for recipients
  $send_headers = $headers;
  unset($send_headers['Bcc']);
  // generate message headers
  $header_str = $MAIL_MIME->txtHeaders($headers);
  $header_str = $MAIL_MIME->txtHeaders($send_headers);
  // send message
  $sent = smtp_mail($from, $a_recipients, $header_str, $msg_body);
@@ -228,7 +238,7 @@
else
  {
  // unset some headers because they will be added by the mail() function
  $headers_php = $headers;
  $headers_php = $MAIL_MIME->_headers;
  $headers_enc = $MAIL_MIME->headers($headers);
  unset($headers_php['To'], $headers_php['Subject']);
@@ -242,9 +252,6 @@
    $sent = mail($headers_enc['To'], $headers_enc['Subject'], $msg_body, $header_str, "-f$from");
  }
// resore page charset
$CHARSET = $input_charset;
// return to compose page if sending failed
if (!$sent)