fix: IMAP sync response parsing - extract bytearray from response lines

- aioimaplib returns bytes/bytearray lines, not tuples
- Find bytearray line containing the raw email data
This commit is contained in:
Agent Zero
2026-07-15 02:20:02 +02:00
parent 78478db625
commit be8a95995b
+4 -4
View File
@@ -255,10 +255,10 @@ async def imap_sync_account(
uid_str = uid.decode() if isinstance(uid, bytes) else str(uid)
fetch_resp = await client.uid('fetch', uid_str, '(RFC822)')
raw_email = None
# aioimaplib Response: lines[0]='OK', lines[1]=[header_bytes, data_bytearray]
for line in fetch_resp.lines if hasattr(fetch_resp, 'lines') else fetch_resp:
if isinstance(line, (list, tuple)) and len(line) >= 2:
raw_email = line[1]
# aioimaplib Response lines: [header_bytes, data_bytearray, closing_bytes, completion_bytes]
for line in (fetch_resp.lines if hasattr(fetch_resp, 'lines') else fetch_resp):
if isinstance(line, bytearray):
raw_email = bytes(line)
break
if raw_email is None:
continue