All notable changes to webklex/laravel-imap
will be documented in this file.
Updates should follow the Keep a CHANGELOG principles.
- NaN
- NaN
- NaN
- Missing env variable
IMAP_AUTHENTICATION
added - Header decoding problem fixed
- IMAP::FT_PEEK removing "Seen" flag issue fixed
- Text/Html body fetched as attachment if subtype is null
- Potential header overwriting through header extensions
- Prevent empty attachments
- Search performance increased by fetching all headers, bodies and flags at once
- Legacy protocol support updated
- Fix Query pagination. (thanks @mikemiller891)
- Missing array decoder method added (thanks @lutchin)
- Additional checks added to prevent message from getting marked as seen
- Boundary parsing improved (thanks @AntonioDiPassio-AppSys)
- Idle operation updated
- Cert validation issue fixed
- Allow boundaries ending with a space or semicolon (thanks @smartilabs)
- Ignore IMAP DONE command response
- Default
options.fetch
set toIMAP::FT_PEEK
- Address parsing fixed
- Alternative rfc822 header parsing fixed
- Parse more than one header key
- Fetch folder overview fixed
Message::getTextBody()
fallback value fixed
- Default folder locations added
- Search for messages by message-Id
- Search for messages by In-Reply-To
- Message threading added
Message::thread()
- Default folder locations added
- Set fetch order during query @Max13
- Missing message setter methods added
Folder::overview()
method added to fetch all headers of all messages in the current folder- Force a folder to be opened
- Proxy support added
- Flexible disposition support added
- New
options.message_key
optionuid
added - Protocol UID support added
- Flexible sequence type support added
- Depending on your configuration, your certificates actually get checked. Which can cause an aborted connection if the certificate can not be validated.
- Messages don't get flagged as read unless you are using your own custom config.
- All
Header::class
attribute keys are now in a snake_format and no longer minus-separated. Message::getTextBody()
no longer returns false if no text body is present.null
is returned instead.
- Prevent text bodies from being fetched as attachment
- Missing variable check added to prevent exception while parsing an address #356
- Missing variable check added to prevent exception while parsing a part subtype
- Missing variable check added to prevent exception while parsing a part content-type #356
- Mixed message header attribute
in_reply_to
"unified" to be always an array - Potential message moving / copying problem fixed
- Move messages by using
Protocol::moveMessage()
instead ofProtocol::copyMessage()
andMessage::delete()
- Boundary detection problem fixed (@DasTobbel)
- Content-Type detection problem fixed (@DasTobbel)
- If content disposition is multiline, implode the array to a simple string (@DasTobbel)
- Potential problematic prefixed white-spaces removed from header attributes
- Fix inline attachments and embedded images (@dwalczyk)
- Possible error during address decoding fixed (@Slauta)
- Flag event dispatching fixed
- Fixed
Query::paginate()
(@Max13) Message::getAttributes()
hasn't returned all parameters- Wrong message content property reference fixed
- Fix header extension values
- Part header detection method changed
- Possible decoding problem fixed
Str::class
dependency removed fromHeader::class
- Dependency problem in
Attachement::getExtension()
fixed - Quota handling fixed
Protocol::moveMessage()
method added- Expended
Client::getFolder($name, $deleimiter = null)
to accept either a folder name or path (@DasTobbel) - Special MS-Exchange header decoding support added
ClientManager::make()
method added to support undefined accounts- Alternative attachment names support added (@oneFoldSoftware)
- Fetch message content without leaving a "Seen" flag behind
- Support multiple boundaries (@dwalczyk)
- Part number added to attachment
Client::getFolderByPath()
added (@Max13)Client::getFolderByName()
added (@Max13)- Throws exceptions if the authentication fails (@Max13)
- Default account config fallback added
- Text bodies might no longer get fetched as attachment
Message::$in_reply_to
type changed from mixed to array
- Missing default config parameter added #346
- Imap idle command added
- Redundant class
ClientManager::class
removed and config handling moved to depending library "webklex/php-imap" #345 #344
\Webklex\IMAP\ClientManager::class
no longer exists. Please use the\Webklex\IMAP\Facades\Client::class
facade or\Webklex\PHPIMAP\ClientManager::class
instead.
- Missing default config parameter added (#337)
- Wrong path to config directory (#336)
- Encoding / Decoding improved and exception fallback added
- Missing pagination item records fixed (#287, #329)
- Missing attachments problem solved (#284, #277)
- php-imap module replaced by direct socket communication
- Package core moved to
webklex/php-imap
- Legacy protocol support added
- True IMAP IDLE support added (#185)
- oAuth support added (#180)
- Dynamic and customizable events added
- Fetching all available headers (#282)
- Most class namespaces have changed from
IMAP
toPHPIMAP
- Method response structure has changed in most classes
- Deprecated methods removed
- New exceptions can occur
- All
- Exception handling improved and missing child exception added (#326)
- Fix 'A non well formed numeric value encountered' ErrorException (#327)
- Greatly increased IDLE performance
- Message::fetchStructure() redundant code removed
- Read an overview of the information in the headers of a given message or sequence
- Folder name encoding added (#324) (@aperture-it)
- Add a fallback when aliasing encodings for iconv (#325) (@Hokan22)
- Method to receive the encoded folder name added
- Default fetch attributes set to
null
in order to use the config default value
- "BADCHARSET" exception will be used to determine the required charset (#100)
- Client::getMessages() default fetch parameter changed
- Folder::getMessages() default fetch parameter changed
- Folder::getMessage() default fetch parameter changed
- Event parameter handling fixed (#322)
- IDLE like support added (#185)
- Message events added (deleted, restored, moved, new*)
- Point to root namespace if handling native functions (#279)
- Use address charset from header information if set (#286)
- Fix Attachment::getExtension() under Laravel 7.x (#290) (@ThanhSonITNIC)
- Custom and X-Spam search criteria fixed (#296)
- Prevent double where condition strings
- Optional iconv_mime_decode() support added (#295)
- Custom search conditions have to begin with
CUSTOM
- Convert encoding of personal data struct #272
- Test & implement fix for #203 #270 #235
- Attachment size handling added #276
- Find messages by custom search criteria #268
- Date handling in Folder::appendMessage() fixed #224
- Carbon Exception Parse Data #45
- Convert sender name from non-utf8 to uf8 #260 (@hwilok) #259
- .csv attachement is not processed #231
- mail part structure property comparison changed to lowercase #241 #242
- Replace helper functions for Laravel 6.0 #250 (@koenhoeijmakers)
- Path prefix option added to Client::getFolder() method #234
- Pagination count total bug #213
- Changed internal message move and copy methods #210
- Query::since() query returning empty response #215
- Carbon Exception Parse Data #45
- Reading a blank body (text / html) but only from this sender #203
- Message::getFolder() method
- Create a fast count method for queries #216
- STARTTLS encryption alias added
- Problem with Message::moveToFolder() and multiple moves #31
- Problem with encoding conversion #203
- Message null value attribute problem fixed
- Client connection path handling changed to be handled inside the calling method #31
- Mailbox fetching exception added #201
- Message::moveToFolder() fetches new Message::class afterwards #31
- Message::moveToFolder() returns either a Message::class instance or null and not a boolean
- iconv(): error suppressor for //IGNORE added #184
- Typo Folder attribute fullName changed to full_name
- Query scope error fixed #153
- Message structure accessor added #182
- Shadow Imap const class added #188
- Connectable "NOT" queries added
- Additional where methods added
- Message attribute handling changed
- Attachment attribute handling changed
- Message flag handling updated
- Message::getHTMLBody($callback) extended
- Masks added (take look at the examples for more information on masks)
- More examples added
- Query::paginate() method added
- Folder::fullName is now Folder::full_name
- Attachment::image_src might no longer work as expected - use Attachment::getImageSrc() instead
- Replace embedded image with URL #151
- Imap client timeout can be modified and read #186
- Decoder config options added #175
- Message search criteria "NOT" added #181
- Fix sender name in non-latin emails sent from Gmail (#155)
- Fix broken non-latin characters in body in ASCII (us-ascii) charset #156
- Message::getMessageId() returns wrong value #197
- Message date validation extended #45 #192
- Invalid message date exception added
- Removed "-i" from "iso-8859-8-i" in Message::parseBody #146
- Blade examples
- Folder delimiter check added #137
- Broken non-latin characters in subjects and attachments #133
- Required php extensions added to composer.json
- Message subjects and attachment names will now be decoded with a guessed encoding #97 #107
- Expunge option added to critical imap operations
- Fixing undefined index error if associative config array isn't properly filled #131
- fetch_flags default set to true on all methods
- Missing fetch_flags attribute added
- Folder::query() aliases added
- Priority fetching added
- Config loading fixed and moved to a custom solution
- Set Encryption type correctly #128
- Moving a message takes now a uid #127
- Don't set the charset if it isn't used - prevent strange outlook mail server errors #100
- Protocol option added -minor Fix #126
- Query extended with markAsRead() and leaveUnread() methods
- WhereQuery aliases for all where methods added
- Charset error fixed #109
- Potential imap_close() error fixed #118
- Plain text attachments have a content type of other/plain of text/plain #119
- Carbon Exception Parse Data #45
- Protocol option added #124
- Message collection key option added
- Message collection sorting option added
- Search Query functionality added
- Flag collection added
- Search methods updated
- Force to add a space between criteria in search query, otherwise no messages are fetched. Thanks to @cent89
- Attachment::getMimeType() and Attachment::getExtension() added
- Client::createFolder($name) fixed #91
- Versions will now follow basic Semantic Versioning guidelines (MAJOR.MINOR.PATCH)
- Connection validation added
- Client::renameFolder($old_name, $new_name) and Client::deleteFolder($name) methods added #91
- Find the folder containing a message #92
- Change all incoming encodings to iconv() supported ones #94
- Handle Carbon instances in message search criteria #82
- $message->getRawBody() throws Exception #88
- Request: add getReferences method to Message class #83
- Specify provider name when publishing the config #80
- Enable package discovery #81
- Added option for optional attachment download #76
- Added option for optional body download
- Renamed "fetch" parameters
- hasAttachment() method added
- More explicit date validation statements
- Resolving getMessage is not returning the body of the message #75
- New validation rule for a new invalid date format added (Exception Parse Data #45)
- Default config keys are now fixed (Confusing default configuration values #66)
- Clear error stack before imap_close #72
- FolderCollection::class added
- Comments updated
- Attachment::save() method added
- Unnecessary methods declared deprecated
- Message collection moved to Support
- Attachment collection added
- Attachment class added
- Message search method added
- Basic pagination added
- Prevent automatic body parsing (will be default within the next major version (2.x))
- Unified MessageCollection::class added
- Several small improvements and docs added
- Implementation of the "get raw body" pull request #59
- Get a single message by uid
- Message::class
- Client::class
- Folder::class
- MessageCollection::class
- MessageSearchValidationException::class
- Support message delivery status #47
- Enable support to get In-Reply-To property from Message header. #56
- Set and unset flags added
$oMessage->setFlag(['Seen', 'Spam']) or $oMessage->unsetFlag('Spam')
- Get raw header string
$oMessage->getHeader()
- Get additional header information
$oMessage->getHeaderInfo()
- New experimental function added #48 How can I specify a single folder?
- Ignore inconvertible chars in order to prevent sudden code exists
- #45 DateTime::__construct(): Failed to parse time string (...)
- #41 imap_expunge(): supplied resource is not a valid imap resource
- #40 mb_convert_encoding(): Illegal character encoding specified
- Fix assignment
msgno
touid
regardless offetch_options
is set in config - Disposition is checked in case of malformed mail attachments
- A method to get only unread messages from email folders to Client::class
- Messageset issue resolved #31
- E-mails parsed without a content type of multipart present no body #27
- Do not resolve uid to msgno if using FT_UID #25
- General code style and documentation
- several getter methods added to Message::class
- All
- Fix implode error in Client.php, beacause imap_errors() can return FALSE instead of an array
- FT_UID changed to $this->options which references to
imap.options.fetch
- getConnection method added
- Using a bit more fail save uid / msgNo by calling imap_msgno()
- Carbon dependency removed
- Fixing text attachment issue - overwrite mail body (thx to radicalloop)
- Attachment disposition (special thanks to radicalloop)
- Missing method added to README.md
- $fetch_option setter added
- Merged configuration
- New config parameter added
- "Known issues" added to README.md
- Typo fixed
- Message attribute is now case insensitive
- Readme file extended
- Changelog typo fixed
- imap_fetchheader(): Bad message number - merged
- Changed the default options in imap_fetchbody function - merged
- Attachment handling fixed (Plain text files are no longer ignored)
- Optional config parameter added.
- Readme file extended
- Code commented
- A whole bunch of functions and features added. To many to mention all of them ;)
- Readme file extended
- new laravel-imap package