/** * Create EmailAddress entity object * * @param string $email The email address, for example: john@example.com or "John Smith" <*****@*****.**> * @return EmailAddress */ public function address($email) { $pureEmail = EmailUtil::extractPureEmailAddress($email); $result = $this->batch->getAddress($pureEmail); if ($result === null) { $result = $this->emailAddressManager->newEmailAddress()->setEmail($pureEmail); $this->batch->addAddress($result); } return $result; }
/** * 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 testExtractPureEmailAddress($fullEmailAddress, $pureEmailAddress, $name) { $this->assertEquals($pureEmailAddress, EmailUtil::extractPureEmailAddress($fullEmailAddress)); }