Affected Component
Backend (Python/FastAPI)
Description
邮件通道目前使用 address 字段同时作为:
- IMAP/SMTP 的登录用户名
- 发送邮件时的 From 地址
当邮件服务器的登录名格式与邮箱地址不一致时会失败。例如:
Exchange 服务器要求用裸用户名 username 登录,但 username@cxtc.com 被拒。
同时 validate_config 要求 address 必须是合法邮箱格式,
无法直接将 address 设为 username。
Steps to Reproduce
建议
新增 username 配置字段。如果未设置,默认 fallback 到 address(向后兼容)。
所有 IMAP/SMTP 登录使用 username,address 仅用于 From 头和邮箱校验。
涉及文件
flocks/channel/builtin/email/config.py — resolved_config() 新增
username 提取逻辑,默认 fallback 到 address
flocks/channel/builtin/email/channel.py — 4 处登录调用:
cfg["address"] → cfg["username"]
_test_connections (IMAP + SMTP)
_fetch_new_messages (IMAP)
_send_email (SMTP)
Logs / Error Messages
Flocks Version
v2026.7.29
Operating System
Linux (Ubuntu/Debian)
Installation Method
uv / pip install
Additional Context
No response
Affected Component
Backend (Python/FastAPI)
Description
邮件通道目前使用
address字段同时作为:当邮件服务器的登录名格式与邮箱地址不一致时会失败。例如:
Exchange 服务器要求用裸用户名
username登录,但username@cxtc.com被拒。同时
validate_config要求address必须是合法邮箱格式,无法直接将
address设为username。Steps to Reproduce
建议
新增
username配置字段。如果未设置,默认 fallback 到address(向后兼容)。所有 IMAP/SMTP 登录使用
username,address仅用于 From 头和邮箱校验。涉及文件
flocks/channel/builtin/email/config.py—resolved_config()新增username 提取逻辑,默认 fallback 到 address
flocks/channel/builtin/email/channel.py— 4 处登录调用:cfg["address"]→cfg["username"]_test_connections(IMAP + SMTP)_fetch_new_messages(IMAP)_send_email(SMTP)Logs / Error Messages
Flocks Version
v2026.7.29
Operating System
Linux (Ubuntu/Debian)
Installation Method
uv / pip install
Additional Context
No response