| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485 | <?php/* * This file is part of the Symfony package. * * (c) Fabien Potencier <fabien@symfony.com> * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */namespace Symfony\Component\Mime\Header;use Symfony\Component\Mime\Address;use Symfony\Component\Mime\Exception\RfcComplianceException;/** * A Mailbox MIME Header for something like Sender (one named address). * * @author Fabien Potencier <fabien@symfony.com> */final class MailboxHeader extends AbstractHeader{    private $address;    public function __construct(string $name, Address $address)    {        parent::__construct($name);        $this->setAddress($address);    }    /**     * @param Address $body     *     * @throws RfcComplianceException     */    public function setBody($body)    {        $this->setAddress($body);    }    /**     * @throws RfcComplianceException     */    public function getBody(): Address    {        return $this->getAddress();    }    /**     * @throws RfcComplianceException     */    public function setAddress(Address $address)    {        $this->address = $address;    }    public function getAddress(): Address    {        return $this->address;    }    public function getBodyAsString(): string    {        $str = $this->address->getEncodedAddress();        if ($name = $this->address->getName()) {            $str = $this->createPhrase($this, $name, $this->getCharset(), true).' <'.$str.'>';        }        return $str;    }    /**     * Redefine the encoding requirements for an address.     *     * All "specials" must be encoded as the full header value will not be quoted     *     * @see RFC 2822 3.2.1     */    protected function tokenNeedsEncoding(string $token): bool    {        return preg_match('/[()<>\[\]:;@\,."]/', $token) || parent::tokenNeedsEncoding($token);    }}
 |