更新日志
2026-09-06 · 安全与一致性修复
账号、注册与身份
- 强制启用邮箱认证的注册先验证找回邮箱,增加同一邮箱验证码频率和来源 IP 每小时/每日注册限制。
- 本地注册页从禁止缓存的公开策略实时读取“邮箱验证”状态:开启时将邮箱标为必填并在提交前校验,关闭时明确显示为可选;字段缺失时安全默认为开启。OAuth 首次建号流程不受这个开关影响。
- 将注册、密码重置、找回邮箱绑定和安全提醒改为独立“系统 SMTP”;发送失败不再回退到服务器直接发信,并支持候选配置测试成功后保存。
- Cloudflare Turnstile 覆盖登录、注册、验证码、找回密码、OAuth 登录和 NodeLoc 绑定发起;密钥不完整或验证服务不可用时故障关闭。
- 修复后台保存配置后环境变量无法紧急关闭 Turnstile 的问题;只有显式
false/0/no/off会覆盖数据库启用状态,空值或拼写错误不会意外绕过验证。 - 密码修改、密码找回、管理员重置密码、重置 2FA 和强制退出使用数据库持久化令牌边界,Redis 丢失后旧会话也不会恢复。
- 首次引导按真实邮箱状态判定,已有邮箱用户不会重复创建;管理员账号直接进入后台。
- 普通账号、NodeLoc 注册来源、NodeLoc 真实
TL0–TL4和本站配额L0–L4分开显示。普通账号绑定 NodeLoc 后仍为普通账号,并同步真实等级。 - NodeLoc 身份登录与绑定使用同一数据库锁和规范化唯一键,禁止并发创建重复账号、跨用户抢绑或用另一个 NodeLoc 身份覆盖。
- NodeLoc 登录同步与账号更新在同一事务提交,较早开始的后台同步不会覆盖更新的授权登录结果;OAuth 登录返回的找回邮箱验证状态按数据库真实值展示。
- 最低 NodeLoc 等级只约束新账号和首次绑定;既有用户不会因策略提高而被禁止登录。
邮件、共享与配额
- 邮箱共享统一为只读,权限覆盖列表、搜索、详情、会话、原文、附件和缩略图,并严格执行文件夹/标签范围与阅读记录。
- 个人与组织邮箱的创建、删除、转让、存储和归属校验改为事务内二次检查,降低并发越权或超配额风险。
- 个人每日发信按 To、Cc、Bcc 收件人数原子预留;企业邮箱改为全组织共享企业套餐每日额度,不占受派成员个人额度或能量。通道额度和存储空间也在外部投递前预留并按结果结算。
- 入站 SMTP 增加短窗口原始内容指纹,减少上游重试造成的重复副本。
- rspamd 判定为高风险的来信改为完整保存到邮箱隔离区。邮箱所有者可以安全预览、放行到收件箱或永久删除;隔离内容计入存储配额并按管理员设置的保留天数自动清理。
- 邮箱级外部转发正式接入收信流程;规则转发仍只允许本人已验证的找回邮箱。自动转发会消耗正常发信配额与能量、记录投递结果,并通过自动邮件标记与自转发校验阻止循环。
- 自动回复统一执行个人/组织每日额度和能量预留与结算,并用数据库级 24 小时发送声明在多实例间去重;发送失败可重试,远端已接受后的进程中断会保守避免重复回复。
- 个人清理和“全部粉碎”严格限定为本人个人邮箱;全部粉碎覆盖所选邮箱的所有文件夹、附件和隔离邮件,但不能处理企业邮箱。
- 默认签名增加数据库唯一约束;删除邮箱会级联删除邮箱签名,不再误变成全局签名。
- 个人图床密钥、出站通道、SMTP、对象存储、支付、Telegram 和 TLS 等敏感设置统一加密保存且不回显。
- 规则、联系人、附件、邮件搜索、组织邮箱和协议访问修正前后台字段、空值、所有权与分页边界。
管理后台与安全
- 后台用户页分别展示注册来源、NodeLoc 实际等级、系统配额等级、找回邮箱状态和有效配额,并补齐筛选、搜索、用量与高风险操作。
- 组织品牌只在全局启用、组织与企业套餐都处于生效或宽限状态且域名已验证时公开匹配;组织暂停或套餐失效后恢复平台品牌。
- 管理员代入会话禁止修改密码、TOTP、找回邮箱、OAuth、应用专用密码和 API Key。
- 系统设置按分区独立保存,覆盖注册 SMTP、Turnstile、配额等级、第三方映射、图床、附件存储、Telegram、出站通道、协议限制、TLS 和 rspamd。
- 修复升级后旧浏览器分块导致侧边栏点击无反应的问题;检测到旧分块加载失败时仅刷新目标页面一次。
- Telegram webhook 不再把 Bot Token 放在 URL 中,改用 Secret Token 请求头;对外错误和服务日志不泄露凭据 URL。
- OAuth Token 与用户信息请求增加超时和响应大小上限,对外不再返回提供方原始敏感错误。
- 对外
5xx改为通用信息,数据库和第三方详情只写受限日志;删除用户时保留必要审计历史。 - Nginx 增加可信代理 IP 规范化、HTTPS 跳转、HSTS、内容安全策略和隐私日志建议,防止伪造来源 IP 与查询参数泄露。
数据、部署与验证
- 数据库迁移扩展到
065:在既有安全与一致性约束上增加持久化隔离邮件,以及独立的组织每日发信用量和预留账本。 - 生产环境缺失或格式错误的
SENDCHANNEL_KEK_HEX会拒绝启动;安装与部署脚本不再自动执行远程脚本或git pull。 - seed 只创建缺失的管理员,不重置已有管理员密码、权限或启用状态。
- Docker 基础镜像固定摘要,构建使用锁定依赖;后端测试、静态检查、前端与官网检查和构建纳入发布验证。
2026-09-05 · 草丛 Mail 平台升级
产品与界面
- 品牌统一为中文“草丛 Mail”、英文“CaoCong Mail”,恢复原项目闪电标志。
- 新增独立产品官网,邮箱应用迁移到
/app/,保留旧地址兼容跳转。 - 完成中英文界面、移动端布局和本地化检查。
账号与安全
- 新增可配置的邮箱注册、邮箱验证码、找回密码和绑定邮箱流程。
- OAuth 提供方改为后台可配置,保留 NodeLoc 旧回调地址兼容。
- 增加 TOTP 两步验证、强制退出、管理员重置 2FA 和登录审计。
- 登录接口加强限流;访问令牌和刷新令牌用途分离。
邮箱与协作
- 加强邮件搜索、会话、原文查看、批量处理、附件下载和导入导出。
- 增加邮箱排序、应用专用密码、自动回复、共享邀请与活动记录。
- 增加邮箱转让、延迟清理、永久保留和彻底清理流程。
- 修复 IMAP UID 完整性,并优化大邮箱 POP3 列表性能。
企业邮局
- 新增组织、所有者/管理员/成员角色、自有域名验证和企业邮箱管理。
- 支持组织品牌、Logo、主色和自定义发信通道。
- 增加企业套餐、订阅生命周期、域名/邮箱/存储配额。
发信与安全
- 增加域名发信审批、用户发信申请、直接 MX 与中继通道策略。
- 完善 DKIM 签名、DNS 健康检查、收件人预检、黑名单和抑制名单。
- 增加初版“被拦截邮件”记录页。
套餐、支付与通知
- 新增个人 Pro 与企业套餐、订单和支付回调,并提供个人订阅取消/恢复。
- 新增钱包、人民币充值、交易流水和兑换码。
- 新增站内通知、未读计数、系统公告、浏览器与 Telegram 通知。
开发与运维
- 新增个人 API 密钥、作用域控制、开发者页面和 OpenAPI 说明。
- 数据库迁移扩展到 047,并使迁移失败时服务停止启动,避免半迁移运行。
- Docker 构建改为锁定依赖安装,加入官网服务和同域 Nginx 路由。
- 保留原有用户、邮箱和邮件数据完成原地升级。
- 更新
mail.to9.us的 IMAP、POP3 与 SMTP TLS 证书并配置自动续期。
2026-05 · 原版维护
- 增加全部邮箱视图、原始邮件查看和邮箱选择器。
- 完善标签、白名单、签名、图床、自动回复和安全提示说明。
- 修复邮箱列表可空字段及设置页切换问题。
- 建立 GitHub Pages 文档站。