Releases: OfflineIMAP/offlineimap3
OfflineIMAP v8.0.2
layout: page
title: Changelog of mainline
- The following excerpt is only usefull when rendered in the website.
{:toc}
OfflineIMAP v8.0.2 (2026-04-11)
Notes
This release focuses on connection reliability, crash prevention, and packaging improvements. Several long-standing issues with STARTTLS hangs, stale pooled connections, and incorrect ui.error calls have been fixed. The build system has been modernized (setup.py removed; pyproject.toml is now authoritative) and Fedora 44 SSL certificate paths are supported.
Bug Fixes
-
Fix imaplib2 hangs on STARTTLS: Servers like Protonmail Bridge that do not respond to CAPABILITY immediately after TLS handshake caused 60-second hangs. Bypass the redundant capability query during STARTTLS and skip the post-login CAPABILITY refresh when STARTTLS was used. (Fixes the STARTTLS reliability issue reported in #222) [kix]
-
Do not shutdown the socket in start_tls: Restore the original
_get_capabilitiesmethod in afinallyblock so the connection is not left in a broken state after STARTTLS errors. [kix] -
Check socket health before returning pooled connections: Stale or dead pooled IMAP connections now go through a
select()-based socket check and a NOOP health probe before being handed out. Dead connections are transparently replaced. [kix] -
Fix
'str' object has no attribute '__suppress_context__'crash: Allui.error()call sites now pass a proper exception object as the first argument instead of a plain string, preventing anAttributeErroron Python 3.13. (Fixes #233) [serge-sans-paille] -
Graceful handling of remote folder retrieval errors: If retrieving the remote folder list fails, the account is skipped instead of crashing the entire sync run. [kix]
-
Robust quick-sync remote folder check: If
remotefolder.quickchanged()raises an error, the folder is now assumed changed and a full sync is performed instead of crashing. [kix] -
Abort remaining auth methods on dead socket: When an authentication method fails and the underlying socket is dead, the remaining methods are skipped immediately instead of producing additional confusing socket errors. [kix]
Changes
-
Fedora 44 SSL CA certificate path: Added the new
/etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pempath for Fedora 44+, while keeping the old path for Fedora ≤ 43. (Fixes #237) [Franklin Bynum] -
Fix Sphinx intersphinx_mapping syntax in
docs/doc-src/conf.py. [Volker Eckert] -
Move
urllib3from core dependencies totestinternetoptional group:urllib3is only needed for the test/contrib internet helper, not at runtime. [Stephen Huan] -
Add PySocks as an optional dependency for proxy support. [Stephen Huan]
-
Fix
keyring[keyring]dependency tokeyringfor consistency. [Stephen Huan] -
Remove deprecated classifiers and adopt PEP 639 license format: License field now uses SPDX expression
GPL-2.0-or-later; deprecated GPLv2-only classifier removed. [Stephen Huan] -
Remove
setup.py: The project now usespyproject.tomlexclusively for build configuration. [kix] -
Version bump to 8.0.2 and
.gitignoreupdated for PyPI build artifacts. [kix]
Authors
- Rodolfo García Peñas (kix) (17)
- Stephen Huan (4)
- Franklin Bynum (1)
- Volker Eckert (1)
- serge-sans-paille (1)
OfflineIMAP v8.0.1 (2025-10-28)
Notes
This release includes multiple improvements, bug fixes, and compatibility updates for Python 3.12 and modern systems.
Features
-
Run OfflineIMAP without server connection: The application no longer crashes if the network is temporarily down or the server is unreachable. [kix]
-
Packaging and dependency improvements:
requirements.txtsplit into multiple files,setup.pyandpyproject.tomlaligned, and improved module startup functions. Easier installation and use with or without optional modules. [kix] -
Apple Silicon CA certificates support via Homebrew and enhanced CA search paths for Python 3.4+. [Schspa Shi, Keith Bowes]
-
Optional keyring support: OfflineIMAP can be installed without keyring dependencies, with compatibility for the system keyring. [Hugo Osvaldo Barrera, Kirill A. Korinsky]
-
Python 3.12 compatibility: Configuration files with any extension are allowed, and obsolete modules (
imp) are avoided. [Hugo Osvaldo Barrera, serge-sans-paille]
Changes
-
Regex and ConfigParser fixes: Raw strings are used in configuration examples to prevent warnings and ensure compatibility. [Derek Schrock, Lilydjwg]
-
Fixed "module importlib has no attribute 'machinery'" by importing the required module. [Tugdual Saunier]
-
Improved
foldername_to_imapname(): Escapes and quotes folder names correctly and prevents creating existing folders. [Robo Shimmer] -
IMAP UTF-7 decoding fixes and filtering for folder names containing spaces. [Lilydjwg, Hubert Pineault, Alessio Pascolini]
-
Message ID and date header error handling: Broken message IDs and invalid date headers no longer cause synchronization failures. [kix, Adam Dinwoodie, Robo Shimmer]
-
Installation examples updated for FreeBSD and Debian; optional packages like
distrohandled correctly. [kix, Derek Schrock, Chrysle, Alex Gaynor, Adam Dinwoodie] -
Minor IMAP.py improvements: Password handling and escaping special characters in folder names. [Chris Coleman, Robo Shimmer]
Authors
- Rodolfo García Peñas (kix) (38)
- Robo Shimmer (10)
- Keith Bowes (5)
- lilydjwg (5)
- Chris Coleman (4)
- Adam Dinwoodie (2)
- Derek Schrock (2)
- Hugo Osvaldo Barrera (2)
- Kirill A. Korinsky (2)
- 0pointerexception (1)
- alessio-pascolini (1)
- Alex Gaynor (1)
- chrysle (1)
- Hubert Pineault (1)
- Hugo van Kemenade (1)
- Luciano Rocha (1)
- Magarnicle (1)
- Nicolas Sebrecht (1)
- peterb-dev (1)
- Schspa Shi (1)
- serge-sans-paille (1)
- Sudip Mukherjee (1)
- Tugdual Saunier (1)
OfflineIMAP v8.0.0 (2021-10-18)
Notes
Migration to Python 3 and related patches.
New OfflineIMAP3!! Thanks to the contributors!!
This release was tested by:
- Rodolfo García Peñas (kix)
Authors
- Rodolfo García Peñas (kix) (353)
- Joseph Ishac (22)
- Thomas De Schampheleire (6)
- Sudip Mukherjee (4)
- Nicolas Sebrecht (3)
- Phil Mocek (2)
- Amit Ramon (1)
- Ashish Panigrahi (1)
- Ben Yanke (1)
- Guido Günther (1)
- Jaroslav Lichtblau (1)
- Konstantinos Natsakis (1)
- mh (1)
- peeweep (1)
- Pi-Yueh Chuang (1)
- Xianwen Chen (1)
Features
- New source for Python 3
OfflineIMAP v7.3.0 (2019-08-19)
Notes
Here comes a new release.
The upstream imaplib2 project is discontinued. That's why I've decided to take
over the maintenance of imaplib2 for offlineimap.
For the use of offlineimap I've applied the pending PRs from imaplib2. I have
applied another change sent to offlineimap (see OfflineIMAP/offlineimap#623).
However, there are 3 important limitations:
-
I intend to maintain imaplib2 for offlineimap only. Everything will take place
in the offlineimap project. I'll neither package imaplib2 nor maintain any
"official" repository dedicated to imaplib2. If you want imaplib2 but not
offlineimap, you should extract the fileofflineimap/bundled_imaplib2.pyfrom
the offlineimap repository. Please, send your patches for imaplib2.py to the
offlineimap project directly. -
Starting from imaplib2 v2.100 (tagged: imaplib2-v2.100) I'm taking the patches
in the lazy mode. This means that I won't make deep checks/tests of the
changes. Hence, the quality and the stability might become a bit more
fluctuating. For more stability, you might like to only consider the imaplib2
versions released with the stable versions of offlineimap. Don't expect
changelogs dedicated to imaplib2. They will be part of the offlineimap
changelogs. -
All of this only applies to the py2 version of imaplib2. Sadly, offlineimap
has few chances to be ported on py3 so I don't aim to maintain the py3 version
of imaplib2.
In this release, offlineimap is learning Happy Eyeballs.
This release was tested by:
- Nicolas Sebrecht
Authors
- Nicolas Sebrecht (4)
- Ben Cotterell (1)
- Dario Maiocchi (1)
- Ilias Tsitsimpis (1)
- Julien Cristau (1)
- Olivier Mehani (1)
Features
- Implement Happy Eyeballs. [Olivier Mehani]
- imaplib2 v2.101. [Nicolas Sebrecht]
- imaplib2 v2.100. [Nicolas Sebrecht]
Changes
- Update readme to give an hint about Linux distros. [Dario Maiocchi]
- travis: remove python3.6. [Nicolas Sebrecht]
- README: add required dependency to rfc6555. [Nicolas Sebrecht]
imaplib2
- Do not use TIMEOUT_MAX for Condition.wait(). [Ilias Tsitsimpis]
- Use SSLContext if available so we send SNI. [Julien Cristau]
- Don't expect trailing space on command completion. [Ben Cotterell]
OfflineIMAP v7.2.4 (2019-06-08)
Notes
This release introduces mkdir -p alike folder creation and fixes cygwin support
in Windows.
This release was tested by:
- Nicolas Sebrecht
Authors
- Nicolas Sebrecht (4)
- kimim (2)
- Jelmer Vernooij (1)
- Kyle Altendorf (1)
Features
- mkdir -p alike folder creation. [Kyle Altendorf]
Fixes
- Use portable locker to support cygwin in Windows. [kimim]
- contrib/release.py: don't break if sphinx-build is missing. [Nicolas Sebrecht]
Changes
- Update FSF postal address. [Jelmer Vernooij]
- repository/IMAP: update copyright header date. [Nicolas Sebrecht]
- PULL_REQUEST_TEMPLATE: add space between brackets to enable the edition in the gui. [Nicolas Sebrecht]
OfflineIMAP v7.2.3 (2019-02-17)
Notes
A tiny release for one minor bug fix.
This release was tested by:
...