Changeset 0c6f4b8 in github


Ignore:
Timestamp:
Mar 21, 2008 9:29:12 AM (5 years ago)
Author:
thomascube <thomas@…>
Branches:
master, HEAD, courier-fix, dev-browser-capabilities, pdo, release-0.6, release-0.7, release-0.8
Children:
846dd74
Parents:
46bc52b
Message:

Better patch to correctly quote email recipient strings (from #1484191)

Location:
program
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • program/include/main.inc

    rb19536f r0c6f4b8  
    15681568  { 
    15691569  if ($name && $name != $email) 
    1570     return sprintf('%s <%s>', strpos($name, ",") ? '"'.$name.'"' : $name, $email); 
     1570    { 
     1571    // Special chars as defined by RFC 822 need to in quoted string (or escaped). 
     1572    return sprintf('%s <%s>', preg_match('/[\(\)\<\>\\\.\[\]@,;:"]/', $name) ? '"'.addcslashes($name, '"').'"' : $name, $email); 
     1573    } 
    15711574  else 
    15721575    return $email; 
  • program/include/rcube_imap.inc

    r52f8caf r0c6f4b8  
    22732273    $a = $this->_parse_address_list($input, $decode); 
    22742274    $out = array(); 
     2275    // Special chars as defined by RFC 822 need to in quoted string (or escaped). 
     2276    $special_chars = '[\(\)\<\>\\\.\[\]@,;:"]'; 
    22752277     
    22762278    if (!is_array($a)) 
     
    22862288      $name = preg_replace(array('/^[\'"]/', '/[\'"]$/'), '', trim($val['name'])); 
    22872289      if ($name && $address && $name != $address) 
    2288         $string = sprintf('%s <%s>', preg_match('/[,;<>]/', $name) ? '"'.addcslashes($name, '"').'"' : $name, $address); 
     2290        $string = sprintf('%s <%s>', preg_match("/$special_chars/", $name) ? '"'.addcslashes($name, '"').'"' : $name, $address); 
    22892291      else if ($address) 
    22902292        $string = $address; 
  • program/steps/mail/compose.inc

    r17b5fb7 r0c6f4b8  
    894894  while ($sql_arr = $result->iterate()) 
    895895    if ($sql_arr['email']) 
    896       $a_contacts[] = format_email_recipient($sql_arr['email'], JQ($sql_arr['name'])); 
     896      $a_contacts[] = format_email_recipient($sql_arr['email'], $sql_arr['name']); 
    897897  } 
    898898if (isset($CONFIG['ldap_public'])) 
     
    919919            $name = $results->records[$i]['name'];  
    920920                  
    921             $a_contacts[] = format_email_recipient($email, JQ($name));  
     921            $a_contacts[] = format_email_recipient($email, $name); 
    922922            }  
    923923          } 
Note: See TracChangeset for help on using the changeset viewer.