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.
Files changed (31) hide show
  1. {mailcode-0.1.3 → mailcode-0.1.4}/PKG-INFO +1 -1
  2. mailcode-0.1.4/mailcode/__init__.py +1 -0
  3. {mailcode-0.1.3 → mailcode-0.1.4}/mailcode/relay/email_listener.py +8 -0
  4. {mailcode-0.1.3 → mailcode-0.1.4}/mailcode.egg-info/PKG-INFO +1 -1
  5. {mailcode-0.1.3 → mailcode-0.1.4}/pyproject.toml +1 -1
  6. mailcode-0.1.3/mailcode/__init__.py +0 -1
  7. {mailcode-0.1.3 → mailcode-0.1.4}/LICENSE +0 -0
  8. {mailcode-0.1.3 → mailcode-0.1.4}/README.md +0 -0
  9. {mailcode-0.1.3 → mailcode-0.1.4}/mailcode/channels/__init__.py +0 -0
  10. {mailcode-0.1.3 → mailcode-0.1.4}/mailcode/channels/email_channel.py +0 -0
  11. {mailcode-0.1.3 → mailcode-0.1.4}/mailcode/cli.py +0 -0
  12. {mailcode-0.1.3 → mailcode-0.1.4}/mailcode/config.py +0 -0
  13. {mailcode-0.1.3 → mailcode-0.1.4}/mailcode/health.py +0 -0
  14. {mailcode-0.1.3 → mailcode-0.1.4}/mailcode/provider_presets.py +0 -0
  15. {mailcode-0.1.3 → mailcode-0.1.4}/mailcode/relay/__init__.py +0 -0
  16. {mailcode-0.1.3 → mailcode-0.1.4}/mailcode/relay/conversation_handler.py +0 -0
  17. {mailcode-0.1.3 → mailcode-0.1.4}/mailcode/relay/scheduler.py +0 -0
  18. {mailcode-0.1.3 → mailcode-0.1.4}/mailcode/relay/security.py +0 -0
  19. {mailcode-0.1.3 → mailcode-0.1.4}/mailcode/relay/stateless_handler.py +0 -0
  20. {mailcode-0.1.3 → mailcode-0.1.4}/mailcode/resources/default.json +0 -0
  21. {mailcode-0.1.3 → mailcode-0.1.4}/mailcode/schedule_cli.py +0 -0
  22. {mailcode-0.1.3 → mailcode-0.1.4}/mailcode/server.py +0 -0
  23. {mailcode-0.1.3 → mailcode-0.1.4}/mailcode/session_cli.py +0 -0
  24. {mailcode-0.1.3 → mailcode-0.1.4}/mailcode/utils/__init__.py +0 -0
  25. {mailcode-0.1.3 → mailcode-0.1.4}/mailcode/utils/claude_runner.py +0 -0
  26. {mailcode-0.1.3 → mailcode-0.1.4}/mailcode/utils/logging.py +0 -0
  27. {mailcode-0.1.3 → mailcode-0.1.4}/mailcode.egg-info/SOURCES.txt +0 -0
  28. {mailcode-0.1.3 → mailcode-0.1.4}/mailcode.egg-info/dependency_links.txt +0 -0
  29. {mailcode-0.1.3 → mailcode-0.1.4}/mailcode.egg-info/entry_points.txt +0 -0
  30. {mailcode-0.1.3 → mailcode-0.1.4}/mailcode.egg-info/top_level.txt +0 -0
  31. {mailcode-0.1.3 → mailcode-0.1.4}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: mailcode
3
- Version: 0.1.3
3
+ Version: 0.1.4
4
4
  Summary: Email ↔ AI Agent bidirectional remote command bridge
5
5
  License: MIT
6
6
  Requires-Python: >=3.9
@@ -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,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: mailcode
3
- Version: 0.1.3
3
+ Version: 0.1.4
4
4
  Summary: Email ↔ AI Agent bidirectional remote command bridge
5
5
  License: MIT
6
6
  Requires-Python: >=3.9
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "mailcode"
7
- version = "0.1.3"
7
+ version = "0.1.4"
8
8
  description = "Email ↔ AI Agent bidirectional remote command bridge"
9
9
  requires-python = ">=3.9"
10
10
  license = {text = "MIT"}
@@ -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