Skip to content

6.0.0

Compare
Choose a tag to compare
@Webklex Webklex released this 17 Jan 04:07
· 4 commits to master since this release

Fixed

  • Legacy protocol support fixed (object to array conversion)
  • Header value decoding improved
  • Protocol exception handling improved (bad response message added)
  • Prevent fetching singular rfc partials from running indefinitely
  • Subject with colon ";" is truncated
  • Catching and handling iconv decoding exception
  • Error token length mismatch in ImapProtocol::readResponse
  • Attachment name parsing fixed (thanks @nuernbergerA)
  • Additional Attachment name fallback added to prevent missing attachments
  • Attachment id is now static (based on the raw part content) instead of random
  • Always parse the attachment description if it is available
  • Fixed date issue if timezone is UT and a 2 digit year (thanks @ferrisbuellers)
  • Make the space optional after a comma separator (thanks @marc0adam)
  • Fix bug when multipart message getHTMLBody() method returns null (thanks @michalkortas)
  • Fix: Improve return type hints and return docblocks for query classes (thanks @olliescase)
  • Fix - Query - Chunked - Resolved infinite loop when start chunk > 1 (thanks @NeekTheNook)
  • Attachment with symbols in filename (thanks @nuernbergerA)
  • Ignore possible untagged lines after IDLE and DONE commands (thanks @gazben)
  • Fix Empty Child Folder Error (thanks @bierpub)
  • Filename sanitization improved (thanks @neolip)
  • Client::getFolderPath() return null if folder is not set (thanks @arnolem)
  • Fix implicit marking of parameters as nullable, deprecated in PHP8.4 (thanks @campbell-m)

Added

  • Additional timestamp formats added (thanks @esk-ap)
  • Attachment content hash added
  • IMAP STATUS command support added Folder::status() (thanks @InterLinked1)
  • Add attributes and special flags (thanks @sazanof)
  • Better connection check for IMAP (thanks @thin-k-design)
  • Config handling moved into a new class Config::class to allow class serialization (sponsored by elb-BIT GmbH)
  • Support for Carbon 3 added
  • Custom decoder support added
  • Decoding filename with non-standard encoding (thanks @grnsv)

Breaking changes

  • Folder::getStatus() no longer returns the results of EXAMINE but STATUS instead. If you want to use EXAMINE you can use the Folder::examine() method instead.
  • ClientManager::class has now longer access to all configs. Config handling has been moved to its own class Config::class. If you want to access the config you can use the retriever method ::getConfig() instead. Example: $client->getConfig() or $message->getConfig(), etc.
  • ClientManager::get isn't available anymore. Use the regular config accessor instead. Example: $cm->getConfig()
  • M̀essage::getConfig() now returns the client configuration instead of the fetching options configuration. Please use $message->getOptions() instead.
  • Attachment::getConfig() now returns the client configuration instead of the fetching options configuration. Please use $attachment->getOptions() instead.
  • Header::getConfig() now returns the client configuration instead of the fetching options configuration. Please use $header->getOptions() instead.
  • M̀essage::setConfig now expects the client configuration instead of the fetching options configuration. Please use $message->setOptions instead.
  • Attachment::setConfig now expects the client configuration instead of the fetching options configuration. Please use $attachment->setOptions instead.
  • Header::setConfig now expects the client configuration instead of the fetching options configuration. Please use $header->setOptions instead.
  • All protocol constructors now require a Config::class instance
  • The Client::class constructors now require a Config::class instance
  • The Part::class constructors now require a Config::class instance
  • The Header::class constructors now require a Config::class instance
  • The Message::fromFile method now requires a Config::class instance
  • The Message::fromString method now requires a Config::class instance
  • The Message::boot method now requires a Config::class instance