MailMimeParser 3.0

MailMimeParser
in package

Parses a MIME message into an {@see IMessage} object.

The class sets up the dependency injection container (using PHP-DI) with the ability to override and/or provide specialized classes. To override you can:

  • Provide an array|string|DefinitionSource to the constructor to affect classes used on a single instance of MailMimeParser
  • Call MailMimeParser::setGlobalPhpDiConfiguration with an array|string|DefinitionSource to to override it globally on all instances of MailMimeParser
  • Call MailMimeParser::getGlobalContainer(), and use set() to override individual definitions globally.

You may also provide a LoggerInterface on the constructor for a single instance, or override it globally by calling setGlobalLogger. This is the same as setting up Psr\Log\LoggerInterface with your logger class in a Php-Di configuration in one of the above methods.

To invoke the parser, call parse on a MailMimeParser object.

$parser = new MailMimeParser();
// the resource is attached due to the second parameter being true and will
// be closed when the returned IMessage is destroyed
$message = $parser->parse(fopen('path/to/file.txt'), true);
// use $message here
Tags
author

Zaahid Bateson

Table of Contents

DEFAULT_CHARSET  = 'UTF-8'
$container  : Container
$messageParser  : MessageParserService
$globalContainer  : Container|null
__construct()  : mixed
Provide custom php-di configuration to customize dependency injection, or provide a custom logger for the instance only.
getGlobalContainer()  : Container
Returns the global php-di container instance.
parse()  : IMessage
Parses the passed stream handle or string into an {@see IMessage} object and returns it.
setGlobalLogger()  : void
Registers the provided logger globally.
setGlobalPhpDiConfiguration()  : void
Sets global configuration for php-di.

Constants

DEFAULT_CHARSET

public string DEFAULT_CHARSET = 'UTF-8'

the default charset used to encode strings (or string content like streams) returned by MailMimeParser (for e.g. the string returned by calling $message->getTextContent()).

Properties

$container

protected Container $container

The instance's dependency injection container.

$globalContainer

private static Container|null $globalContainer = null

The static global container

Methods

__construct()

Provide custom php-di configuration to customize dependency injection, or provide a custom logger for the instance only.

public __construct([LoggerInterface|null $logger = null ][, array<string|int, ?array> $phpDiContainerConfig = null ]) : mixed

Note: this only affects instances created through this instance of the MailMimeParser, or the container itself. Calling 'new MimePart()' directly for instance, would use the global service locator to setup any dependencies MimePart needs. This applies to a provided $logger too -- it would only affect instances of objects created through the provided MailMimeParser.

Parameters
$logger : LoggerInterface|null = null
$phpDiContainerConfig : array<string|int, ?array> = null
Tags
see
MailMimeParser::setGlobalPhpDiConfiguration()

to register configuration globally.

see
MailMimeParser::setGlobalLogger()

to set a global logger

Return values
mixed

getGlobalContainer()

Returns the global php-di container instance.

public static getGlobalContainer() : Container
Return values
Container

parse()

Parses the passed stream handle or string into an {@see IMessage} object and returns it.

public parse(resource|StreamInterface|string $resource, bool $attached) : IMessage

If the passed $resource is a resource handle or StreamInterface, the resource must remain open while the returned IMessage object exists. Pass true as the second argument to have the resource attached to the IMessage and closed for you when it's destroyed, or pass false to manually close it if it should remain open after the IMessage object is destroyed.

Parameters
$resource : resource|StreamInterface|string

The resource handle to the input stream of the mime message, or a string containing a mime message.

$attached : bool

pass true to have it attached to the returned IMessage and destroyed with it.

Return values
IMessage

setGlobalLogger()

Registers the provided logger globally.

public static setGlobalLogger(LoggerInterface $logger) : void
Parameters
$logger : LoggerInterface
Return values
void

setGlobalPhpDiConfiguration()

Sets global configuration for php-di.

public static setGlobalPhpDiConfiguration(array<string|int, mixed>|string|DefinitionSource $phpDiConfig) : void
Parameters
$phpDiConfig : array<string|int, mixed>|string|DefinitionSource
Return values
void

Search results