mailcode 0.1.3__tar.gz → 0.1.4__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {mailcode-0.1.3 → mailcode-0.1.4}/PKG-INFO +1 -1
- mailcode-0.1.4/mailcode/__init__.py +1 -0
- {mailcode-0.1.3 → mailcode-0.1.4}/mailcode/relay/email_listener.py +8 -0
- {mailcode-0.1.3 → mailcode-0.1.4}/mailcode.egg-info/PKG-INFO +1 -1
- {mailcode-0.1.3 → mailcode-0.1.4}/pyproject.toml +1 -1
- mailcode-0.1.3/mailcode/__init__.py +0 -1
- {mailcode-0.1.3 → mailcode-0.1.4}/LICENSE +0 -0
- {mailcode-0.1.3 → mailcode-0.1.4}/README.md +0 -0
- {mailcode-0.1.3 → mailcode-0.1.4}/mailcode/channels/__init__.py +0 -0
- {mailcode-0.1.3 → mailcode-0.1.4}/mailcode/channels/email_channel.py +0 -0
- {mailcode-0.1.3 → mailcode-0.1.4}/mailcode/cli.py +0 -0
- {mailcode-0.1.3 → mailcode-0.1.4}/mailcode/config.py +0 -0
- {mailcode-0.1.3 → mailcode-0.1.4}/mailcode/health.py +0 -0
- {mailcode-0.1.3 → mailcode-0.1.4}/mailcode/provider_presets.py +0 -0
- {mailcode-0.1.3 → mailcode-0.1.4}/mailcode/relay/__init__.py +0 -0
- {mailcode-0.1.3 → mailcode-0.1.4}/mailcode/relay/conversation_handler.py +0 -0
- {mailcode-0.1.3 → mailcode-0.1.4}/mailcode/relay/scheduler.py +0 -0
- {mailcode-0.1.3 → mailcode-0.1.4}/mailcode/relay/security.py +0 -0
- {mailcode-0.1.3 → mailcode-0.1.4}/mailcode/relay/stateless_handler.py +0 -0
- {mailcode-0.1.3 → mailcode-0.1.4}/mailcode/resources/default.json +0 -0
- {mailcode-0.1.3 → mailcode-0.1.4}/mailcode/schedule_cli.py +0 -0
- {mailcode-0.1.3 → mailcode-0.1.4}/mailcode/server.py +0 -0
- {mailcode-0.1.3 → mailcode-0.1.4}/mailcode/session_cli.py +0 -0
- {mailcode-0.1.3 → mailcode-0.1.4}/mailcode/utils/__init__.py +0 -0
- {mailcode-0.1.3 → mailcode-0.1.4}/mailcode/utils/claude_runner.py +0 -0
- {mailcode-0.1.3 → mailcode-0.1.4}/mailcode/utils/logging.py +0 -0
- {mailcode-0.1.3 → mailcode-0.1.4}/mailcode.egg-info/SOURCES.txt +0 -0
- {mailcode-0.1.3 → mailcode-0.1.4}/mailcode.egg-info/dependency_links.txt +0 -0
- {mailcode-0.1.3 → mailcode-0.1.4}/mailcode.egg-info/entry_points.txt +0 -0
- {mailcode-0.1.3 → mailcode-0.1.4}/mailcode.egg-info/top_level.txt +0 -0
- {mailcode-0.1.3 → mailcode-0.1.4}/setup.cfg +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
__version__ = "0.1.4"
|
|
@@ -386,6 +386,7 @@ class IMAPListener:
|
|
|
386
386
|
|
|
387
387
|
uids = messages[0].split()
|
|
388
388
|
if not uids:
|
|
389
|
+
logger.info("SEARCH UNSEEN 无结果 (可能收到非新邮件的 IMAP 通知)")
|
|
389
390
|
return results
|
|
390
391
|
|
|
391
392
|
for uid_bytes in uids:
|
|
@@ -404,9 +405,11 @@ class IMAPListener:
|
|
|
404
405
|
in_reply_to = msg.get("In-Reply-To", "")
|
|
405
406
|
|
|
406
407
|
if self._is_own_message(msg):
|
|
408
|
+
logger.debug(f"跳过自身邮件: {subject}")
|
|
407
409
|
continue
|
|
408
410
|
|
|
409
411
|
if self._is_duplicate(msg_id, uid):
|
|
412
|
+
logger.debug(f"跳过重复邮件: UID={uid} MsgID={msg_id}")
|
|
410
413
|
continue
|
|
411
414
|
|
|
412
415
|
sender_email = parseaddr(from_header)[1].lower() or from_header.lower()
|
|
@@ -421,6 +424,7 @@ class IMAPListener:
|
|
|
421
424
|
logger.info(f"邮件认证状态 [{sender_email}]: {auth_reason}")
|
|
422
425
|
|
|
423
426
|
if not self.security_checker.is_sender_allowed(sender_email):
|
|
427
|
+
logger.info(f"发件人不在白名单中 [{sender_email}], 已跳过")
|
|
424
428
|
continue
|
|
425
429
|
|
|
426
430
|
body = self._extract_body(msg)
|
|
@@ -717,6 +721,10 @@ class IMAPListener:
|
|
|
717
721
|
if iteration <= health_check_every + 1 and emails:
|
|
718
722
|
logger.info(f"重连后首轮 fetch 拉到 {len(emails)} 封累积未读")
|
|
719
723
|
|
|
724
|
+
# got_event 但无结果: 可能是非新邮件的 IMAP 通知 (flag 变更/BYE/keepalive)
|
|
725
|
+
if got_event and not emails:
|
|
726
|
+
logger.info("IDLE 事件后无新邮件 (可能为非新邮件的 IMAP 通知)")
|
|
727
|
+
|
|
720
728
|
for email_entry in emails:
|
|
721
729
|
if dry_run:
|
|
722
730
|
continue
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
__version__ = "0.1.3"
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|