Imapclient

Latest version: v3.0.1

Safety actively analyzes 621751 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 1 of 5

2.3.0

===============

**Note**: This will be the last release to support Python 2.

Many thanks to Boni Lindsley for many of the changes in this release. Changes
below are by them unless otherwise specified.

Changed
-------
- Use GitHub Actions instead of TravisCI
- Improvements to code examples (thanks shoaib30)
- Run tests with unittest instead of setup.py

Added
-----
- New ``socket()`` method which provides access to the underlying network
socket. This is useful for allowing the socket to be polled.
- Allow flags and internaldate to be specified for MULTIAPPEND (thanks Tobias Kölling)

Fixed
-----
- Default SSL contexts are now created with correct purpose (thanks pinoatrome)
- Fixed undiscoverable tests due to name shadowing
- Fixed missing code block directives in documentation
- Fixed typo in tox envlist
- Fixed formatting in release notes

===============

2.2.0

===============

Changed
-------
- Performance improvements (thanks Carson Ip!)

- 2x faster _maybe_int_to_bytes for Python 2 (375)
- Fix _proc_folder_list quadratic runtime (374)
- Faster utf7 encode (373). ~40% faster for input with a mix of unicode and
ASCII chars.
- Cache regex in _process_select_response

- poll() when available to surpass 1024 file descriptor limit with select() (377) (thanks Jonny Hatch)
- Use next instead of six.next as imapclient doesn't claim Python 2.5 support. (396) (thanks Jasper Spaans)
- Moved "Logged in/out" traces from INFO to DEBUG level (thanks Fabio Manganiello)
- Run tests on Python 3.8 and 3.9
- Support the Deleted special folder used by Outlook (thanks Samir M)
- Clean up timeout handling
- Run the Black code formatter over the entire project

Added
-----
- MULTIAPPEND and LITERAL+ support (399) (thanks Devin Bayer)
- Use ptpython for interactive shell if available (272)
- Allow any custom SASL mechanism to be provided. This allows mechanisms such
as EXTERNAL, GSSAPI or SCRAM-SHA-256 to be used in the same way as with
imaplib. (thanks Mantas Mikulėnas)
- Add SASL OAUTHBEARER support
- add optional timeout parameter to IMAP4_TLS.open (thanks zrose584)

Fixed
-----
- fixed special folder searching
- Catch the right exception in folder_status (371)
- test_imapclient: Fix LoggerAdapter version check (383) (thanks Michał Górny)
- Fix config file parsing for None attributes (393) (thanks François Deppierraz)
- Fix useless ref cycle in lexer
- Protocol parsing: Prevent converting numbers with leading zeroes to int. (390) (405) (thanks Jasper Spaans)
- Prevent UnicodeDecodeError in IMAPlibLoggerAdapter (367)
- Fix invalid string escape sequences (397)
- Ensure timeout is used on Python 2.7. _create_socket isn't used with the
Python 2 version of imaplib so the open method has been overrided to make it
consistent across Python version (380).
- Fix IMAP4_TLS for imaplib in Python 3.9+ (thanks Christopher Arndt, marmarek and link2xt)

===============

2.1.0

===============

Changed
-------
- TravisCI now runs tests against PyPy
- Python 3.7 is now officially supported
- Cleaned up server capability checks
- Use TLS by default for interactive sessions

Added
-----
- Support the ``QUOTA`` extension
- Support for locating special folders (``find_special_folder()``)
- Document usage of client TLS certificates
- Added documentation & example for parsing retrieved emails using the
standard library ``email`` package.

Fixed
-----
- Handle ``NIL`` values for ``INTERNALDATE``

=============

2.0

=============

Changed
-------
- Only use Python's built-in TLS support (no more backports.ssl & pyOpenSSL)
- Connections use SSL/TLS by default (`ssl=True`)
- Drop ``imapclient.tls.create_default_context`` function. In case you were
using it, you can use the method with the same name available in the
built-in ``ssl`` module.
- Logs are now handled by the Python logging module. The `debug` and `log_file`
attributes are gone.
- More precise exceptions available in `imapclient.exceptions` are raised when
an error happens
- `imapclient.exceptions.ProtocolError` is now raised when the reply from a
remote server violates the IMAP protocol.
- SEARCH exceptions now link to relevant documentation.
- GMail labels are now strings instead of bytes in Python 3.
- OAUTH v1 support removed.
- setup.py has been simplified.
- All non-library code moved out of the `imapclient` package.
- Many documentation improvements.

Added
-----
- Connection and read/write operations timeout can now be distinct, using
`imapclient.SocketTimeout` namedtuple as `timeout` parameter.
- A context manager is introduced to automatically close connections to remote
servers.
- EXPUNGE by ID support.
- ENABLE support.
- UNSELECT support.
- Atomically move messages to another folder using the MOVE extension
(:rfc:`6851`)
- New `welcome` property to allow access to IMAP server greeting.

Fixed
-----
- GMail labels using international characters are now handled properly.
- Don't use locale dependent formatting in `datetime_to_INTERNAL_DATE()`.
- Quote empty strings to prevent syntax errors while SEARCHing for zero-length
strings.
- Handle address without mailbox name or host in Address namedtuple.
- Avoid asserts in response parsing codes to allow graceful recovery.
- Prevent logging of IMAP passwords.

Python compatibility
--------------------
Support for Python 2.6 and 3.3 is removed in this release.

This version supports Python 2.7, 3.4, 3.5 and 3.6. We officially support the
latest release of each series.


===============

1.1.0

===============

Added
-----
- Search now supports nested criteria so that more complex criteria
can be expressed. IMAPClient will add parentheses in the right place.
- PLAIN authentication support (via `plain_login` method)
- `unselect_folder()` method, for servers with the UNSELECT capability (200)
- Add ENABLE support (136)
- UID EXPUNGE support (287)

Changed
-------
- the `mock` package is no longer installed by default (just as a test
dependency)
- handle NIL date values in INTERNALDATE
- add `silent` option to all flags methods (improves performance by
avoiding unnecessary parsing)
- simplify Gmail label functionality
- folder_status is more robust
- various livetest reliability improvements

Fixed
-----
- don't quote search criteria when sent as IMAP literals. Fixes 249.
- Modified UTF-7 encoding function had quirks in its original algorithm,
leading to incorrect encoded output in some cases. The algorithm, described
in RFC 3501, has been reimplemented to fix 187 and is better documented.
- use fixed month names when formatting INTERNALDATES (don't rely on locale)
- handle address without mailbox name or host in Address namedtuple. Fixes 242.
- Use cryptography < 2.0 on Python 3.3. Fixes 305.


===============

1.0.2

===============

New
---
- Documented the livetest/interact INI file format.
- Documented handling of RFC2822 group syntax.

Changed
-------
- Explicitly check that the required pyOpenSSL version is installed
- Start testing against Python 3.5
- Update doc links from readthedocs.org to readthedocs.io
- Rearranged README so that project essentials are right at the top.

Fixed
-----
- Allow installation from alternate directories

===============

Page 1 of 5

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.