fix: IMAP sync uid_fetch and response parsing

- Replace client.uid_fetch() with client.uid("fetch", ...) (aioimaplib API)
- Fix response parsing for aioimaplib Response object structure
This commit is contained in:
Agent Zero
2026-07-15 02:14:01 +02:00
parent 0d882eaca5
commit 78478db625
+4 -3
View File
@@ -253,10 +253,11 @@ async def imap_sync_account(
synced_count = 0
for uid in uids:
uid_str = uid.decode() if isinstance(uid, bytes) else str(uid)
fetch_resp = await client.uid_fetch(uid_str, "(RFC822)")
fetch_resp = await client.uid('fetch', uid_str, '(RFC822)')
raw_email = None
for line in fetch_resp:
if isinstance(line, tuple) and len(line) >= 2:
# 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]
break
if raw_email is None: