Refactor idle check logic in IMAP connection to improve message handling

This commit is contained in:
Simon Zeyer 2025-06-09 11:12:18 +00:00
parent 5127caed03
commit b528b0a748

View File

@ -78,9 +78,7 @@ def run():
try: try:
logging.debug("Idle check for folder: {}".format(folder)) logging.debug("Idle check for folder: {}".format(folder))
messages = _server.idle_check(timeout=60) # Timeout after 60 seconds messages = _server.idle_check(timeout=60) # Timeout after 60 seconds
# if not messages: _server.idle_done()
# logging.info("No new messages in folder: {}".format(folder))
# continue
for item in messages: for item in messages:
if item[1] in (b'EXISTS'): if item[1] in (b'EXISTS'):
logging.info("New messages in folder: {}".format(folder)) logging.info("New messages in folder: {}".format(folder))
@ -89,7 +87,6 @@ def run():
eventHandler('NewMailEvent', uid, message_data, _server) eventHandler('NewMailEvent', uid, message_data, _server)
except Exception as e: except Exception as e:
logging.error("Error during idle check: {}".format(e)) logging.error("Error during idle check: {}".format(e))
_server.idle_done()
username = os.environ.get('username') username = os.environ.get('username')
password = os.environ.get('password') password = os.environ.get('password')