Skip to content


Choose a tag to compare
@zbateson zbateson released this 23 Aug 02:22
· 214 commits to master since this release

Huge thank you to the project sponsors who helped make this release happen.

  • Use pimple/pimple for di, refactor initialization:
    • Reconfigure the dependency container entirely, call MailMimePaser::setDependencyContainer
    • Add providers, call MailMimeParser::configureDependencyContainer with an array of providers
  • Parser improvements:
    • Modular parsing separated into classes for better extensibility
    • Dynamic/proxied parsing based on user requests (looking at message headers won't parse all content/children and is therefore very very fast even on larger messages)
    • Stream is no longer copied first, but must be closed after the message object is destroyed (or can be attached to the message)
  • Define and use interfaces instead of concrete classes for better extensibility, change of internal hierarchy that didn't make sense
    • IMessagePart instead of MessagePart, IMimePart instead of MimePart, IUUEncodedPart instead of UUEncodedPart, IMultiPart is new, IMessage instead of Message. HeaderPart and ParentHeaderPart no longer exist.
  • Remove deprecated resource handle methods:
    • Removes IMessage::getTextResourceHandle, IMessage::getHtmlResourceHandle and IMessagePart::getContentResourceHandle
  • Filtering parts is now done with simple callbacks. PartFilter is now just a convenience class with static methods that provides filtering callbacks instead of a concrete class used for filtering.
  • Other minor changes of note:
    • MimePart::getContentDisposition for a MimePart is now limited to returning 'inline' or 'attachment' even if the header has a different value.
    • IMultiPart::removeAllParts now returns the number of parts removed.