Open Journal Systems  3.3.0
MailboxListHeader.php
1 <?php
2 
3 /*
4  * This file is part of the Symfony package.
5  *
6  * (c) Fabien Potencier <fabien@symfony.com>
7  *
8  * For the full copyright and license information, please view the LICENSE
9  * file that was distributed with this source code.
10  */
11 
13 
16 
22 final class MailboxListHeader extends AbstractHeader
23 {
24  private $addresses = [];
25 
29  public function __construct(string $name, array $addresses)
30  {
31  parent::__construct($name);
32 
33  $this->setAddresses($addresses);
34  }
35 
41  public function setBody($body)
42  {
43  $this->setAddresses($body);
44  }
45 
51  public function getBody(): array
52  {
53  return $this->getAddresses();
54  }
55 
63  public function setAddresses(array $addresses)
64  {
65  $this->addresses = [];
66  $this->addAddresses($addresses);
67  }
68 
76  public function addAddresses(array $addresses)
77  {
78  foreach ($addresses as $address) {
79  $this->addAddress($address);
80  }
81  }
82 
86  public function addAddress(Address $address)
87  {
88  $this->addresses[] = $address;
89  }
90 
94  public function getAddresses(): array
95  {
96  return $this->addresses;
97  }
98 
106  public function getAddressStrings(): array
107  {
108  $strings = [];
109  foreach ($this->addresses as $address) {
110  $str = $address->getEncodedAddress();
111  if ($name = $address->getName()) {
112  $str = $this->createPhrase($this, $name, $this->getCharset(), !$strings).' <'.$str.'>';
113  }
114  $strings[] = $str;
115  }
116 
117  return $strings;
118  }
119 
120  public function getBodyAsString(): string
121  {
122  return implode(', ', $this->getAddressStrings());
123  }
124 
132  protected function tokenNeedsEncoding(string $token): bool
133  {
134  return preg_match('/[()<>\[\]:;@\,."]/', $token) || parent::tokenNeedsEncoding($token);
135  }
136 }
Symfony\Component\Mime\Header\MailboxListHeader\getBody
getBody()
Definition: MailboxListHeader.php:51
Symfony\Component\Mime\Header\MailboxListHeader\__construct
__construct(string $name, array $addresses)
Definition: MailboxListHeader.php:29
Symfony\Component\Mime\Header\MailboxListHeader\getAddressStrings
getAddressStrings()
Definition: MailboxListHeader.php:106
Symfony\Component\Mime\Address
Definition: Address.php:24
Symfony\Component\Mime\Exception\RfcComplianceException
Definition: RfcComplianceException.php:17
Symfony\Component\Mime\Header\MailboxListHeader\tokenNeedsEncoding
tokenNeedsEncoding(string $token)
Definition: MailboxListHeader.php:132
Symfony\Component\Mime\Header
Definition: AbstractHeader.php:12
Symfony\Component\Mime\Header\AbstractHeader\getCharset
getCharset()
Definition: AbstractHeader.php:42
Symfony\Component\Mime\Header\MailboxListHeader\getBodyAsString
getBodyAsString()
Definition: MailboxListHeader.php:120
Symfony\Component\Mime\Header\AbstractHeader
Definition: AbstractHeader.php:21
Symfony\Component\Mime\Header\MailboxListHeader\setAddresses
setAddresses(array $addresses)
Definition: MailboxListHeader.php:63
Symfony\Component\Mime\Header\MailboxListHeader\getAddresses
getAddresses()
Definition: MailboxListHeader.php:94
Symfony\Component\Mime\Header\AbstractHeader\createPhrase
createPhrase(HeaderInterface $header, string $string, string $charset, bool $shorten=false)
Definition: AbstractHeader.php:88
Symfony\Component\Mime\Header\MailboxListHeader\addAddress
addAddress(Address $address)
Definition: MailboxListHeader.php:86
Symfony\Component\Mime\Header\MailboxListHeader\addAddresses
addAddresses(array $addresses)
Definition: MailboxListHeader.php:76
Symfony\Component\Mime\Header\MailboxListHeader
Definition: MailboxListHeader.php:22
Symfony\Component\Mime\Header\MailboxListHeader\setBody
setBody($body)
Definition: MailboxListHeader.php:41