Skip to content

Releases: zbateson/mail-mime-parser

3.0.1

29 Apr 21:56
Compare
Choose a tag to compare

Fixes version constraints for php-di, guzzlehttp/psr7 and phpunit.

2.4.1

28 Apr 01:00
ff49e02
Compare
Choose a tag to compare

What's Changed

3.0.0

26 Apr 19:40
fdcea66
Compare
Choose a tag to compare
  • Logging support, pass in a LoggerInterface to the constructor or call
    MailMimeParser::setGlobalLogger. Not much is actually logged at this point
    (please submit pull requests to add useful log messages)

  • ErrorBag class -- most user classes extend ErrorBag which allows classes to
    keep track of errors by calling addError, and users to call getErrors or
    getAllErrors (to include errors in child classes).

    Additional validation on objects is not performed, but can be done by passing
    'true' as the validate parameter on getErrors/getAllErrors. By default only
    errors encountered without additional validation are added.

    See IErrorBag class for documentation.

  • If ParserManagerService can't find a parser for a PartBuilder,
    CompatibleParserNotFoundException will be thrown. This would only happen if
    customizing the used parsers passed on to ParserManagerService since the
    default set includes a 'catch-all' with NonMimeParserService.

  • protected AbstractHeader::setParseHeaderValue renamed to parseHeaderValue, and
    signature changed.

  • Can look up comment parts in headers -- use IHeader::getAllParts to return all
    parsed parts including comment parts.

  • GenericHeader getValue returns a string value of the combination of all its
    non-comment parts. This applies to any header that doesn't have a more
    specialized header type (not an address, date, id, parameter, received or
    subject header), see HeaderFactory docs for specifics.

  • IHeader now has a getComments() method that returns a string array of
    comments. ReceivedHeader no longer has protected members $comments and
    $date ($date is now private -- still has AbstractHeader::getComments(), and
    ReceivedHeader::getDateTime())

  • Switched to PHP-DI, users can provide a array|string|DefinitionSource to
    override definitions

    • Renamed service classes to clarify:
      o AbstractParser -> AbstractParserService
      o HeaderParser -> HeaderParserService
      o IParser -> IParserService
      o MessageParser -> MessageParserService
      o MimeParser -> MimeParserService
      o NonMimeParser -> NonMimeParserService
      o ParserManager -> ParserManagerService
      o All consumer classes, e.g. AbstractConsumer -> AbstractConsumerService
  • Refactored Header classes to depend on their respective IConsumerService
    classes they need

  • Refactored ConsumerService classes to define which sub-ConsumerService classes
    they depend on. Removed ConsumerService.

  • Cleaned up method return types and parameter types.

  • Added an AbstractHeader::from which returns IHeader objects from a passed
    header line, or header name/value pair. Static method can be called on a
    sub class which returns its type, for example AddressHeader::from would return
    an AddressHeader regardless of the name parameter or name of header in the
    passed line.

  • Refactored HeaderPart classes with the following goals:

    • Token classes to be used by Consumers to convert from a string to a "part".
    • When processing a part, consumer may combine them into a 'ContainerPart'
      array to return to a header.
    • Non-Token classes are "ContainerParts" and contain other HeaderParts.
    • When constructing a ContainerPart, other HeaderParts can become children of
      it.
    • HeaderPart is an ErrorBag, so it and all its children can report errors up
      the chain all the way to Message.

Merged PRs

New Contributors

Full Changelog: 2.4.0...3.0.0

3.0.0-beta.2

23 Apr 19:22
Compare
Choose a tag to compare
3.0.0-beta.2 Pre-release
Pre-release
  • Added missing tests
  • Added IMessage::getSubject

3.0.0-beta

15 Apr 08:29
Compare
Choose a tag to compare
3.0.0-beta Pre-release
Pre-release
  • Logging support, pass in a LoggerInterface to the constructor or call
    MailMimeParser::setGlobalLogger. Not much is actually logged at this point
    (please submit pull requests to add useful log messages)

  • ErrorBag class -- most user classes extend ErrorBag which allows classes to
    keep track of errors by calling addError, and users to call getErrors or
    getAllErrors (to include errors in child classes).

    Additional validation on objects is not performed, but can be done by passing
    'true' as the validate parameter on getErrors/getAllErrors. By default only
    errors encountered without additional validation are added.

    See IErrorBag class for documentation.

  • If ParserManagerService can't find a parser for a PartBuilder,
    CompatibleParserNotFoundException will be thrown. This would only happen if
    customizing the used parsers passed on to ParserManagerService since the
    default set includes a 'catch-all' with NonMimeParserService.

  • protected AbstractHeader::setParseHeaderValue renamed to parseHeaderValue, and
    signature changed.

  • Can look up comment parts in headers -- use IHeader::getAllParts to return all
    parsed parts including comment parts.

  • GenericHeader getValue returns a string value of the combination of all its
    non-comment parts. This applies to any header that doesn't have a more
    specialized header type (not an address, date, id, parameter, received or
    subject header), see HeaderFactory docs for specifics.

  • IHeader now has a getComments() method that returns a string array of
    comments. ReceivedHeader no longer has protected members $comments and
    $date ($date is now private -- still has AbstractHeader::getComments(), and
    ReceivedHeader::getDateTime())

  • Switched to PHP-DI, users can provide a array|string|DefinitionSource to
    override definitions

    • Renamed service classes to clarify:
      o AbstractParser -> AbstractParserService
      o HeaderParser -> HeaderParserService
      o IParser -> IParserService
      o MessageParser -> MessageParserService
      o MimeParser -> MimeParserService
      o NonMimeParser -> NonMimeParserService
      o ParserManager -> ParserManagerService
      o All consumer classes, e.g. AbstractConsumer -> AbstractConsumerService
  • Refactored Header classes to depend on their respective IConsumerService
    classes they need

  • Refactored ConsumerService classes to define which sub-ConsumerService classes
    they depend on. Removed ConsumerService.

  • Cleaned up method return types and parameter types.

  • Added an AbstractHeader::from which returns IHeader objects from a passed
    header line, or header name/value pair. Static method can be called on a
    sub class which returns its type, for example AddressHeader::from would return
    an AddressHeader regardless of the name parameter or name of header in the
    passed line.

  • Refactored HeaderPart classes with the following goals:

    • Token classes to be used by Consumers to convert from a string to a "part".
    • When processing a part, consumer may combine them into a 'ContainerPart'
      array to return to a header.
    • Non-Token classes are "ContainerParts" and contain other HeaderParts.
    • When constructing a ContainerPart, other HeaderParts can become children of
      it.
    • HeaderPart is an ErrorBag, so it and all its children can report errors up
      the chain all the way to Message.

2.4.0

14 Feb 22:58
Compare
Choose a tag to compare

2.3.0

30 Jan 19:06
d59e0c5
Compare
Choose a tag to compare

What's Changed

New Contributors

Full Changelog: 2.2.3...2.3.0

Huge thank you to @phpfui for this release and migration to php 7.1+.

2.2.3

04 Oct 15:31
295c7f8
Compare
Choose a tag to compare

What's Changed

New Contributors

Full Changelog: 2.2.2...2.2.3

2.2.2

01 Sep 16:15
318cd80
Compare
Choose a tag to compare

#189 fixes a documentation error thanks to @Naitsirch
#197 Fix PHP 8.1 return type deprecation notices. @alexei-bykovski

2.2.1

22 Feb 21:45
Compare
Choose a tag to compare

Fix for #160 : empty utf8 quoted not parsed correctly, thanks @jszaszi