/** * 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 = []; if (is_string($addresses)) { $addresses = [$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 = $this->emailAddressHelper->extractEmailAddressName($address); if (empty($name)) { $result[] = $this->emailAddressHelper->extractPureEmailAddress($address); } else { $result[$this->emailAddressHelper->extractPureEmailAddress($address)] = $name; } } return $result; }
/** * @dataProvider emailAddressProvider */ public function testExtractEmailAddressName($fullEmailAddress, $pureEmailAddress, $name) { $this->assertEquals($name, $this->helper->extractEmailAddressName($fullEmailAddress)); }
/** * Gets the email address name * * @param string $email * @return string The email address name or empty string if the name is not found */ public function getEmailAddressName($email) { $result = $this->emailAddressHelper->extractEmailAddressName($email); return null !== $result ? $result : ''; }