51 Commits

Author SHA1 Message Date
zxyszx 7cbae154bf chore: configure Gitea repository source
CI / Check web and api (push) Waiting to run
2026-08-14 06:08:44 +08:00
zxyszx 48a1d53133 release: prepare v1.2.33
Docker Release / Check web and api (push) Waiting to run
Docker Release / Resolve release tag (push) Blocked by required conditions
Docker Release / Build and publish all-in-one (push) Blocked by required conditions
Docker Release / Build and publish api (push) Blocked by required conditions
Docker Release / Build and publish web (push) Blocked by required conditions
Docker Release / Build and publish dovecot (push) Blocked by required conditions
Docker Release / Build and publish postfix (push) Blocked by required conditions
Docker Release / Build and publish rspamd (push) Blocked by required conditions
Docker Release / Create GitHub release (push) Blocked by required conditions
2026-08-12 16:59:20 +08:00
zxyszx fc3a3462cf release: prepare v1.2.32 2026-08-12 16:15:19 +08:00
zxyszx 70dd2cec4e feat: prepare v1.2.19 release 2026-08-07 13:29:03 +08:00
zxyszx 79f920bf0b feat: add Telegram mail and release notifications
Docker Release / Check web and api (push) Waiting to run
Docker Release / Resolve release tag (push) Blocked by required conditions
Docker Release / Build and publish all-in-one (push) Blocked by required conditions
Docker Release / Build and publish api (push) Blocked by required conditions
Docker Release / Build and publish web (push) Blocked by required conditions
Docker Release / Build and publish dovecot (push) Blocked by required conditions
Docker Release / Build and publish postfix (push) Blocked by required conditions
Docker Release / Build and publish rspamd (push) Blocked by required conditions
Docker Release / Create GitHub release (push) Blocked by required conditions
2026-08-06 02:17:11 +08:00
zxyszx 86773c64ca feat: unify email identity and administrator security
Docker Release / Check web and api (push) Waiting to run
Docker Release / Resolve release tag (push) Blocked by required conditions
Docker Release / Build and publish all-in-one (push) Blocked by required conditions
Docker Release / Build and publish api (push) Blocked by required conditions
Docker Release / Build and publish web (push) Blocked by required conditions
Docker Release / Build and publish dovecot (push) Blocked by required conditions
Docker Release / Build and publish postfix (push) Blocked by required conditions
Docker Release / Build and publish rspamd (push) Blocked by required conditions
Docker Release / Create GitHub release (push) Blocked by required conditions
2026-08-05 02:55:36 +08:00
zxyszx 39ff9ce01d fix: support batched mail imports
Docker Release / Check web and api (push) Waiting to run
Docker Release / Resolve release tag (push) Blocked by required conditions
Docker Release / Build and publish all-in-one (push) Blocked by required conditions
Docker Release / Build and publish api (push) Blocked by required conditions
Docker Release / Build and publish web (push) Blocked by required conditions
Docker Release / Build and publish dovecot (push) Blocked by required conditions
Docker Release / Build and publish postfix (push) Blocked by required conditions
Docker Release / Build and publish rspamd (push) Blocked by required conditions
Docker Release / Create GitHub release (push) Blocked by required conditions
2026-08-04 13:08:37 +08:00
zxyszx 7e480795fc feat: add administrator password recovery menu 2026-08-04 03:40:34 +08:00
zxyszx 6301182cfc feat: harden installer management menu 2026-08-04 02:23:46 +08:00
zxyszx da888234b9 feat: add guided mail server installer 2026-08-03 22:39:51 +08:00
zxyszx 18f8d870e8 feat: use usernames for administrator accounts
Docker Release / Check web and api (push) Waiting to run
Docker Release / Resolve release tag (push) Blocked by required conditions
Docker Release / Build and publish all-in-one (push) Blocked by required conditions
Docker Release / Build and publish api (push) Blocked by required conditions
Docker Release / Build and publish web (push) Blocked by required conditions
Docker Release / Build and publish dovecot (push) Blocked by required conditions
Docker Release / Build and publish postfix (push) Blocked by required conditions
Docker Release / Build and publish rspamd (push) Blocked by required conditions
Docker Release / Create GitHub release (push) Blocked by required conditions
2026-08-03 17:27:29 +08:00
zxyszx 65bc16bd92 fix: support proxied deployments during updates 2026-08-03 16:47:29 +08:00
zxyszx ea7d58b610 feat: add managed installation and system updates 2026-08-03 16:19:22 +08:00
zxyszx 0d55200485 feat: support username admin login 2026-08-02 16:43:54 +08:00
zxyszx c7be61d3f0 fix: prevent stale webmail shell cache 2026-08-02 12:25:21 +08:00
LanQin_ 47f782a03c feat(api): 升级开放 API 并支持投递回调
- 为 `/api/open/v1` 引入 Token scope、分页游标、幂等发信、发送事件与重试/取消能力。
- 新增投递事件签名回调与状态 webhook outbox,补充相关配置、迁移和测试。
- 同步更新 Web 端 API 类型、个人中心 Token 权限管理,以及中英文文档和 OpenAPI 契约。
2026-07-10 10:47:58 +08:00
LanQin 707f11687d feat(external-imap): 新增外部 IMAP 全局开关与后台配置
- 支持在系统设置中启用/禁用外部 IMAP,并持久化相关密钥与 OAuth 配置。
- 在公共设置和前端页面中联动开关状态,未启用时隐藏外部 IMAP 相关功能并拦截后端接口。
- 补充外部 IMAP 默认关闭、配置说明与回调地址文档。
2026-06-25 22:44:32 +08:00
LanQin 081cfad02d feat(external_imap): 强化 OAuth 外部邮箱授权校验并完善 Outlook 文案
- OAuth 授权改为以服务商返回的真实邮箱为准,补充 ID Token 解析与邮箱一致性校验,避免默认落到本地邮箱。
- 为 Gmail 和 Microsoft 365 / Outlook OAuth 增加必要的 OIDC scope,并补充相关测试覆盖。
- Web 端新增 OAuth 授权弹窗,支持填写外部邮箱与存储模式;同步更新账号展示信息。
- 同步修正 README 与部署说明中的 Outlook 表述。
2026-06-25 21:17:04 +08:00
LanQin_ 39f5249008 feat(mail): 增强外部 IMAP 接入能力。
- 新增 Gmail/Outlook OAuth2 授权接入、附件分片下载、服务端搜索与单文件夹同步历史。
- 扩展外部 IMAP 账户与同步任务数据结构,补充相关路由、配置和前端管理界面。
- 更新部署示例与文档,说明 OAuth 回调地址及后续邮件系统规划。
2026-06-25 20:20:37 +08:00
LanQin_ 11734bf119 feat(mail): 支持外部 IMAP 账号接入。
- 新增外部 IMAP 账号的加密存储、同步任务与远端直连能力。
- Web 端个人邮箱页和邮件列表页支持查看、测试、同步和切换外部邮箱。
- 补充相关配置项、环境变量说明和使用文档。
2026-06-25 17:09:46 +08:00
LanQin_ 1788d49a59 feat(maildir): 支持邮件写入与同步联动
- 为已发送邮件、草稿、收件与规则移动增加 maildir 文件写入、重写和删除流程。
- 补充 SQLite 仅有消息的回填逻辑,并在同步时补齐现有 raw_path。
- 调整 Dovecot 共享邮箱行为为订阅方式,避免重复创建文件夹。
- 新增覆盖发送、草稿、移动、删除和回填场景的测试。
2026-06-24 15:18:06 +08:00
LanQin_ d1876691dd fix(submission): 调整 SMTP 提交与发件授权逻辑。
- 启用 SMTP submission 时改为强制使用可读证书文件,并禁止使用容器自带测试证书。
- 收紧发件人校验,拒绝未授权的 From 地址,并支持别名多目标授权。
- 优化发送队列重入与重复消息处理,避免重复记录冲突。
- 让提交证书按需热加载,并稳定 MIME 头序列化顺序。
- 更新部署示例与文档,明确 submission 的证书配置要求。
2026-06-24 13:10:24 +08:00
LanQin_ 7b0717412c feat(app): 引入发送队列与可授权发件人
- Webmail/API 与第三方提交统一先写入已发送,再入发送队列异步投递。
- 新增队列重试、失败审计、陈旧任务恢复与发送状态追踪。
- 支持本人邮箱、启用别名和 `send_as_grants` 显式授权的 send-as。
- 更新 README 与部署文档,说明新的外发流程和排障方式。
2026-06-24 11:27:32 +08:00
LanQin_ 5c9bea075a chore(deploy): 优化 split stack 的 SMTP 配置
- 为 `docker-compose.stack.yml` 的 API 容器默认注入 `LANQIN_SMTP_HOST/PORT`,避免 Webmail 发信配置漂移。
- 补充 `.env.example` 和 `README`,说明 split stack 默认走 `postfix`,以及外部 SMTP 的覆盖方式。
- 新增 `sent_message_dedupe_keys` 表和相关读写逻辑,确保已发送消息去重可回收,并补充对应测试。
2026-06-24 11:03:01 +08:00
LanQin_ fa450c9f9b feat(mail): 支持 SMTP Submission 由 API 接管
- 新增 `465/587` 提交服务与 TLS 配置,支持 StartTLS 和隐式 TLS。
- 提交时校验认证邮箱、权限和 `From` 一致性,先写入 `Sent` 再转发到后端 SMTP。
- 增加 `Message-ID` 去重与失败回滚,避免重复保存发送副本。
- 调整部署与文档,移除 Postfix 的 submission 监听,改由 LanQin API 对外提供提交端口。
2026-06-24 10:47:16 +08:00
LanQin_ f2457c63ee refactor(mail): 统一邮件认证策略请求与返回格式。
- 将 `auth-policy` 调整为读取 `login`、`remote` 等字段,并返回数值型 `status`。
- 支持按邮箱定位用户与邮箱箱体,补充 IMAP/POP3 认证策略校验。
- 更新 Dovecot 与 Postfix 配置,移除原有的发件人 BCC 依赖。
- 补充相关测试并同步部署说明。
2026-06-23 21:52:05 +08:00
LanQin_ ce9d705df0 chore(deploy): 统一初始化 Dovecot 认证策略随机数
- 在部署入口脚本中生成并持久化 `auth_policy_hash_nonce`,避免每次启动变更。
- 同步更新 Dovecot 配置项为 `auth_policy_request_attributes`,并注入随机数值。
2026-06-23 15:07:15 +08:00
LanQin_ 1373479973 chore(dovecot): 优化邮箱别名与默认文件夹创建
- 添加 `recipient_delimiter = +` 以支持加号别名。
- 为 Drafts、Sent、Trash、Archive、Spam 配置自动创建。
2026-06-23 11:32:14 +08:00
LanQin_ 23b04bd343 feat(mail): 增强邮件限流与配额配置
- 新增 IMAP/POP3 事件表与清理任务,并接入 Dovecot auth policy。
- 暴露默认权限限额接口,前端权限组页面改为动态读取。
- 为 Dovecot 配置用户配额、连接数限制和 auth policy。
2026-06-23 11:25:38 +08:00
LanQin c872ed559d feat(admin): 增加关于页与发布版本信息
- 在系统设置中新增“关于”标签页,提供版本、仓库、Issues、文档和开源协议入口。
- 通过 Docker 构建参数注入版本号与发布链接,并在前端展示当前发布版本。
- 调整 GitHub Actions 与镜像构建流程,仅在 tag 发布时构建并发布带版本标识的镜像。
2026-06-21 02:23:40 +08:00
LanQin 9b70ba5927 build(api): 升级 Go 构建环境版本
- 将 `apps/api` 的 `go` 版本提升到 `1.25.0`,并同步更新依赖校验信息。
- 将 `deploy/all-in-one/Dockerfile` 和 `deploy/api.Dockerfile` 的构建镜像升级到 `golang:1.25-bookworm`。
2026-06-19 23:48:02 +08:00
LanQin_ bfc114bec3 feat(web): 升级前端依赖并重构邮件编辑器
- 将前端包管理切换为 `pnpm`,新增工作区与锁文件,并同步更新 CI 与 Docker 构建流程。
- 引入 `tiptap` 重构邮件正文编辑器,支持预览、富文本样式、链接/图片编辑与日程卡片插入。
- 发送与定时发送新增确认提示,补充空主题、空正文和附件提醒。
- 更新 `README.md` 与 `SHADCN_RULES.md` 中的安装与检查命令。
2026-06-17 14:58:56 +08:00
LanQin_ 6ebbb47012 fix(mail): 统一邮箱查询的大小写与别名匹配
- 将 Postfix/Dovecot 的 SQL 查询改为忽略大小写匹配,减少地址大小写导致的投递失败。
- 支持带 `+` 的详细地址解析,并基于域表关联定位邮箱目录。
- 启用 `lda_mailbox_autocreate`,确保投递到详细邮箱时可自动创建邮箱目录。
2026-06-17 14:15:03 +08:00
LanQin c21ebe43aa chore(deploy): 配置已发送邮件自动归档
- 为 `submission` 和 `smtps` 启用 `sender_bcc_maps`,将已认证发件人自动抄送到 `发件人+Sent@域名`。
- 补充 Postfix 与 Dovecot 的 `recipient_delimiter` 和 `lmtp_save_to_detail_mailbox` 配置,确保 `Sent` 文件夹可落盘保存。
- 更新部署文档,说明第三方客户端发信后的“已发送”同步流程。
2026-06-17 00:19:40 +08:00
LanQin 2029c8804a chore(deploy): 清理邮件服务 TLS 示例配置
- 移除 `docker-compose.yml` 中未启用的 TLS 证书环境变量示例,保持部署配置更简洁。
2026-06-17 00:08:36 +08:00
LanQin 811267e5b6 feat(deploy): 支持配置邮件客户端 TLS 证书
- 新增 `LANQIN_TLS_CERT_FILE` 和 `LANQIN_TLS_KEY_FILE`,让 Postfix 与 Dovecot 使用外部证书。
- 在单容器与分服务启动脚本中统一回退到 `localhost` 自签证书,并在证书不可读时给出告警。
- 补充部署文档与示例配置,说明第三方客户端校验证书的挂载方式。
2026-06-17 00:05:23 +08:00
LanQin 045132146b feat(mail): 增加签名管理与客户端配置
- 新增邮件签名的数据表、接口和前端管理页,支持全局/邮箱默认签名的创建、编辑、删除与查询。
- 写信时自动带入当前邮箱的默认签名,并优化手动输入内容时的覆盖行为。
- 补充第三方邮件客户端配置页,展示 IMAP/POP3/SMTP 连接信息及公共主机名。
- 扩展部署配置,开放 POP3S/SMTPS 端口并启用 Dovecot POP3 服务。
2026-06-16 23:15:35 +08:00
LanQin b0cc425f61 chore(mail): 优化邮件投递超时与服务配置
- 为 SMTP 连接与前端发信请求增加更明确的超时控制。
- 调整 Postfix 与 Rspamd 代理配置,缩短相关处理超时并统一运行参数。
2026-06-16 22:28:04 +08:00
LanQin 78e588264d chore(postfix): 配置 Postfix 的默认 TLS 证书
- 在 `postfix` 容器镜像中安装 `ssl-cert`。
- 为 `smtpd` 指定 snakeoil 证书和私钥路径,启用默认 TLS 配置。
2026-06-16 22:10:29 +08:00
LanQin 57fa0d0b57 chore(deploy): 兼容不同环境下的 rspamd 启动用户
- 在 `supervisord.conf` 中改为按用户存在情况动态选择 `rspamd` 启动参数。
- 当 `_rspamd` 和 `rspamd` 用户都不存在时,回退为 `--insecure` 启动。
2026-06-16 21:53:02 +08:00
LanQin 7788e93f0e chore(deploy): 调整 rspamd 与 dovecot 启动配置
- 为 `rspamd` 指定运行用户/组,提升容器内启动一致性。
- 将 `dovecot` 配置格式整理为多行块,保持配置可读性。
- 在 `rspamd` 入口脚本中按可用账号选择启动参数,并保留兜底启动方式。
2026-06-16 21:48:42 +08:00
LanQin_ 4fc933bc89 docs(deploy): 补充 SMTP 发信排查说明
- 说明单容器部署下 Webmail 发信的默认 Postfix 配置。
- 补充 `smtp delivery failed: EOF` 的排查命令与 `SMTP Require TLS` 注意事项。
- 调整 `deploy/postfix/master.cf` 中 `smtp/submission` 的监听标志,避免本机提交会话异常。
2026-06-16 21:21:56 +08:00
LanQin_ 5a1cc158a1 chore(deploy): 切换为本地目录挂载部署
- 将 `docker-compose` 中的数据、邮箱和 DKIM 存储从命名卷改为本地目录挂载。
- 删除不再需要的 `volumes` 声明,简化部署配置。
2026-06-16 10:52:04 +08:00
LanQin be8cd4be31 feat(mailbox): 支持用户自助申请邮箱
- 后端新增邮箱申请配置与接口,限制可申请域名并校验保留前缀。
- 管理后台系统设置增加自助申请邮箱开关、开放域名和禁止前缀配置。
- 个人中心新增申请邮箱入口,并在邮箱页优化当前邮箱切换与空列表处理。
- 补充相关测试与环境变量示例配置。
2026-06-16 00:51:41 +08:00
LanQin f8ff2a814b chore(deploy): 将 DKIM 组件切换为 Rspamd
- 用 Rspamd 替换 OpenDKIM 及其相关镜像、编排和启动脚本。
- 调整 Postfix、单容器镜像与 Docker 配置,改为对接 Rspamd milter。
- 增加 DKIM 私钥同步脚本与 Rspamd 本地配置,支持从 SQLite 周期导出签名密钥。
- 更新 API 启动与测试逻辑,兼容新的默认管理员邮箱与邮箱加载方式。
2026-06-15 23:41:21 +08:00
LanQin 2a5c4fcc0c chore(deploy): 优化 Docker 部署说明与安装脚本
- 将默认部署切换为拉取 GHCR 镜像,并补充本地源码构建的 override 用法。
- 新增单容器与多容器的构建编排文件,支持镜像版和源码构建版部署。
- 新增 `install.sh`,用于自动生成 `.env`、拉取镜像并启动服务。
2026-06-15 22:38:40 +08:00
LanQin f91b3143da chore(deploy): 更新 GHCR 默认镜像与部署说明
- 将部署示例中的默认镜像改为仓库对应的 GHCR 地址。
- 补充单容器部署时的镜像确认说明。
- 更新 GitHub Actions 的路径忽略规则,避免文档和示例配置变更触发发布流程。
2026-06-15 22:19:24 +08:00
LanQin 913a0ef420 chore(deploy): 增强 Docker 构建与发布流程
- 新增 GitHub Actions Docker 工作流,自动执行前端检查、后端测试并发布 GHCR 镜像。
- 为单容器与多容器部署补充镜像配置、使用说明和环境变量示例。
- 优化各 Dockerfile 的构建缓存与镜像体积,提升构建速度并减少无关文件进入镜像。
2026-06-15 22:05:41 +08:00
LanQin 1f964eefe2 feat(deploy): 增加单容器部署方案
- 新增 `deploy/all-in-one` 构建与启动配置,将 API、Web、Nginx、Postfix、Dovecot、OpenDKIM 集成到一个容器中。
- 调整 `deploy/docker-compose.yml` 默认指向单容器部署,并补充分体调试编排 `deploy/docker-compose.stack.yml`。
- 更新 `README.md`、`deploy/README.md` 和 `.env.example`,同步说明新的部署方式与本地投递配置。
2026-06-15 00:57:34 +08:00
LanQin 8a042ae3dc feat(admin): 扩展后台管理与登录安全能力。
- 新增用户、域名、邮箱、别名、邮件、系统设置与模板的管理接口和页面。
- 支持双因素认证、Turnstile、人机验证与管理员 SMTP 测试。
- 增加无人收件/未注册邮件归档、Maildir 同步和数据库迁移支持。
- 更新前端导航、个人中心 2FA 配置以及相关部署示例。
2026-06-15 00:38:51 +08:00