PackageTrack
Sign in Get early access

webklex/laravel-imap

Laravel IMAP client

6.2.0 5.3M downloads/mo #1355 most downloaded on Packagist Webklex/laravel-imap

What this package is like to depend on

Last release 1 years ago

25 Apr 2025

Release timing varies

gaps range from 2 weeks to 1.6 years

Nearly every release is documented

notes for 74 of 82 stable releases

Nothing withdrawn

no release was ever pulled

10 years old

83 releases · first in 2017

0 releases in the last 12 months

see the full history below

Release timeline

83 releases · Jan 2017 to Apr 2025
2018 2019 2020 2021 2022 2023 2024 2025 2026
Release Pre-release

Releases

latest 60 of 83
  1. 6.2.0 25 Apr 2025
    Release notes

    Fixed

    • When using the chunk function, some messages do not have an element with index 0 (thanks @zeddmaster)
    • Get folders list in hierarchical order (thanks @rskrzypczak)
    • Fix remaining implicit marking of parameters as nullable (PHP 8.4) (thanks @steffenweber)
    • Fix case sensitivity of folder attribute parsing (\NoSelect, \NoInferiors) (thanks @smajti1)
    • Fix error on getUid(null) with 0 results (thanks @pierement)
    • Fix Date parsing on non-standard format from Aqua Mail (thanks @lm-cmxkonzepte)

    Added

    • SSL stream context options added (thanks @llemoine)
    • Support copy/move Message with utf7 folder path (thanks @loc4l)
    • Public Query::search() method (Thanks @madbob)
    Open source →
    Release notes

    Fixed

    • When using the chunk function, some messages do not have an element with index 0 (thanks @zeddmaster)
    • Get folders list in hierarchical order (thanks @rskrzypczak)
    • Fix remaining implicit marking of parameters as nullable (PHP 8.4) (thanks @steffenweber)
    • Fix case sensitivity of folder attribute parsing (\NoSelect, \NoInferiors) (thanks @smajti1)
    • Fix error on getUid(null) with 0 results (thanks @pierement)
    • Fix Date parsing on non-standard format from Aqua Mail (thanks @lm-cmxkonzepte)

    Added

    • SSL stream context options added (thanks @llemoine)
    • Support copy/move Message with utf7 folder path (thanks @loc4l)
    • Public Query::search() method (Thanks @madbob)
    Open source →
  2. 6.1.0 19 Jan 2025
    Release notes

    Fixed

    • Filename sanitization is now optional (enabled via default)
    • Address parsing improved and extended to include more cases
    • Boundary parsing fixed and improved to support more formats
    • Decode partially encoded address names
    • Enforce RFC822 parsing if enabled

    Added

    • Security configuration options added
    • Spoofing detection added
    • RFC4315 MOVE fallback added (thanks @freescout-help-desk)
    • Content fetching RFC standard support added (thanks @ybizeul)
    • Support unescaped dates inside the search conditions
    • Client::clone() looses account configuration (thanks @netpok)
    Open source →
    Release notes

    Fixed

    • Filename sanitization is now optional (enabled via default)
    • Address parsing improved and extended to include more cases
    • Boundary parsing fixed and improved to support more formats
    • Decode partially encoded address names
    • Enforce RFC822 parsing if enabled

    Added

    • Security configuration options added
    • Spoofing detection added
    • RFC4315 MOVE fallback added (thanks @freescout-help-desk)
    • Content fetching RFC standard support added (thanks @ybizeul)
    • Support unescaped dates inside the search conditions
    • Client::clone() looses account configuration (thanks @netpok)
    Open source →
  3. 6.0.0 17 Jan 2025
    Release notes

    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
    Open source →
    Release notes

    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
    Open source →
  4. 5.3.0 20 Jun 2023
    Release notes

    Fixed

    Security Impact and Mitigation

    Impacted are all versions below v5.3.0.
    If possible, update to >= v5.3.0 as soon as possible. Impacted was the Attachment::save
    method which could be used to write files to the local filesystem. The path was not
    properly sanitized and could be used to write files to arbitrary locations.

    However, the Attachment::save method is not used by default and has to be called
    manually. If you are using this method without providing a sanitized path, you are
    affected by this vulnerability.
    If you are not using this method or are providing a sanitized path, you are not affected
    by this vulnerability and no immediate action is required.

    If you have any questions, please feel welcome to join this issue: Webklex/php-imap#416

    Timeline

    • 17.06.23 21:30: Vulnerability reported
    • 18.06.23 19:14: Vulnerability confirmed
    • 19.06.23 18:41: Vulnerability fixed via PR Webklex/php-imap#414
    • 20.06.23 13:45: Security patch released
    Open source →
    Release notes

    Fixed

    • Potential RCE through path traversal fixed #414 (special thanks @angelej)

    Security Impact and Mitigation

    Impacted are all versions below v5.3.0. If possible, update to >= v5.3.0 as soon as possible. Impacted was the Attachment::save method which could be used to write files to the local filesystem. The path was not properly sanitized and could be used to write files to arbitrary locations.

    However, the Attachment::save method is not used by default and has to be called manually. If you are using this method without providing a sanitized path, you are affected by this vulnerability. If you are not using this method or are providing a sanitized path, you are not affected by this vulnerability and no immediate action is required.

    If you have any questions, please feel welcome to join this issue: https://github.com/Webklex/php-imap/issues/416

    Open source →
  5. 5.2.0 10 Apr 2023
    Release notes

    Fixed

    • The message uid and message number will only be fetched if accessed and wasn't previously set (thanks @szymekjanaczek)
    • Fix undefined attachment name when headers use "filename*=" format (thanks @JulienChavee)
    • Fixed ImapProtocol::logout always throws 'not connected' Exception after upgraded to 4.1.2
    • Protocol interface and methods unified
    • Strict attribute and return types introduced where ever possible
    • Parallel messages during idle
    • 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 (thanks @istid)
    • More unique ID generation to prevent multiple attachments with same ID (thanks @Guite)
    • Not all attachments are pushed to the collection (thanks @AdrianKuriata)
    • Allow search response to be empty
    • Unsafe usage of switch case. (thanks @shuergab)
    • Fix use of ST_MSGN as sequence method (thanks @gioid)
    • Prevent infinite loop in ImapProtocol (thanks @thin-k-design)
    • IMAP Quota root command fixed
    • Prevent line-breaks in folder path caused by special chars
    • Partial fix for (allow overview response to be empty)
    • Message::setConfig() config parameter type set to array
    • Reset the protocol uid cache if the session gets expunged
    • Set the "seen" flag only if the flag isn't set and the fetch option isn't IMAP::FT_PEEK
    • Message::is() date comparison fixed
    • Message::$client could not be set to null
    • in_reply_to and references parsing fixed
    • Prevent message body parser from injecting empty lines
    • Don't parse regular inline message parts without name or filename as attachment
    • Message::hasTextBody() and Message::hasHtmlBody() should return false if the body is empty
    • Imap-Protocol "empty response" detection extended to catch an empty response caused by a broken resource stream
    • iconv_mime_decode() is now used with ICONV_MIME_DECODE_CONTINUE_ON_ERROR to prevent the decoding from failing
    • Date decoding rules extended to support more date formats
    • Unset the currently active folder if it gets deleted (prevent infinite loop)
    • Attachment name and filename parsing fixed and improved to support more formats
    • Check if the next uid is available (after copying or moving a message) before fetching it
    • Default pagination $total attribute value set to 0 (thanks @hhniao)
    • Use attachment ID as fallback filename for saving an attachment
    • Address decoding error detection added
    • Use all available methods to detect the attachment extension instead of just one
    • Allow the LIST command response to be empty
    • Initialize folder children attributes on class initialization

    Added

    • Unit tests added (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()
    • Extended UTF-7 support added (RFC2060)
    • Protocol::sizes() support added (fetch the message byte size via RFC822.SIZE). Accessible through Message::getSize() (thanks @didi1357)
    • Message::hasFlag() method added to check if a message has a specific flag
    • Message::getConfig() method added to get the current message configuration
    • Folder::select() method added to select a folder
    • Message::getAvailableFlags() method added to get all available flags
    • Live mailbox and fixture tests added
    • Attribute::map() method added to map all attribute values
    • Header::has() method added to check if a header attribute / value exist
    • All part attributes are now accessible via linked attribute
    • Restore a message from string Message::fromString()
    • 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

    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
    Open source →
    Release notes

    Fixed

    • The message uid and message number will only be fetched if accessed and wasn't previously set (thanks @szymekjanaczek)
    • Fix undefined attachment name when headers use "filename*=" format (thanks @JulienChavee)
    • Fixed ImapProtocol::logout always throws 'not connected' Exception after upgraded to 4.1.2
    • Protocol interface and methods unified
    • Strict attribute and return types introduced where ever possible
    • Parallel messages during idle
    • 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 (thanks @istid)
    • More unique ID generation to prevent multiple attachments with same ID (thanks @Guite)
    • Not all attachments are pushed to the collection (thanks @AdrianKuriata)
    • Allow search response to be empty
    • Unsafe usage of switch case. (thanks @shuergab)
    • Fix use of ST_MSGN as sequence method (thanks @gioid)
    • Prevent infinite loop in ImapProtocol (thanks @thin-k-design)
    • IMAP Quota root command fixed
    • Prevent line-breaks in folder path caused by special chars
    • Partial fix for (allow overview response to be empty)
    • Message::setConfig() config parameter type set to array
    • Reset the protocol uid cache if the session gets expunged
    • Set the "seen" flag only if the flag isn't set and the fetch option isn't IMAP::FT_PEEK
    • Message::is() date comparison fixed
    • Message::$client could not be set to null
    • in_reply_to and references parsing fixed
    • Prevent message body parser from injecting empty lines
    • Don't parse regular inline message parts without name or filename as attachment
    • Message::hasTextBody() and Message::hasHtmlBody() should return false if the body is empty
    • Imap-Protocol "empty response" detection extended to catch an empty response caused by a broken resource stream
    • iconv_mime_decode() is now used with ICONV_MIME_DECODE_CONTINUE_ON_ERROR to prevent the decoding from failing
    • Date decoding rules extended to support more date formats
    • Unset the currently active folder if it gets deleted (prevent infinite loop)
    • Attachment name and filename parsing fixed and improved to support more formats
    • Check if the next uid is available (after copying or moving a message) before fetching it
    • Default pagination $total attribute value set to 0 (thanks @hhniao)
    • Use attachment ID as fallback filename for saving an attachment
    • Address decoding error detection added
    • Use all available methods to detect the attachment extension instead of just one
    • Allow the LIST command response to be empty
    • Initialize folder children attributes on class initialization

    Added

    • Unit tests added (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()
    • Extended UTF-7 support added (RFC2060)
    • Protocol::sizes() support added (fetch the message byte size via RFC822.SIZE). Accessible through Message::getSize() (thanks @didi1357)
    • Message::hasFlag() method added to check if a message has a specific flag
    • Message::getConfig() method added to get the current message configuration
    • Folder::select() method added to select a folder
    • Message::getAvailableFlags() method added to get all available flags
    • Live mailbox and fixture tests added
    • Attribute::map() method added to map all attribute values
    • Header::has() method added to check if a header attribute / value exist
    • All part attributes are now accessible via linked attribute
    • Restore a message from string Message::fromString()
    • 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

    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
    Open source →
  6. 4.1.2 18 Jan 2023
    Release notes

    Fixed

    • Type casting added to several ImapProtocol return values
    • Remove IMAP::OP_READONLY flag from imap_reopen if POP3 or NNTP protocol is selected (thanks @xianzhe18)
    • Several statements optimized and redundant checks removed
    • Check if the Protocol supports the fetch method if extensions are present
    • Detect NONEXISTENT errors while selecting or examining a folder
    • Missing type cast added to PaginatedCollection::paginate (thanks @rogerb87)
    • Fix multiline header unfolding (thanks @sulgie-eitea)
    • Fix problem with illegal offset error (thanks @szymekjanaczek)
    • Typos fixed
    • RFC 822 3.1.1. long header fields regular expression fixed (thanks @hbraehne)
    • Fix assumedNextTaggedLine bug (thanks @Blear)
    • Fix empty response error for blank lines (thanks @bierpub)
    • Fix empty body (thanks @latypoff)
    • Fix imap_reopen folder argument (thanks @latypoff)
    • Fix for extension recognition (thanks @pwoszczyk)
    • Missing null check added (thanks @spanjeta)
    • Leading white-space in response causes an infinite loop (thanks @thin-k-design)
    • Fix error when creating folders with special chars (thanks @thin-k-design)
    • Client::getFoldersWithStatus() recursive loading fixed (thanks @szymekjanaczek)
    • Fix Folder name encoding error in Folder::appendMessage() (thanks @rskrzypczak)
    • Attachment ID can return an empty value
    • Additional message date format added (thanks @amorebietakoUdala)

    Added

    Open source →
    Release notes

    Fixed

    • Type casting added to several ImapProtocol return values
    • Remove IMAP::OP_READONLY flag from imap_reopen if POP3 or NNTP protocol is selected (thanks @xianzhe18)
    • Several statements optimized and redundant checks removed
    • Check if the Protocol supports the fetch method if extensions are present
    • Detect NONEXISTENT errors while selecting or examining a folder
    • Missing type cast added to PaginatedCollection::paginate (thanks @rogerb87)
    • Fix multiline header unfolding (thanks @sulgie-eitea)
    • Fix problem with illegal offset error (thanks @szymekjanaczek)
    • Typos fixed
    • RFC 822 3.1.1. long header fields regular expression fixed (thanks @hbraehne)
    • Fix assumedNextTaggedLine bug (thanks @Blear)
    • Fix empty response error for blank lines (thanks @bierpub)
    • Fix empty body (thanks @latypoff)
    • Fix imap_reopen folder argument (thanks @latypoff)
    • Fix for extension recognition (thanks @pwoszczyk)
    • Missing null check added (thanks @spanjeta)
    • Leading white-space in response causes an infinite loop (thanks @thin-k-design)
    • Fix error when creating folders with special chars (thanks @thin-k-design)
    • Client::getFoldersWithStatus() recursive loading fixed (thanks @szymekjanaczek)
    • Fix Folder name encoding error in Folder::appendMessage() (thanks @rskrzypczak)
    • Attachment ID can return an empty value
    • Additional message date format added (thanks @amorebietakoUdala)

    Added

    • Added possibility of loading a Folder status (thanks @szymekjanaczek)
    Open source →
  7. 4.0.0 19 Aug 2022
    Release notes

    Fixed

    • PHP dependency updated to support php v8.0 (thanks @freescout-helpdesk)
    • Method return and argument types added
    • Imap DONE method refactored
    • UID cache loop fixed
    • HasEvent::getEvent return value set to mixed to allow multiple event types
    • Protocol line reader changed to fread (stream_context timeout issue fixed)
    • Issue setting the client timeout fixed
    • IMAP Connection debugging improved
    • Folder::idle() method reworked and several issues fixed
    • Datetime conversion rules extended

    Breaking changes

    • No longer supports php >=5.5.9 but instead requires at least php v7.0.0.
    • HasEvent::getEvent returns a mixed result. Either an Event or a class string representing the event class.
    • The error message, if the connection fails to read the next line, is now empty response instead of failed to read - connection closed?.
    • The $auto_reconnect used with Folder::indle() is deprecated and doesn't serve any purpose anymore.
    Open source →
    Release notes

    Fixed

    • PHP dependency updated to support php v8.0 (thanks @freescout-helpdesk)
    • Method return and argument types added
    • Imap DONE method refactored
    • UID cache loop fixed
    • HasEvent::getEvent return value set to mixed to allow multiple event types
    • Protocol line reader changed to fread (stream_context timeout issue fixed)
    • Issue setting the client timeout fixed
    • IMAP Connection debugging improved
    • Folder::idle() method reworked and several issues fixed
    • Datetime conversion rules extended

    Breaking changes

    • No longer supports php >=5.5.9 but instead requires at least php v7.0.0.
    • HasEvent::getEvent returns a mixed result. Either an Event or a class string representing the event class.
    • The error message, if the connection fails to read the next line, is now empty response instead of failed to read - connection closed?.
    • The $auto_reconnect used with Folder::indle() is deprecated and doesn't serve any purpose anymore.
    Open source →
  8. 3.0.0-alpha 10 Nov 2021 pre-release
    Release notes

    Fixed

    • Debug line position fixed
    • Handle incomplete address to string conversion
    • Configured message key gets overwritten by the first fetched message
    • Attachment::save() return error 'A facade root has not been set'
    • Unused dependencies removed
    • Fix PHP 8 error that changes null back in to an empty string. (thanks @mennovanhout)
    • Fix regex to be case insensitive (thanks @mennovanhout)
    • Attachment detection updated
    • Timeout handling improved
    • Additional utf-8 checks added to prevent decoding of unencoded values
    • Boundary detection simplified
    • Prevent potential body overwriting
    • CSV files are no longer regarded as plain body
    • Boundary detection overhauled to support "related" and "alternative" multipart messages
    • Attachment saving filename fixed
    • Unnecessary parameter removed from Client::getTimeout()
    • Missing encryption variable added - could have caused problems with unencrypted communications
    • Prefer attachment filename attribute over name attribute
    • Missing connection settings added to Folder:idle() auto mode
    • Message move / copy expect a folder path
    • Client::getFolder() updated to circumvent special edge cases
    • Missing connection status checks added to various methods
    • Unused default attribute message_no removed from Message::class
    • Fix setting default mask from config (thanks @shacky)
    • Chunked fetch fails in case of less available mails than page size
    • Protocol::createStream() exception information fixed
    • Legacy methods (headers, content, flags) fixed
    • Legacy connection cycle fixed (thanks @zssarkany)
    • Several POP3 fixes (thanks @Korko)
    • Fixes handling of long header lines which are seperated by \r\n\t (thanks @Oliver-Holz)
    • Fixes to line parsing with multiple addresses (thanks @Oliver-Holz)
    • Fixed problem with skipping last line of the response. (thanks @szymekjanaczek)
    • Extend date parsing error message
    • Fixed 'Where' method replaces the content with uppercase
    • Don't surround numeric search values with quotes
    • Context added to InvalidWhereQueryCriteriaException
    • Redundant stream_set_timeout() removed

    Added

    • Auto reconnect option added to Folder::idle()
    • Dynamic Attribute access support added (e.g $message->from[0])
    • Message not found exception added
    • Chunked fetching support added Query::chunked(). Just in case you can't fetch all messages at once
    • "Soft fail" support added
    • Count method added to Attribute:class
    • Convert an Attribute instance into a Carbon date object
    • Disable rfc822 header parsing via config option
    • Added imap 4 handling. (thanks @szymekjanaczek)
    • Added laravel's conditionable methods. (thanks @szymekjanaczek)
    • Expose message folder path (thanks @Magiczne)
    • Adds mailparse_rfc822_parse_addresses integration (thanks @Oliver-Holz)
    • Added moveManyMessages method (thanks @Magiczne)
    • Added copyManyMessages method (thanks @Magiczne)
    • Added UID as available search criteria (thanks @szymekjanaczek)
    • Make boundary regex configurable (thanks @EthraZa)
    • IMAP ID support added
    • Enable debug mode via config
    • Custom UID alternative support added
    • Fetch additional extensions using Folder::query(["FEATURE_NAME"])
    • Optionally move a message during "deletion" instead of just "flagging" it (thanks @EthraZa)
    • WhereQuery::where() accepts now a wide range of criteria / values.

    Breaking changes

    • A new exception can occur if a message can't be fetched (\Webklex\PHPIMAP\Exceptions\MessageNotFoundException::class)
    • Message::move() and Message::copy() no longer accept folder names as folder path
    • A Message::class instance might no longer have a message_no attribute
    • All protocol methods which had a boolean $uid option no longer support a boolean. Use IMAP::ST_UID or IMAP::NIL instead. If you want to use an alternative to UID just use the string instead.
    • Default config option options.sequence changed from IMAP::ST_MSGN to IMAP::ST_UID.
    • Folder::query() no longer accepts a charset string. It has been replaced by an extension array, which provides the ability to automatically fetch additional features.
    Open source →
    Release notes

    Fixed

    • Debug line position fixed
    • Handle incomplete address to string conversion
    • Configured message key gets overwritten by the first fetched message
    • Attachment::save() return error 'A facade root has not been set'
    • Unused dependencies removed
    • Fix PHP 8 error that changes null back in to an empty string. (thanks @mennovanhout)
    • Fix regex to be case insensitive (thanks @mennovanhout)
    • Attachment detection updated
    • Timeout handling improved
    • Additional utf-8 checks added to prevent decoding of unencoded values
    • Boundary detection simplified
    • Prevent potential body overwriting
    • CSV files are no longer regarded as plain body
    • Boundary detection overhauled to support "related" and "alternative" multipart messages
    • Attachment saving filename fixed
    • Unnecessary parameter removed from Client::getTimeout()
    • Missing encryption variable added - could have caused problems with unencrypted communications
    • Prefer attachment filename attribute over name attribute
    • Missing connection settings added to Folder:idle() auto mode
    • Message move / copy expect a folder path
    • Client::getFolder() updated to circumvent special edge cases
    • Missing connection status checks added to various methods
    • Unused default attribute message_no removed from Message::class
    • Fix setting default mask from config (thanks @shacky)
    • Chunked fetch fails in case of less available mails than page size
    • Protocol::createStream() exception information fixed
    • Legacy methods (headers, content, flags) fixed
    • Legacy connection cycle fixed (thanks @zssarkany)
    • Several POP3 fixes (thanks @Korko)
    • Fixes handling of long header lines which are seperated by \r\n\t (thanks @Oliver-Holz)
    • Fixes to line parsing with multiple addresses (thanks @Oliver-Holz)
    • Fixed problem with skipping last line of the response. (thanks @szymekjanaczek)
    • Extend date parsing error message
    • Fixed 'Where' method replaces the content with uppercase
    • Don't surround numeric search values with quotes
    • Context added to InvalidWhereQueryCriteriaException
    • Redundant stream_set_timeout() removed

    Added

    • Auto reconnect option added to Folder::idle()
    • Dynamic Attribute access support added (e.g $message->from[0])
    • Message not found exception added
    • Chunked fetching support added Query::chunked(). Just in case you can't fetch all messages at once
    • "Soft fail" support added
    • Count method added to Attribute:class
    • Convert an Attribute instance into a Carbon date object
    • Disable rfc822 header parsing via config option
    • Added imap 4 handling. (thanks @szymekjanaczek)
    • Added laravel's conditionable methods. (thanks @szymekjanaczek)
    • Expose message folder path (thanks @Magiczne)
    • Adds mailparse_rfc822_parse_addresses integration (thanks @Oliver-Holz)
    • Added moveManyMessages method (thanks @Magiczne)
    • Added copyManyMessages method (thanks @Magiczne)
    • Added UID as available search criteria (thanks @szymekjanaczek)
    • Make boundary regex configurable (thanks @EthraZa)
    • IMAP ID support added
    • Enable debug mode via config
    • Custom UID alternative support added
    • Fetch additional extensions using Folder::query(["FEATURE_NAME"])
    • Optionally move a message during "deletion" instead of just "flagging" it (thanks @EthraZa)
    • WhereQuery::where() accepts now a wide range of criteria / values.

    Breaking changes

    • A new exception can occur if a message can't be fetched (\Webklex\PHPIMAP\Exceptions\MessageNotFoundException::class)
    • Message::move() and Message::copy() no longer accept folder names as folder path
    • A Message::class instance might no longer have a message_no attribute
    • All protocol methods which had a boolean $uid option no longer support a boolean. Use IMAP::ST_UID or IMAP::NIL instead. If you want to use an alternative to UID just use the string instead.
    • Default config option options.sequence changed from IMAP::ST_MSGN to IMAP::ST_UID.
    • Folder::query() no longer accepts a charset string. It has been replaced by an extension array, which provides the ability to automatically fetch additional features.
    Open source →
  9. 2.4.0 09 Jan 2021
    Release notes

    Fixed

    • Attachment::save() return error 'A facade root has not been set'
    • Unused dependencies removed
    • Fix PHP 8 error that changes null back in to an empty string. (thanks @mennovanhout)
    • Fix regex to be case insensitive (thanks @mennovanhout)
    • Debug line position fixed
    • Handle incomplete address to string conversion
    • Configured message key gets overwritten by the first fetched message
    • Get partial overview when IMAP::ST_UID is set
    • Unnecessary "'" removed from address names
    • Folder referral typo fixed
    • Legacy protocol fixed
    • Treat message collection keys always as strings
    • Missing RFC attributes added
    • Set the message sequence when idling
    • Missing UID commands added

    Added

    • Configurable supported default flags added
    • Message attribute class added to unify value handling
    • Address class added and integrated
    • Alias Message::attachments() for Message::getAttachments() added
    • Alias Message::addFlag() for Message::setFlag() added
    • Alias Message::removeFlag() for Message::unsetFlag() added
    • Alias Message::flags() for Message::getFlags() added
    • New Exception MessageFlagException::class added
    • New method Message::setSequenceId($id) added
    • Optional Header attributizion option added
    • Get a message by its message number
    • Get a message by its uid

    Breaking changes

    • Stringified message headers are now separated by ", " instead of " ".
    • All message header values such as subject, message_id, from, to, etc now consists of an Àttribute::class instance (should behave the same way as before, but might cause some problem in certain edge cases)
    • The formal address object "from", "to", etc now consists of an Address::class instance (should behave the same way as before, but might cause some problem in certain edge cases)
    • When fetching or manipulating message flags a MessageFlagException::class exception can be thrown if a runtime error occurs
    • Learn more about the new Attribute class here: www.php-imap.com/api/attribute
    • Learn more about the new Address class here: www.php-imap.com/api/address
    • Folder attribute "referal" is now called "referral"
    Open source →
    Release notes

    Fixed

    • Attachment::save() return error 'A facade root has not been set'
    • Unused dependencies removed
    • Fix PHP 8 error that changes null back in to an empty string. (thanks @mennovanhout)
    • Fix regex to be case insensitive (thanks @mennovanhout)
    • Debug line position fixed
    • Handle incomplete address to string conversion
    • Configured message key gets overwritten by the first fetched message
    • Get partial overview when IMAP::ST_UID is set
    • Unnecessary "'" removed from address names
    • Folder referral typo fixed
    • Legacy protocol fixed
    • Treat message collection keys always as strings
    • Missing RFC attributes added
    • Set the message sequence when idling
    • Missing UID commands added

    Added

    • Configurable supported default flags added
    • Message attribute class added to unify value handling
    • Address class added and integrated
    • Alias Message::attachments() for Message::getAttachments() added
    • Alias Message::addFlag() for Message::setFlag() added
    • Alias Message::removeFlag() for Message::unsetFlag() added
    • Alias Message::flags() for Message::getFlags() added
    • New Exception MessageFlagException::class added
    • New method Message::setSequenceId($id) added
    • Optional Header attributizion option added
    • Get a message by its message number
    • Get a message by its uid

    Breaking changes

    • Stringified message headers are now separated by ", " instead of " ".
    • All message header values such as subject, message_id, from, to, etc now consists of an Àttribute::class instance (should behave the same way as before, but might cause some problem in certain edge cases)
    • The formal address object "from", "to", etc now consists of an Address::class instance (should behave the same way as before, but might cause some problem in certain edge cases)
    • When fetching or manipulating message flags a MessageFlagException::class exception can be thrown if a runtime error occurs
    • Learn more about the new Attribute class here: www.php-imap.com/api/attribute
    • Learn more about the new Address class here: www.php-imap.com/api/address
    • Folder attribute "referal" is now called "referral"
    Open source →
  10. 2.3.0 21 Dec 2020
    Release notes

    Fixed

    • 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 to IMAP::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

    Added

    • 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 option uid added
    • Protocol UID support added
    • Flexible sequence type support added

    Breaking changes

    • 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.
    Open source →
    Release notes

    Fixed

    • 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 to IMAP::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

    Added

    • 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 option uid added
    • Protocol UID support added
    • Flexible sequence type support added

    Breaking changes

    • 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.
    Open source →
  11. 2.2.0 16 Oct 2020
    Release notes

    Fixed

    • 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 of Protocol::copyMessage() and Message::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 from Header::class
    • Dependency problem in Attachement::getExtension() fixed
    • Quota handling fixed

    Added

    • 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

    Breaking changes

    • Text bodies might no longer get fetched as attachment
    • Message::$in_reply_to type changed from mixed to array
    Open source →
  12. 2.1.1 15 Oct 2020
    Release notes

    Fixed

    • Missing default config parameter added #346

    Added

    • Imap idle command added
    Open source →
  13. 2.1.0 08 Oct 2020
    Release notes

    Fixed

    • Redundant class ClientManager::class removed and config handling moved to depending library "webklex/php-imap" #345 #344

    Breaking changes

    • \Webklex\IMAP\ClientManager::class no longer exists. Please use the \Webklex\IMAP\Facades\Client::class facade or \Webklex\PHPIMAP\ClientManager::class instead.
    Open source →
  14. 2.0.2 22 Sep 2020
    Release notes

    Fixed

    • Missing default config parameter added (#337)
    Open source →
  15. 2.0.1 22 Sep 2020
    Release notes

    Fixed

    • Wrong path to config directory (#336)
    Open source →
  16. 2.0.0 22 Sep 2020
    Release notes

    Fixed

    • Encoding / Decoding improved and exception fallback added
    • Missing pagination item records fixed (#287, #329)
    • Missing attachments problem solved (#284, #277)

    Added

    • 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)

    Breaking changes

    • Most class namespaces have changed from IMAP to PHPIMAP
    • Method response structure has changed in most classes
    • Deprecated methods removed
    • New exceptions can occur

    Affected Classes

    • All
    Open source →
  17. 1.6.2 07 Sep 2020
    Release notes

    Fixed

    • Exception handling improved and missing child exception added (#326)
    • Fix 'A non well formed numeric value encountered' ErrorException (#327)
    Open source →
  18. 1.6.1 04 Sep 2020
    Release notes

    Fixed

    • Greatly increased IDLE performance
    • Message::fetchStructure() redundant code removed

    Added

    • 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

    Affected Classes

    Open source →
  19. 1.6.0 04 Sep 2020
    Release notes

    Fixed

    • Default fetch attributes set to null in order to use the config default value

    Added

    • "BADCHARSET" exception will be used to determine the required charset (#100)

    Breaking changes

    • Client::getMessages() default fetch parameter changed
    • Folder::getMessages() default fetch parameter changed
    • Folder::getMessage() default fetch parameter changed

    Affected Classes

    Open source →
  20. 1.5.3 24 Aug 2020
    Release notes

    Fixed

    • Event parameter handling fixed (#322)
    Open source →
  21. 1.5.2 24 Aug 2020
    Release notes

    Added

    • IDLE like support added (#185)

    Affected Classes

    Open source →
  22. 1.5.1 23 Aug 2020
    Release notes

    Added

    • Message events added (deleted, restored, moved, new*)

    Affected Classes

    Open source →
  23. 1.5.0 20 Aug 2020
    Release notes

    Fixed

    • 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)

    Added

    • Prevent double where condition strings
    • Optional iconv_mime_decode() support added (#295)

    Breaking changes

    • Custom search conditions have to begin with CUSTOM

    Affected Classes

    Open source →
  24. 1.4.5 23 Jan 2020
    Release notes

    Fixed

    • Convert encoding of personal data struct #272
    • Test & implement fix for #203 #270 #235

    Added

    • Attachment size handling added #276
    • Find messages by custom search criteria #268

    Affected Classes

    Open source →
  25. 1.4.4 29 Nov 2019
    Release notes

    Fixed

    • Date handling in Folder::appendMessage() fixed #224
    • Carbon Exception Parse Data #45
    • Convert sender name from non-utf8 to uf8 #260 (@hwilok) #259

    Affected Classes

    Open source →
  26. 1.4.3 17 Sep 2019
    Release notes

    Fixed

    • .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)

    Added

    • Path prefix option added to Client::getFolder() method #234

    Affected Classes

    Open source →
  27. 1.4.2 02 Jul 2019
    Release notes

    Fixed

    • 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

    Added

    • Message::getFolder() method
    • Create a fast count method for queries #216
    • STARTTLS encryption alias added

    Affected Classes

    Open source →
  28. 1.4.1 12 Apr 2019
    Release notes

    Fixed

    • 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

    Added

    • Mailbox fetching exception added #201
    • Message::moveToFolder() fetches new Message::class afterwards #31

    Affected Classes

    Breaking changes

    • Message::moveToFolder() returns either a Message::class instance or null and not a boolean
    Open source →
  29. 1.4.0 18 Mar 2019
    Release notes

    Fixed

    • iconv(): error suppressor for //IGNORE added #184
    • Typo Folder attribute fullName changed to full_name
    • Query scope error fixed #153

    Added

    • 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

    Affected Classes

    Breaking changes

    • Folder::fullName is now Folder::full_name
    • Attachment::image_src might no longer work as expected - use Attachment::getImageSrc() instead
    Open source →
  30. 1.3.1 12 Mar 2019
    Release notes

    Fixed

    • Replace embedded image with URL #151

    Added

    • Imap client timeout can be modified and read #186
    • Decoder config options added #175
    • Message search criteria "NOT" added #181

    Affected Classes

    Open source →
  31. 1.3.0 11 Mar 2019
    Release notes

    Fixed

    • 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

    Added

    • Invalid message date exception added

    Affected Classes

    Open source →
  32. 1.2.9 15 Sep 2018
    Release notes

    Fixed

    • Removed "-i" from "iso-8859-8-i" in Message::parseBody #146

    Added

    • Blade examples

    Affected Classes

    Open source →
  33. 1.2.8 14 Aug 2018
    Release notes

    Fixed

    • Folder delimiter check added #137

    Affected Classes

    Open source →
  34. 1.2.7 06 Aug 2018
    Release notes

    Fixed

    • Broken non-latin characters in subjects and attachments #133

    Added

    • Required php extensions added to composer.json

    Affected Classes

    Open source →
  35. 1.2.6 04 Aug 2018
    Release notes

    Fixed

    • Message subjects and attachment names will now be decoded with a guessed encoding #97 #107

    Added

    • Expunge option added to critical imap operations

    Affected Classes

    Open source →
  36. 1.2.5 30 Jul 2018
    Release notes

    Fixed

    • Fixing undefined index error if associative config array isn't properly filled #131

    Affected Classes

    Open source →
  37. 1.2.4 26 Jul 2018
    Release notes

    Fixed

    • fetch_flags default set to true on all methods
    • Missing fetch_flags attribute added

    Added

    • Folder::query() aliases added
    • Priority fetching added

    Affected Classes

    Open source →
  38. 1.2.3 23 Jul 2018
    Release notes

    Fixed

    • Config loading fixed and moved to a custom solution
    • Set Encryption type correctly #128
    • Moving a message takes now a uid #127

    Affected Classes

    Open source →
  39. 1.2.2 22 Jul 2018
    Release notes

    Fixed

    • Don't set the charset if it isn't used - prevent strange outlook mail server errors #100
    • Protocol option added -minor Fix #126

    Added

    • Query extended with markAsRead() and leaveUnread() methods

    Affected Classes

    Open source →
  40. 1.2.1 22 Jul 2018
    Release notes

    Added

    • WhereQuery aliases for all where methods added

    Affected Classes

    Open source →
  41. 1.2.0 21 Jul 2018
    Release notes

    Fixed

    • 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

    Added

    • Protocol option added #124
    • Message collection key option added
    • Message collection sorting option added
    • Search Query functionality added
    • Flag collection added
    • Search methods updated

    Affected Classes

    Open source →
  42. 1.1.2 19 May 2018

    Nothing published for this version

  43. 1.1.1 04 May 2018
    Release notes

    Fixed

    • Force to add a space between criteria in search query, otherwise no messages are fetched. Thanks to @cent89

    Added

    • Attachment::getMimeType() and Attachment::getExtension() added

    Affected Classes

    Open source →
  44. 1.1.0 24 Apr 2018
    Release notes

    Fixed

    • Client::createFolder($name) fixed #91
    • Versions will now follow basic Semantic Versioning guidelines (MAJOR.MINOR.PATCH)

    Added

    • 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

    Affected Classes

    Open source →
  45. 1.0.2 15 Feb 2017

    Nothing published for this version

  46. 1.0.1 19 Jan 2017

    Nothing published for this version

  47. 1.0.0 19 Jan 2017

    Nothing published for this version

  48. 1.0.5.9 14 Apr 2018
    Release notes

    Added

    • Handle Carbon instances in message search criteria #82
    • $message->getRawBody() throws Exception #88
    • Request: add getReferences method to Message class #83

    Affected Classes

    Open source →
  49. 1.0.5.8 08 Apr 2018
    Release notes

    Added

    • Specify provider name when publishing the config #80
    • Enable package discovery #81
    Open source →
  50. 1.0.5.7 04 Apr 2018
    Release notes

    Fixed

    • Added option for optional attachment download #76
    • Added option for optional body download
    • Renamed "fetch" parameters
    • hasAttachment() method added

    Affected Classes

    Open source →
  51. 1.0.5.6 03 Apr 2018
    Release notes

    Fixed

    • More explicit date validation statements
    • Resolving getMessage is not returning the body of the message #75

    Affected Classes

    Open source →
  52. 1.0.5.5 28 Mar 2018
    Release notes

    Fixed

    • 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)

    Affected Classes

    Open source →
  53. 1.0.5.4 27 Mar 2018
    Release notes

    Fixed

    • Clear error stack before imap_close #72

    Affected Classes

    Open source →
  54. 1.0.5.3 18 Mar 2018
    Release notes

    Added

    • FolderCollection::class added
    • Comments updated

    Affected Classes

    Open source →
  55. 1.0.5.2 18 Mar 2018
    Release notes

    Added

    • Attachment::save() method added
    • Unnecessary methods declared deprecated

    Affected Classes

    Open source →
  56. 1.0.5.1 16 Mar 2018
    Release notes

    Added

    • Message collection moved to Support
    • Attachment collection added
    • Attachment class added

    Affected Classes

    Open source →
  57. 1.0.5.0 16 Mar 2018
    Release notes

    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

    Affected Classes

    Open source →
  58. 1.0.4.2 15 Mar 2018
    Release notes

    Added

    • Support message delivery status #47

    Affected Classes

    Open source →
  59. 1.0.4.1 14 Feb 2018
    Release notes

    Added

    • Enable support to get In-Reply-To property from Message header. #56

    Affected Classes

    Open source →
  60. 1.0.4.0 28 Jan 2018
    Release notes

    Added

    • 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()

    Affected Classes

    Open source →

Every package, every release, already written down.

The archive is open and free. Watching your own project is what we are building next.

Browse the archive