Add new optional beta email parser thats based on ImapEngine instead of Webklex

This commit is contained in:
johnnyq
2026-02-26 16:11:49 -05:00
parent 1ba19cc249
commit 9cb1ff7330
682 changed files with 101834 additions and 8 deletions

View File

@@ -0,0 +1,64 @@
<?php
/**
* This file is part of the ZBateson\MailMimeParser project.
*
* @license http://opensource.org/licenses/bsd-license.php BSD
*/
namespace ZBateson\MailMimeParser\Header\Consumer;
use Psr\Log\LoggerInterface;
use ZBateson\MailMimeParser\Header\Part\MimeTokenPartFactory;
/**
* Starts processing tokens after a '=' character is found, indicating the
* 'value' portion of a name/value pair in a parameter header.
*
* The value portion will consist of all tokens, quoted parts, and comment parts
* parsed up to a semi-colon token indicating control should be returned to the
* parent ParameterNameValueConsumerService.
*
* @author Zaahid Bateson
*/
class ParameterValueConsumerService extends GenericConsumerMimeLiteralPartService
{
public function __construct(
LoggerInterface $logger,
MimeTokenPartFactory $partFactory,
CommentConsumerService $commentConsumerService,
QuotedStringMimeLiteralPartConsumerService $quotedStringConsumerService
) {
parent::__construct(
$logger,
$partFactory,
$commentConsumerService,
$quotedStringConsumerService
);
}
/**
* Returns semi-colon and equals char as token separators.
*
* @return string[]
*/
protected function getTokenSeparators() : array
{
return \array_merge(parent::getTokenSeparators(), ['=', ';']);
}
/**
* Returns true if the token is an '=' character.
*/
protected function isStartToken(string $token) : bool
{
return ($token === '=');
}
/**
* Returns true if the token is a ';' character.
*/
protected function isEndToken(string $token) : bool
{
return ($token === ';');
}
}