Selaa lähdekoodia

Zend_Mail: _formatAddress only quotes names containing '@' or ','. Closes [ZF-9821]

git-svn-id: http://framework.zend.com/svn/framework/standard/trunk@23696 44c647ce-9c0f-0410-b52a-842ac1e357ba
alexander 15 vuotta sitten
vanhempi
commit
3cf508ad37
2 muutettua tiedostoa jossa 3 lisäystä ja 2 poistoa
  1. 1 2
      library/Zend/Mail.php
  2. 2 0
      tests/Zend/Mail/MailTest.php

+ 1 - 2
library/Zend/Mail.php

@@ -1264,8 +1264,7 @@ class Zend_Mail extends Zend_Mime_Message
             return $email;
         } else {
             $encodedName = $this->_encodeHeader($name);
-            if ($encodedName === $name &&
-                    ((strpos($name, '@') !== false) || (strpos($name, ',') !== false))) {
+            if ($encodedName === $name  &&  strcspn($name, '()<>[]:;@\\,') != strlen($name)) {
                 $format = '"%s" <%s>';
             } else {
                 $format = '%s <%s>';

+ 2 - 0
tests/Zend/Mail/MailTest.php

@@ -208,6 +208,7 @@ class Zend_Mail_MailTest extends PHPUnit_Framework_TestCase
         $mail->setSubject('Test recipients Header format.');
         $mail->addTo('address_to1@example.com', 'name_to@example.com');
         $mail->addTo('address_to2@example.com', 'noinclude comma nor at mark');
+        $mail->addTo('address_to3@example.com', 'include brackets []');
         $mail->addCc('address_cc@example.com', 'include, name_cc');
 
         $mock = new Zend_Mail_Transport_Mock();
@@ -218,6 +219,7 @@ class Zend_Mail_MailTest extends PHPUnit_Framework_TestCase
         $this->assertContains('Test recipients Header format.', $mock->body);
         $this->assertContains('To: "name_to@example.com" <address_to1@example.com>', $mock->header);
         $this->assertContains('noinclude comma nor at mark <address_to2@example.com>', $mock->header);
+        $this->assertContains('"include brackets []" <address_to3@example.com>', $mock->header);
         $this->assertContains('Cc: "include, name_cc" <address_cc@example.com>', $mock->header);
     }