From 5368812e45ed92d825064735e7a5c2a47ec02dac Mon Sep 17 00:00:00 2001 From: Zichao Lin Date: Mon, 13 Jul 2026 08:04:26 +0800 Subject: [PATCH] fix: skip NoSelect folders, clean up debug logging --- src/email_client.py | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/src/email_client.py b/src/email_client.py index 0d0665e..8580295 100644 --- a/src/email_client.py +++ b/src/email_client.py @@ -113,9 +113,8 @@ def fetch_unseen_emails(account: EmailAccount, skip_uids: set[bytes] | None = No conn = _login_and_prepare(account, select_inbox=False) if skip_uids is None: skip_uids = set() - logger.info("fetch_unseen_emails: %s, skip_uids大小=%d", account.username, len(skip_uids)) - # 列出所有文件夹 + # 列出所有文件夹,跳过 NoSelect 文件夹 _, folder_data = conn.list() folders = [] if folder_data: @@ -123,6 +122,9 @@ def fetch_unseen_emails(account: EmailAccount, skip_uids: set[bytes] | None = No if item is None: continue line = item.decode("utf-8", errors="replace") + # 跳过 \NoSelect 文件夹(父文件夹,不能直接 SELECT) + if "\\NoSelect" in line: + continue m = re.search(r'"([^"]*)"\s*$', line) if m: folders.append(m.group(1)) @@ -148,11 +150,7 @@ def fetch_unseen_emails(account: EmailAccount, skip_uids: set[bytes] | None = No skipped += len(uids) - len(new_uids) if not new_uids: continue - if skipped > 0 or len(uids) > 0: - logger.info(" %s: %d 封未读 (%d 封跳过) skip_uids=%d", - folder, len(new_uids), len(uids) - len(new_uids), len(skip_uids)) - if skip_uids and len(skip_uids) <= 5: - logger.info(" skip_uids 内容: %s", [u for u in skip_uids]) + logger.info(" %s: %d 封未读 (%d 封跳过)", folder, len(new_uids), len(uids) - len(new_uids)) for uid in new_uids: try: