diff --git a/src/aiomail/client.py b/src/aiomail/client.py index 8d06419..7116e95 100644 --- a/src/aiomail/client.py +++ b/src/aiomail/client.py @@ -183,8 +183,13 @@ class IMAPClient: return folders async def select(self, folder: str) -> bool: - """select a folder, returning whether it succeeded""" - if not await self.ensure_connection(): + """select a folder, returning whether it succeeded + + connects/reconnects first if needed; a failed re-select of the *previously* + selected folder during reconnect does not block attempting this call's own + target folder, since a live connection can still select it. + """ + if not await self.ensure_connection() and self._mail is None: return False try: result, _ = await self._mail.select(f'"{folder}"')