alecpl
2009-01-07 1af6fe235dfab37a93bb9f0d581a4fefa0157a9c
program/steps/mail/sendmail.inc
@@ -30,7 +30,7 @@
/****** checks ********/
if (!isset($_SESSION['compose']['id'])) {
  raise_error(array('code' => 500, 'file' => __FILE__, 'message' => "Invalid compose ID"), true, false);
  raise_error(array('code' => 500, 'type' => 'smtp', 'file' => __FILE__, 'message' => "Invalid compose ID"), true, false);
  console("Sendmail error", $_SESSION['compose']);
  $OUTPUT->show_message("An internal error occured. Please try again.", 'error');
  $OUTPUT->send('iframe');
@@ -64,7 +64,13 @@
    {
    $out = $sql_arr;
    $out['mailto'] = $sql_arr['email'];
    $name = strpos($sql_arr['name'], ",") ? '"'.$sql_arr['name'].'"' : $sql_arr['name'];
    // Special chars as defined by RFC 822 need to in quoted string (or escaped).
    if (preg_match('/[\(\)\<\>\\\.\[\]@,;:"]/', $sql_arr['name']))
      $name = '"' . addcslashes($sql_arr['name'], '"') . '"';
    else
      $name = $sql_arr['name'];
    $out['string'] = rcube_charset_convert($name, RCMAIL_CHARSET, $OUTPUT->get_charset());
    if ($sql_arr['email'])
      $out['string'] .= ' <' . $sql_arr['email'] . '>';
@@ -98,8 +104,8 @@
  $body = preg_replace('/\x00/', '', $htmlContents);
  
  $last_img_pos = 0;
  $searchstr = 'program/js/tiny_mce/plugins/emotions/img/';
  $path_len = strlen(INSTALL_PATH . '/');
  // keep track of added images, so they're only added once
  $included_images = array();
@@ -109,29 +115,29 @@
    {
    $pos2 = strpos($body, '"', $pos);
    $body_pre = substr($body, 0, $pos);
    $body_post = substr($body, $pos2);
    $image_name = substr($body,
                         $pos + strlen($searchstr),
                         $pos2 - ($pos + strlen($searchstr)));
    // sanitize image name so resulting attachment doesn't leave images dir
    $image_name = preg_replace('/[^a-zA-Z0-9_\.\-]/i','',$image_name);
    $body_post = substr($body, $pos2);
    $img_file = INSTALL_PATH . '/' . $searchstr . $image_name;
    if (! in_array($image_name, $included_images))
      {
      // add the image to the MIME message
      $img_file = INSTALL_PATH . '/' . $searchstr . $image_name;
      if(! $mime_message->addHTMLImage($img_file, 'image/gif', '', true, $image_name))
        $OUTPUT->show_message("emoticonerror", 'error');
      array_push($included_images, $image_name);
      }
    $body = $body_pre . $img_file . $body_post;
    $last_img_pos = $pos2;
    $last_img_pos = $pos2 + $path_len;
    }
  $mime_message->setHTMLBody($body);
}