星线 Email 技术概览
星线 Email 提供公开邮箱入口、工作空间域名与邮箱管理、网页收发信和管理功能。网页服务负责身份、权限和元数据,邮件协议与邮箱内容由 Mailu、IMAP 和 SMTP 链路承载;网页可打开不等于邮件已能送达外部收件人。
入口与架构
公开入口为 星线 Email,个人邮箱域名为 stline.cn,协议主机默认 mx.thestarline.cn。服务端要求 Node.js 24 或以上,使用 TypeScript、Fastify、SQLite、ImapFlow、Nodemailer;客户端使用 React 与 Vite,构建后由同一服务提供静态文件。
| 层 | 主要数据与职责 |
|---|---|
| 网页客户端 | 邮箱、文件夹、邮件阅读与编辑、域名和邮箱管理 |
| 平台服务 | 工作空间、成员、会话、域名验证、配额、草稿、审计和发送计数 |
| Mailu 管理接口 | 创建和管理真实域名、邮箱、别名等协议侧资源 |
| IMAP / SMTP | 列表、正文与附件读取,邮件投递请求 |
SQLite 启用 WAL、外键与忙等待,记录工作空间、用户、会话、域名、邮箱、别名、审计、发送用量和注册预留等元数据。邮件正文不能从这些平台表推断为完整备份;正式邮箱内容依赖协议侧存储。本机进程中的工作空间互斥只约束同一服务进程,不是分布式锁。
身份、授权与会话
工作空间管理身份与具体邮箱的协议访问凭据分开管理。管理接口按工作空间限制查询和修改,普通邮箱成员不能取得客户管理权限;被暂停的工作空间会被拒绝。邮箱禁用或密码变更会更新认证版本并撤销相关会话,不能继续使用旧的邮箱凭据缓存。
平台会话默认 24 小时,存储令牌摘要;打开邮箱时,服务端将用于协议登录的密码加密后绑定会话与邮箱认证版本,默认 2 小时到期。该机制服务于服务端连接 IMAP/SMTP,不是邮件端到端加密。修改邮箱密码需要当前密码,完成后要求重新登录邮箱。邮箱退出与整个平台会话退出是不同操作。
生产配置拒绝演示模式,要求精确 HTTPS Origin 和合格的凭据加密密钥。默认 IMAP 为 993,SMTP 为 465 并启用 TLS;受信代理范围须显式配置,不能将任意来源都视作可信代理。密钥与 Mailu 管理凭据只属于服务端配置。
域名和邮箱的创建流程
- 客户在工作空间内添加域名,取得
_starline-verification.<域名>TXT 验证要求。 - 服务端查询并核对所有权证明。已被其他工作空间有效占用的域名不能重复认领。
- 验证通过后调用 Mailu 创建协议侧域名,成功后才进入可用状态。
- 分别检查 MX、SPF、DKIM、DMARC;所有权验证与投递 DNS 状态是不同结果。
- 在已启用域名下创建邮箱,检查本地部分、密码与配额;分配总额不能超过工作空间配额。
邮箱本地部分按小写 ASCII 校验,长度 1–64,不接受连续句点。别名目的地址必须是当前工作空间内有效邮箱,最多 50 个;仍被别名引用的邮箱需要先处理引用关系再删除。公开个人邮箱域名受保护,不能由普通客户接管。
邮件、草稿与附件
邮件身份由 folder、uidValidity、uid 共同确定,UID 不能当作跨文件夹永久 ID。列表每页读取 50 封;读取、标记和附件请求均重新校验会话、邮箱与文件夹上下文。网页支持回复、全部回复、抄送、密送、转发、星标、归档和草稿。
默认附件总大小配置为 20 MiB,每次最多 10 个文件,仍受上游邮件服务器大小限制。发送时将收件、抄送和密送地址规范化去重,三类合计最多 20 个收件人。草稿按工作空间和邮箱隔离;其字段包括收件人、抄送、密送、主题、文本和附件描述。草稿中的每类地址数组最多 20 项,主题最多 998 字符,文本的字符串长度上限为 1048576,按 JavaScript 字符串长度校验;不能把它直接换算为 UTF-8 字节,也不能把网页限制当作所有外部 SMTP 客户端的限制。
发送计数按收件人数计算,包含网站发送流程中的不确定结果;外部 SMTP 客户端的用量需要协议侧另行限制。SMTP 接受请求只表示上游受理,最终投递、退信和垃圾邮件判定仍可能不同。发送成功后保存“已发送”副本失败时,不能自动重新发送邮件,否则可能造成重复投递。
PWA、默认值与失败处理
PWA 缓存只覆盖公开页面壳、清单和静态资源,跳过 /api/、非 GET 与跨域请求,不缓存邮件、凭据或附件。浏览器本机另存紧凑布局偏好;安装 PWA 不会扩大邮箱权限或启用注册。
个人邮箱默认配额为 1 GiB、网站每日 50 个收件人;生产环境的公开注册默认关闭,是否开放以部署配置与真实验收为准。域名未验证、DNS 查询失败、配额不足、协议认证失效、上游不可用和邮箱禁用必须分别展示,不能用演示数据替代真实结果。健康接口返回进程可用也不能证明对外 SMTP 投递、PTR、DKIM 或第三方中继已验收。
资料依据 2026-10-23 源码整理。部署仍需验证真实 DNS、Mailu 管理、网页及外部客户端收发信、附件和退出重登,不能只凭页面或健康接口判断邮件可用。公开政策见 隐私中心,使用问题见 支持中心。
源码依据
实现位于 mail-platform/server/config.ts、app.ts、store.ts、auth.ts、crypto.ts、resources.ts、domains.ts、mail.ts、mail-protocol.ts、service-health.ts,以及 client/src/Pwa.tsx 和 client/public/sw.js。仓库提供单元、协议、容器与端到端验证入口,历史结果应与对应版本和环境一并查看。