diff --git a/src/imap/idle.py b/src/imap/idle.py index d2323ab..ed6a4ab 100644 --- a/src/imap/idle.py +++ b/src/imap/idle.py @@ -104,6 +104,12 @@ class IdleHandler: timeout=300 # 5 minute timeout ) + # Exit IDLE before processing (can't SEARCH while in IDLE) + try: + self._client.idle_done() + except Exception: + pass + # Process responses for response in responses: if isinstance(response, tuple) and len(response) >= 2: @@ -116,7 +122,7 @@ class IdleHandler: ) last_count = count finally: - # Always exit IDLE mode + # Ensure we exit IDLE mode (may already be done above) try: self._client.idle_done() except Exception: diff --git a/src/imap/parser.py b/src/imap/parser.py index 6da7635..b41b023 100644 --- a/src/imap/parser.py +++ b/src/imap/parser.py @@ -143,7 +143,7 @@ def parse_flags(flags: Any) -> MessageFlags: ) -def extract_text_body(msg: email.message.Message, max_length: int = 5000) -> tuple[str, str]: +def extract_text_body(msg: email.message.Message, max_length: int = 100000) -> tuple[str, str]: """Extract text and HTML bodies from an email message.""" text_body = "" html_body = ""