mirror of
https://github.com/itflow-org/itflow
synced 2026-06-16 23:01:04 +00:00
Add new optional beta email parser thats based on ImapEngine instead of Webklex
This commit is contained in:
67
plugins/vendor/zbateson/mail-mime-parser/src/Header/DateHeader.php
vendored
Normal file
67
plugins/vendor/zbateson/mail-mime-parser/src/Header/DateHeader.php
vendored
Normal file
@@ -0,0 +1,67 @@
|
||||
<?php
|
||||
/**
|
||||
* This file is part of the ZBateson\MailMimeParser project.
|
||||
*
|
||||
* @license http://opensource.org/licenses/bsd-license.php BSD
|
||||
*/
|
||||
|
||||
namespace ZBateson\MailMimeParser\Header;
|
||||
|
||||
use DateTime;
|
||||
use DateTimeImmutable;
|
||||
use Psr\Log\LoggerInterface;
|
||||
use ZBateson\MailMimeParser\Header\Consumer\DateConsumerService;
|
||||
use ZBateson\MailMimeParser\Header\Part\DatePart;
|
||||
use ZBateson\MailMimeParser\MailMimeParser;
|
||||
|
||||
/**
|
||||
* Reads a DatePart value header in either RFC 2822 or RFC 822 format.
|
||||
*
|
||||
* @author Zaahid Bateson
|
||||
*/
|
||||
class DateHeader extends AbstractHeader
|
||||
{
|
||||
public function __construct(
|
||||
string $name,
|
||||
string $value,
|
||||
?LoggerInterface $logger = null,
|
||||
?DateConsumerService $consumerService = null
|
||||
) {
|
||||
$di = MailMimeParser::getGlobalContainer();
|
||||
parent::__construct(
|
||||
$logger ?? $di->get(LoggerInterface::class),
|
||||
$consumerService ?? $di->get(DateConsumerService::class),
|
||||
$name,
|
||||
$value
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Convenience method returning the part's DateTime object, or null if the
|
||||
* date could not be parsed.
|
||||
*
|
||||
* @return ?DateTime The parsed DateTime object.
|
||||
*/
|
||||
public function getDateTime() : ?DateTime
|
||||
{
|
||||
if (!empty($this->parts) && $this->parts[0] instanceof DatePart) {
|
||||
return $this->parts[0]->getDateTime();
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a DateTimeImmutable for the part's DateTime object, or null if
|
||||
* the date could not be parsed.
|
||||
*
|
||||
* @return ?DateTimeImmutable The parsed DateTimeImmutable object.
|
||||
*/
|
||||
public function getDateTimeImmutable() : ?DateTimeImmutable
|
||||
{
|
||||
$dateTime = $this->getDateTime();
|
||||
if ($dateTime !== null) {
|
||||
return DateTimeImmutable::createFromMutable($dateTime);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user