/**
  * Converts emails addresses to a form acceptable to \Swift_Mime_Message class
  *
  * @param string|string[] $addresses Examples of correct email addresses: john@example.com, <*****@*****.**>,
  *                                   John Smith <*****@*****.**> or "John Smith" <*****@*****.**>
  * @return array
  * @throws \InvalidArgumentException
  */
 protected function getAddresses($addresses)
 {
     $result = array();
     if (is_string($addresses)) {
         $addresses = array($addresses);
     }
     if (!is_array($addresses) && !$addresses instanceof \Iterator) {
         throw new \InvalidArgumentException('The $addresses argument must be a string or a list of strings (array or Iterator)');
     }
     foreach ($addresses as $address) {
         $name = EmailUtil::extractEmailAddressName($address);
         if (empty($name)) {
             $result[] = EmailUtil::extractPureEmailAddress($address);
         } else {
             $result[EmailUtil::extractPureEmailAddress($address)] = $name;
         }
     }
     return $result;
 }
 /**
  * @dataProvider emailAddressProvider
  */
 public function testExtractEmailAddressName($fullEmailAddress, $pureEmailAddress, $name)
 {
     $this->assertEquals($name, EmailUtil::extractEmailAddressName($fullEmailAddress));
 }