public function testAddressWithFluidInterface() { $mailAddress = new MailAddress(); $mailAddress->setUserName('foo bar')->setMailbox('foobar')->setHostName('example.com'); $this->assertEquals('foo bar', $mailAddress->getUserName()); $this->assertEquals('foobar', $mailAddress->getMailbox()); $this->assertEquals('example.com', $mailAddress->getHostName()); $this->assertEquals('*****@*****.**', $mailAddress->getEmail()); $this->assertEquals('foo bar <*****@*****.**>', (string) $mailAddress); }
/** * @return AddressCollection */ public static function parse($addressCollection) { $result = imap_rfc822_parse_adrlist($addressCollection, getHostname()); $addressCollection = new static($result); return $addressCollection->map(function ($user) { if (!$user->host) { throw new Exception('Missing or invalid host name'); } if ($user->host == '.SYNTAX-ERROR.') { throw new Exception('Missing or invalid host name'); } $mailAddress = new MailAddress(); if (property_exists($user, 'personal')) { $mailAddress->setUserName($user->personal); } $mailAddress->setMailbox($user->mailbox); $mailAddress->setHostname($user->host); return $mailAddress; }); }