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.