Parses a single part of an address header.
Represents a single part of a list of addresses. A part could be one email address, or one 'group' containing multiple addresses. The consumer ends on finding either a comma token, representing a separation between addresses, or a semi-colon token representing the end of a group.
A single email address may consist of just an email, or a name and an email address. Both of these are valid examples of a From header:
- From: jonsnow@winterfell.com
- From: Jon Snow jonsnow@winterfell.com
Groups must be named, for example:
- To: Winterfell: jonsnow@winterfell.com, Arya Stark arya@winterfell.com;
Addresses may contain quoted parts and comments, and names may be mime-header encoded.
- author Zaahid Bateson
| Methods |
| public __construct(Psr\Log\LoggerInterface $logger, ZBateson |
| public getTokenSeparators() : array Overridden to return patterns matching end tokens ("," and ";"), and whitespace.
|
| Properties |
| Methods |
| protected isEndToken(string $token) : bool Returns true for commas and semi-colons. Although the semi-colon is not strictly the end token of an AddressConsumerService, it could end a parent {@see \AddressGroupConsumerService}. |
| protected isStartToken(string $token) : bool AddressConsumer is "greedy", so this always returns true. |
| protected processParts(array $parts) : array Performs final processing on parsed parts. AddressConsumerService's implementation looks for tokens representing the beginning of an address part, to create a {@see \AddressPart} out of a name/address pair, or assign the name part to a parsed {@see \AddressGroupPart} returned from its AddressGroupConsumerService sub-consumer. The returned array consists of a single element - either an {@see \AddressPart} or an {@see \AddressGroupPart}.
|