Skip to content

Commit f25879c

Browse files
committed
Release information added
1 parent 3495b90 commit f25879c

File tree

1 file changed

+84
-0
lines changed

1 file changed

+84
-0
lines changed

CHANGELOG.md

Lines changed: 84 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,90 @@ Updates should follow the [Keep a CHANGELOG](http://keepachangelog.com/) princip
1515
- NaN
1616

1717

18+
## [5.2.0] - 2023-04-11
19+
### Fixed
20+
- The message uid and message number will only be fetched if accessed and wasn't previously set (thanks @szymekjanaczek)
21+
- Fix undefined attachment name when headers use "filename*=" format (thanks @JulienChavee)
22+
- Fixed `ImapProtocol::logout` always throws 'not connected' Exception after upgraded to 4.1.2
23+
- Protocol interface and methods unified
24+
- Strict attribute and return types introduced where ever possible
25+
- Parallel messages during idle
26+
- Idle timeout / stale resource stream issue fixed
27+
- Syntax updated to support php 8 features
28+
- Get the attachment file extension from the filename if no mimetype detection library is available
29+
- Prevent the structure parsing from parsing an empty part
30+
- Convert all header keys to their lower case representation
31+
- Restructure the decode function (thanks @istid)
32+
- More unique ID generation to prevent multiple attachments with same ID (thanks @Guite)
33+
- Not all attachments are pushed to the collection (thanks @AdrianKuriata)
34+
- Allow search response to be empty
35+
- Unsafe usage of switch case. (thanks @shuergab)
36+
- Fix use of ST_MSGN as sequence method (thanks @gioid)
37+
- Prevent infinite loop in ImapProtocol (thanks @thin-k-design)
38+
- IMAP Quota root command fixed
39+
- Prevent line-breaks in folder path caused by special chars
40+
- Partial fix for (allow overview response to be empty)
41+
- `Message::setConfig()` config parameter type set to array
42+
- Reset the protocol uid cache if the session gets expunged
43+
- Set the "seen" flag only if the flag isn't set and the fetch option isn't `IMAP::FT_PEEK`
44+
- `Message::is()` date comparison fixed
45+
- `Message::$client` could not be set to null
46+
- `in_reply_to` and `references` parsing fixed
47+
- Prevent message body parser from injecting empty lines
48+
- Don't parse regular inline message parts without name or filename as attachment
49+
- `Message::hasTextBody()` and `Message::hasHtmlBody()` should return `false` if the body is empty
50+
- Imap-Protocol "empty response" detection extended to catch an empty response caused by a broken resource stream
51+
- `iconv_mime_decode()` is now used with `ICONV_MIME_DECODE_CONTINUE_ON_ERROR` to prevent the decoding from failing
52+
- Date decoding rules extended to support more date formats
53+
- Unset the currently active folder if it gets deleted (prevent infinite loop)
54+
- Attachment name and filename parsing fixed and improved to support more formats
55+
- Check if the next uid is available (after copying or moving a message) before fetching it
56+
- Default pagination `$total` attribute value set to 0 (thanks @hhniao)
57+
- Use attachment ID as fallback filename for saving an attachment
58+
- Address decoding error detection added
59+
- Use all available methods to detect the attachment extension instead of just one
60+
- Allow the `LIST` command response to be empty
61+
- Initialize folder children attributes on class initialization
62+
63+
### Added
64+
- Unit tests added (thanks @sergiy-petrov, @boekkooi-lengoo)
65+
- `Client::clone()` method added to clone a client instance
66+
- Save an entire message (including its headers) `Message::save()`
67+
- Restore a message from a local or remote file `Message::fromFile()`
68+
- Protocol resource stream accessor added `Protocol::getStream()`
69+
- Protocol resource stream meta data accessor added `Protocol::meta()`
70+
- ImapProtocol resource stream reset method added `ImapProtocol::reset()`
71+
- Protocol `Response::class` introduced to handle and unify all protocol requests
72+
- Static mask config accessor added `ClientManager::getMask()` added
73+
- An `Attribute::class` instance can be treated as array
74+
- Get the current client account configuration via `Client::getConfig()`
75+
- Delete a folder via `Client::deleteFolder()`
76+
- Extended UTF-7 support added (RFC2060)
77+
- `Protocol::sizes()` support added (fetch the message byte size via RFC822.SIZE). Accessible through `Message::getSize()` (thanks @didi1357)
78+
- `Message::hasFlag()` method added to check if a message has a specific flag
79+
- `Message::getConfig()` method added to get the current message configuration
80+
- `Folder::select()` method added to select a folder
81+
- `Message::getAvailableFlags()` method added to get all available flags
82+
- Live mailbox and fixture tests added
83+
- `Attribute::map()` method added to map all attribute values
84+
- `Header::has()` method added to check if a header attribute / value exist
85+
- All part attributes are now accessible via linked attribute
86+
- Restore a message from string `Message::fromString()`
87+
- Soft fail option added to all folder fetching methods. If soft fail is enabled, the method will return an empty collection instead of throwing an exception if the folder doesn't exist
88+
89+
90+
### Breaking changes
91+
- PHP ^8.0.2 required
92+
- `nesbot/carbon` version bumped to ^2.62.1
93+
- `phpunit/phpunit` version bumped to ^9.5.10
94+
- `Header::get()` always returns an `Attribute::class` instance
95+
- `Attribute::class` accessor methods renamed to shorten their names and improve the readability
96+
- All protocol methods that used to return `array|bool` will now always return a `Response::class` instance.
97+
- `ResponseException::class` gets thrown if a response is empty or contains errors
98+
- Message client is optional and can be null (e.g. if used in combination with `Message::fromFile()`)
99+
- The message text or html body is now "" if its empty and not `null`
100+
101+
18102
## [4.1.2] - 2023-01-18
19103
### Fixed
20104
- Type casting added to several ImapProtocol return values

0 commit comments

Comments
 (0)