svncommit
2009-05-12 617b4f699f2e47991c50e05528b1f9ecbc3c3d9c
program/include/rcube_smtp.inc
@@ -76,13 +76,14 @@
  // create Net_SMTP object and connect to server
  if (!is_object($SMTP_CONN))
    {
    $helo_host = empty($CONFIG['smtp_helo_host']) ? (empty($_SERVER['SERVER_NAME']) ? 'localhost' : $_SERVER['SERVER_NAME']) : $CONFIG['smtp_helo_host'];
    if (!empty($CONFIG['smtp_helo_host']))
      $helo_host = $CONFIG['smtp_helo_host'];
    else if (!empty($_SERVER['SERVER_NAME']))
      $helo_host = preg_replace('/:\d+$/', '', $_SERVER['SERVER_NAME']);
    else
      $helo_host = 'localhost';
    $SMTP_CONN = new Net_SMTP($smtp_host, $smtp_port, $helo_host);
    // set debugging
    if ($CONFIG['debug_level'] & 8)
      $SMTP_CONN->setDebug(TRUE);
    // try to connect to server and exit on failure
    $result = $SMTP_CONN->connect($smtp_timeout);
@@ -326,7 +327,7 @@
    $recipients = implode(', ', $recipients);
    
  $addresses = array();
  $recipients = smtp_explode_quoted_str(",", $recipients);
  $recipients = rcube_explode_quoted_string(',', $recipients);
  
  reset($recipients);
  while (list($k, $recipient) = each($recipients))
@@ -336,7 +337,7 @@
    {
      if ((strpos($word, "@") > 0) && (strpos($word, "\"")===false))
        {
        $word = ereg_replace('^<|>$', '', trim($word));
        $word = preg_replace('/^<|>$/', '', trim($word));
        if (in_array($word, $addresses)===false)
          array_push($addresses, $word);
        }
@@ -344,25 +345,5 @@
    }
  return $addresses;
  }
/**
 * @access private
 */
function smtp_explode_quoted_str($delimiter, $string)
  {
  $quotes=explode("\"", $string);
  while ( list($key, $val) = each($quotes))
    if (($key % 2) == 1)
      $quotes[$key] = str_replace($delimiter, "_!@!_", $quotes[$key]);
    $string=implode("\"", $quotes);
    $result=explode($delimiter, $string);
    while (list($key, $val) = each($result))
      $result[$key] = str_replace("_!@!_", $delimiter, $result[$key]);
  return $result;
  }
?>