feat: 收件人/发件人改用邮件原始头数据

- sender 从 decode 改为使用原始 From 头
- 新增 recipient 字段,使用原始 To 头
- 移除 ai_process 中对 acct.username 的依赖
This commit is contained in:
2026-07-02 22:04:27 +08:00
parent 2ebcad0a70
commit ad950ff367
3 changed files with 13 additions and 9 deletions

View File

@@ -11,10 +11,11 @@ logger = logging.getLogger(__name__)
class Email:
def __init__(self, uid: bytes, subject: str, sender: str, body: str, date: str):
def __init__(self, uid: bytes, subject: str, sender: str, recipient: str, body: str, date: str):
self.uid = uid
self.subject = subject
self.sender = sender
self.recipient = recipient
self.body = body
self.date = date
@@ -102,13 +103,14 @@ def fetch_unseen_emails(account: EmailAccount) -> list[Email]:
msg = email.message_from_bytes(raw_email)
subject = _decode_str(msg.get("Subject", ""))
sender = _decode_str(msg.get("From", ""))
sender = msg.get("From", "")
recipient = msg.get("To", "")
date_str = msg.get("Date", "")
body = _get_text_from_msg(msg)
body_len = len(body)
logger.info(" 邮件: [%s] %s <%s> (%d 字符)", subject, sender, date_str, body_len)
emails.append(Email(uid=uid, subject=subject, sender=sender, body=body, date=date_str))
logger.info(" 邮件: [%s] from=%s to=%s (%d 字符)", subject, sender, recipient, body_len)
emails.append(Email(uid=uid, subject=subject, sender=sender, recipient=recipient, body=body, date=date_str))
conn.logout()
logger.info("共获取 %d 封新邮件", len(emails))