thomascube
2006-05-18 cead5c727147faac362e742aa7bcecf07f68cd99
program/steps/mail/sendmail.inc
@@ -83,7 +83,7 @@
$mailto_replace = array(', ', ', ', '');
// repalce new lines and strip ending ', '
$mailto = preg_replace($mailto_regexp, $mailto_replace, stripslashes($_POST['_to']));
$mailto = preg_replace($mailto_regexp, $mailto_replace, get_input_value('_to', RCUBE_INPUT_POST, TRUE, $message_charset));
// decode address strings
$to_address_arr = $IMAP->decode_address_list($mailto);
@@ -104,22 +104,22 @@
                 'To'   => rcube_charset_convert($mailto, $input_charset, $message_charset));
// additional recipients
if ($_POST['_cc'])
  $headers['Cc'] = rcube_charset_convert(preg_replace($mailto_regexp, $mailto_replace, stripslashes($_POST['_cc'])), $input_charset, $message_charset);
if (!empty($_POST['_cc']))
  $headers['Cc'] = preg_replace($mailto_regexp, $mailto_replace, get_input_value('_cc', RCUBE_INPUT_POST, TRUE, $message_charset));
if ($_POST['_bcc'])
  $headers['Bcc'] = rcube_charset_convert(preg_replace($mailto_regexp, $mailto_replace, stripslashes($_POST['_bcc'])), $input_charset, $message_charset);
if (!empty($_POST['_bcc']))
  $headers['Bcc'] = preg_replace($mailto_regexp, $mailto_replace, get_input_value('_bcc', RCUBE_INPUT_POST, TRUE, $message_charset));
  
if (strlen($identity_arr['bcc']))
if (!empty($identity_arr['bcc']))
  $headers['Bcc'] = ($headers['Bcc'] ? $headers['Bcc'].', ' : '') . $identity_arr['bcc'];
// add subject
$headers['Subject'] = rcube_charset_convert(trim($_POST['_subject']), $input_charset, $message_charset);
$headers['Subject'] = trim(get_input_value('_subject', RCUBE_INPUT_POST, FALSE, $message_charset));
if (strlen($identity_arr['organization']))
if (!empty($identity_arr['organization']))
  $headers['Organization'] = $identity_arr['organization'];
if (strlen($identity_arr['reply-to']))
if (!empty($identity_arr['reply-to']))
  $headers['Reply-To'] = $identity_arr['reply-to'];
if (!empty($_SESSION['compose']['reply_msgid']))
@@ -128,7 +128,7 @@
if (!empty($_SESSION['compose']['references']))
  $headers['References'] = $_SESSION['compose']['references'];
if ($_POST['_priority'])
if (!empty($_POST['_priority']))
  {
  $priority = (int)$_POST['_priority'];
  $a_priorities = array(1=>'lowest', 2=>'low', 4=>'high', 5=>'highest');
@@ -136,16 +136,21 @@
    $headers['X-Priority'] = sprintf("%d (%s)", $priority, ucfirst($str_priority));
  }
if (!empty($_POST['_receipt']))
  {
  $headers['Return-Receipt-To'] = $identity_arr['string'];
  $headers['Disposition-Notification-To'] = $identity_arr['string'];
  }
// additional headers
$headers['Message-ID'] = $message_id;
$headers['X-Sender'] = $from;
if ($CONFIG['useragent'])
if (!empty($CONFIG['useragent']))
  $headers['User-Agent'] = $CONFIG['useragent'];
// fetch message body
$message_body = rcube_charset_convert($_POST['_message'], $input_charset, $message_charset);
$message_body = get_input_value('_message', RCUBE_INPUT_POST, TRUE, $message_charset);
// append generic footer to all messages
if (!empty($CONFIG['generic_message_footer']))
@@ -159,9 +164,16 @@
    }
  }
// try to autodetect operating system and use the correct line endings
// use the configured delimiter for headers
$header_delm = $CONFIG['mail_header_delimiter'] ? $CONFIG['mail_header_delimiter'] : "\r\n";
if (!empty($CONFIG['mail_header_delimiter']))
  $header_delm = $CONFIG['mail_header_delimiter'];
else if (strtolower(substr(PHP_OS, 0, 3)=='win'))
  $header_delm = "\r\n";
else if (strtolower(substr(PHP_OS, 0, 3)=='mac'))
  $header_delm = "\r\n";
else
  $header_delm = "\n";
// create PEAR::Mail_mime instance
$MAIL_MIME = new Mail_mime($header_delm);
@@ -274,12 +286,12 @@
  // check if mailbox exists
  if (!in_array_nocase($CONFIG['sent_mbox'], $IMAP->list_mailboxes()))
    $mbox = $IMAP->create_mailbox($CONFIG['sent_mbox'], TRUE);
    $sent_folder = $IMAP->create_mailbox($CONFIG['sent_mbox'], TRUE);
  else
    $mbox = TRUE;
    $sent_folder = TRUE;
  // append message to sent box
  if ($mbox)
  if ($sent_folder)
    $saved = $IMAP->save_message($CONFIG['sent_mbox'], $header_str."\r\n".$msg_body);
  // raise error if saving failed