thomascube
2008-12-16 d859b0ca1f2bc7f046ff595fab93d17d6f6f42e4
program/steps/mail/compose.inc
@@ -24,34 +24,6 @@
define('RCUBE_COMPOSE_FORWARD', 0x0107);
define('RCUBE_COMPOSE_DRAFT', 0x0108);
// remove an attachment
if ($RCMAIL->action=='remove-attachment' && preg_match('/^rcmfile([0-9]+)$/', $_POST['_file'], $regs))
{
  $id = $regs[1];
  if (is_array($_SESSION['compose']['attachments'][$id]))
  {
    @unlink($_SESSION['compose']['attachments'][$id]['path']);
    unset($_SESSION['compose']['attachments'][$id]);
    $OUTPUT->command('remove_from_attachment_list', "rcmfile$id");
    $OUTPUT->send();
  }
  exit;
}
if ($RCMAIL->action=='display-attachment' && preg_match('/^rcmfile([0-9]+)$/', $_GET['_file'], $regs))
{
  $id = $regs[1];
  if (is_array($_SESSION['compose']['attachments'][$id]))
  {
    $apath = $_SESSION['compose']['attachments'][$id]['path'];
    header('Content-Type: ' . $_SESSION['compose']['attachments'][$id]['mimetype']);
    header('Content-Length: ' . filesize($apath));
    readfile($apath);
  }
  exit;
}
$MESSAGE_FORM = NULL;
$MESSAGE = NULL;
@@ -83,7 +55,7 @@
// add some labels to client
$OUTPUT->add_label('nosubject', 'nosenderwarning', 'norecipientwarning', 'nosubjectwarning',
    'nobodywarning', 'notsentwarning', 'savingmessage', 'sendingmessage', 'messagesaved',
    'converting', 'editorwarning');
    'converting', 'editorwarning', 'searching');
// add config parameters to client script
if (!empty($CONFIG['drafts_mbox'])) {
@@ -219,10 +191,10 @@
      foreach ($to_addresses as $addr_part)
      {
        if (!empty($addr_part['mailto'])
       && !in_array($addr_part['mailto'], $sa_recipients)
       && (!$MESSAGE->compose_from
      || !in_array_nocase($addr_part['mailto'], $MESSAGE->compose_from)
      || count($to_addresses)==1)) // allow reply to yourself
            && !in_array($addr_part['mailto'], $sa_recipients)
            && (!$MESSAGE->compose_from
                || !in_array_nocase($addr_part['mailto'], $MESSAGE->compose_from)
                || (count($to_addresses)==1 && $header=='to'))) // allow reply to yourself
        {
          $fvalue .= (strlen($fvalue) ? ', ':'').$addr_part['string'];
          $sa_recipients[] = $addr_part['mailto'];
@@ -323,8 +295,7 @@
        if ($a_signatures[$identity_id]['is_html'])
        {
            $h2t = new html2text($a_signatures[$identity_id]['text'], false, false);
            $plainTextPart = $h2t->get_text();
            $a_signatures[$identity_id]['plain_text'] = trim(html_entity_decode($plainTextPart, ENT_NOQUOTES, 'UTF-8'));
            $a_signatures[$identity_id]['plain_text'] = trim($h2t->get_text());
        }
      }
@@ -415,8 +386,8 @@
      // replace cid with href in inline images links
      foreach ((array)$_SESSION['compose']['attachments'] as $pid => $attachment) {
        if ($attachment['content_id']) {
     $body = str_replace('cid:'. $attachment['content_id'],
       $OUTPUT->app->comm_path.'&_action=display-attachment&_file=rcmfile'.$pid, $body);
          $body = str_replace('cid:'. $attachment['content_id'],
            $OUTPUT->app->comm_path.'&_action=display-attachment&_file=rcmfile'.$pid, $body);
        }
      }
    }
@@ -539,7 +510,7 @@
      $MESSAGE->headers->date,
      htmlspecialchars(Q($MESSAGE->get_header('from'), 'replace'), ENT_COMPAT, $OUTPUT->get_charset()));
    $prefix .= '<blockquote type="cite" style="padding-left:5px; border-left:#1010ff 2px solid; margin-left:5px; width:100%">';
    $suffix = "</blockquote>";
    $suffix = "</blockquote><p></p>";
    rcmail_write_inline_attachments($MESSAGE);
  }
@@ -615,7 +586,7 @@
  {
    if (($part->ctype_primary != 'message' || !$bodyIsHtml) &&
        ($part->disposition=='attachment' || $part->disposition=='inline' || $part->headers['content-id']
   || (empty($part->disposition) && $part->filename)))
         || (empty($part->disposition) && $part->filename)))
    {
      if ($attachment = rcmail_save_attachment($message, $pid))
        $_SESSION['compose']['attachments'][] = $attachment;
@@ -913,54 +884,6 @@
  'receiptcheckbox' => 'rcmail_receipt_checkbox',
  'storetarget' => 'rcmail_store_target_selection',
));
/****** get contacts for this user and add them to client scripts ********/
$CONTACTS = new rcube_contacts($DB, $USER->ID);
$CONTACTS->set_pagesize(1000);
$a_contacts = array();
if ($result = $CONTACTS->list_records())
  {
  while ($sql_arr = $result->iterate())
    if ($sql_arr['email'])
      $a_contacts[] = format_email_recipient($sql_arr['email'], $sql_arr['name']);
  }
if (!empty($CONFIG['ldap_public']) && is_array($CONFIG['ldap_public']))
  {
  /* LDAP autocompletion */
  foreach ($CONFIG['ldap_public'] as $ldapserv_config)
    {
    if ($ldapserv_config['fuzzy_search'] != 1 ||
        $ldapserv_config['global_search'] != 1)
      {
      continue;
      }
    $LDAP = new rcube_ldap($ldapserv_config);
    $LDAP->connect();
    $LDAP->set_pagesize(1000);
    $results = $LDAP->search($ldapserv_config['mail_field'], "");
    for ($i = 0; $i < $results->count; $i++)
      {
      if ($results->records[$i]['email'] != '')
        {
        $email = $results->records[$i]['email'];
        $name = $results->records[$i]['name'];
        $a_contacts[] = format_email_recipient($email, $name);
        }
      }
    $LDAP->close();
    }
  }
if ($a_contacts)
  {
    $OUTPUT->set_env('contacts', $a_contacts);
  }
$OUTPUT->send('compose');