Releases
5.0.0
Fixed
The message uid and message number will only be fetched if accessed and wasn't previously set #326 #285 (thanks @szymekjanaczek )
Fix undefined attachment name when headers use "filename*=" format #301 (thanks @JulienChavee )
Fixed ImapProtocol::logout
always throws 'not connected' Exception after upgraded to 4.1.2 #351
Protocol interface and methods unified
Strict attribute and return types introduced where ever possible
Parallel messages during idle #338
Idle timeout / stale resource stream issue fixed
Syntax updated to support php 8 features
Get the attachment file extension from the filename if no mimetype detection library is available
Prevent the structure parsing from parsing an empty part
Convert all header keys to their lower case representation
Restructure the decode function #355 (thanks @istid )
Added
Unit tests added #347 #242 (thanks @sergiy-petrov , @boekkooi-lengoo )
Client::clone()
method added to clone a client instance
Save an entire message (including its headers) Message::save()
Restore a message from a local or remote file Message::fromFile()
Protocol resource stream accessor added Protocol::getStream()
Protocol resource stream meta data accessor added Protocol::meta()
ImapProtocol resource stream reset method added ImapProtocol::reset()
Protocol Response::class
introduced to handle and unify all protocol requests
Static mask config accessor added ClientManager::getMask()
added
An Attribute::class
instance can be treated as array
Get the current client account configuration via Client::getConfig()
Delete a folder via Client::deleteFolder()
Breaking changes
PHP ^8.0.2 required
nesbot/carbon
version bumped to ^2.62.1
phpunit/phpunit
version bumped to ^9.5.10
Header::get()
always returns an Attribute::class
instance
Attribute::class
accessor methods renamed to shorten their names and improve the readability
All protocol methods that used to return array|bool
will now always return a Response::class
instance.
ResponseException::class
gets thrown if a response is empty or contains errors
Message client is optional and can be null (e.g. if used in combination with Message::fromFile()
)
The message text or html body is now "" if its empty and not null
You can’t perform that action at this time.