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);
- }
- }
|