thomascube
2006-04-04 f3704e18d89e4065cede8509256d7fbf483b7fe6
program/steps/mail/compose.inc
@@ -33,7 +33,7 @@
// add some labels to client
rcube_add_label('nosubject', 'norecipientwarning', 'nosubjectwarning', 'nobodywarning', 'sendingmessage');
rcube_add_label('nosubject', 'norecipientwarning', 'nosubjectwarning', 'nobodywarning', 'sendingmessage', 'notsentwarning');
if ($_GET['_reply_uid'] || $_GET['_forward_uid'])
@@ -59,6 +59,9 @@
    $REPLY_MESSAGE = &$MESSAGE;
    $_SESSION['compose']['reply_uid'] = $_GET['_reply_uid'];
    $_SESSION['compose']['reply_msgid'] = $REPLY_MESSAGE['headers']->messageID;
    $_SESSION['compose']['references']  = $REPLY_MESSAGE['headers']->reference;
    $_SESSION['compose']['references'] .= !empty($REPLY_MESSAGE['headers']->reference) ? ' ' : '';
    $_SESSION['compose']['references'] .= $REPLY_MESSAGE['headers']->messageID;
    if ($_GET['_all'])
      $REPLY_MESSAGE['reply_all'] = 1;
@@ -95,7 +98,7 @@
      $header = 'to';
      // we have contact id's as get parameters
      if (!empty($_GET['_to']) && preg_match('/^([0-9]+,?)+$/', $_GET['_to']))
      if (!empty($_GET['_to']) && preg_match('/^[0-9]+(,[0-9]+)*$/', $_GET['_to']))
        {
        $a_recipients = array();
        $sql_result = $DB->query("SELECT name, email
@@ -139,14 +142,16 @@
    
  if ($fname && !empty($_POST[$fname]))
    $fvalue = $_POST[$fname];
    $fvalue = get_input_value($fname, RCUBE_INPUT_POST, TRUE);
  else if ($header && is_object($REPLY_MESSAGE['headers']))
    {
    // get recipent address(es) out of the message headers
    if ($header=='to' && $REPLY_MESSAGE['headers']->replyto)
      $fvalue = $IMAP->decode_header($REPLY_MESSAGE['headers']->replyto);
    else if ($header=='to' && $REPLY_MESSAGE['headers']->from)
      $fvalue = $IMAP->decode_header($REPLY_MESSAGE['headers']->from);
    // add recipent of original message if reply to all
    else if ($header=='cc' && $REPLY_MESSAGE['reply_all'])
      {
@@ -169,7 +174,7 @@
      $fvalue = '';
      foreach ($to_addresses as $addr_part)
        {
        if (!in_array($addr_part['mailto'], $sa_recipients))
        if (!in_array($addr_part['mailto'], $sa_recipients) && (!$REPLY_MESSAGE['FROM'] || !in_array($addr_part['mailto'], $REPLY_MESSAGE['FROM'])))
          {
          $fvalue .= (strlen($fvalue) ? ', ':'').$addr_part['string'];
          $sa_recipients[] = $addr_part['mailto'];
@@ -214,6 +219,8 @@
  $a_recipients = array();
  if ($REPLY_MESSAGE && is_object($REPLY_MESSAGE['headers']))
    {
    $REPLY_MESSAGE['FROM'] = array();
    $a_to = $IMAP->decode_address_list($REPLY_MESSAGE['headers']->to);        
    foreach ($a_to as $addr)
      {
@@ -259,6 +266,9 @@
      // set identity if it's one of the reply-message recipients
      if (in_array($sql_arr['email'], $a_recipients))
        $from_id = $sql_arr['identity_id'];
      if ($REPLY_MESSAGE && is_array($REPLY_MESSAGE['FROM']))
        $REPLY_MESSAGE['FROM'][] = $sql_arr['email'];
      }
    // overwrite identity selection with post parameter
@@ -299,7 +309,7 @@
  
  // use posted message body
  if (!empty($_POST['_message']))
    $body = stripslashes($_POST['_message']);
    $body = get_input_value('_message', RCUBE_INPUT_POST, TRUE);
    
  // compose reply-body
  else if (is_array($REPLY_MESSAGE['parts']))
@@ -353,7 +363,7 @@
           
  // try to remove the signature
  if ($sp = strrpos($body, '--'))
  if ($sp = strrpos($body, '-- '))
    {
    if ($body{$sp+3}==' ' || $body{$sp+3}=="\n" || $body{$sp+3}=="\r")
      $body = substr($body, 0, $sp-1);
@@ -423,7 +433,7 @@
  // use subject from post
  if (isset($_POST['_subject']))
    $subject = stripslashes($_POST['_subject']);
    $subject = get_input_value('_subject', RCUBE_INPUT_POST, TRUE);
    
  // create a reply-subject
  else if (isset($REPLY_MESSAGE['subject']))