Smail/README.md
smail 3015081e19
Some checks are pending
Build and Release / build (amd64, darwin) (push) Blocked by required conditions
Build and Release / build (amd64, linux) (push) Blocked by required conditions
Build and Release / build (amd64, windows) (push) Blocked by required conditions
Build and Release / build (arm64, darwin) (push) Blocked by required conditions
Build and Release / build (arm64, linux) (push) Blocked by required conditions
Build and Release / build (arm64, windows) (push) Blocked by required conditions
Build and Release / security (push) Waiting to run
Security Checks / security (push) Waiting to run
docs: 将 README.md 调整为中文版并移除 README_CN.md
2026-10-19 13:47:39 +08:00

106 lines
6.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Smail
本项目基于 PMail 二次修改开发。
全面重构并升级了架构级单数据库统一引擎、企业级多因素安全认证、自适应全设备响应式 Web 界面、极简全自动部署与平滑无感热更新体系。
> 一台服务器、一个域名、一行命令、一分钟时间,轻松搭建高信誉、满分送达率的企业级域名邮箱系统。
---
## 项目核心优势与特性
### 1. 架构级单数据库统一(SQLite / MySQL / PostgreSQL 三选一)
- **彻底消除多库分散**:业务邮件、系统账户、配置历史与运行审计日志完全统一于同一个选定数据库。
- **免运维本地单文件**:默认搭载开箱即用的嵌入式 SQLite 引擎,零配置即可启动;
- **高并发与企业级扩展**:原生支持外部 MySQL 8.x / PostgreSQL 14+ 生产级集群,并支持系统在线、无停机跨数据库引擎平滑热迁移。
### 2. 极致资源占用与极速运行性能
- **Go + 现代化 Vue 3 极速架构**:后端二进制直接静态内嵌全量 Web 前端资源与插件运行时,单文件即可独立启动。
- **超低内存占用**:服务常态运行内存仅占用 20MB ~ 30MB 左右,在 1核 512MB / 1GB 等轻量级高性价比云主机上亦能极其流畅运行。
### 3. 企业级多重安全架构与 2FA 多因素认证
- **工业级 2FA 认证**:支持基于时间同步的 **TOTP 动态密码**(Google Authenticator / 微软 Authenticator)与基于硬件安全密钥的 **Passkey / WebAuthn** 登录。
- **协议专属授权凭据**:
- **客户端发信专属授权码**:供手机、Mac、Foxmail 等邮件客户端接入,主账号密码绝不外泄;
- **系统通知发信授权**:专为系统报警、用户注册等第三方自动化调用提供独立限流凭据。
- **严苛静态安全代码审计**:全面修复内存并发竞态(Data Race),100% 深度通过 `gosec`(安全缺陷审计)与 `govulncheck`(漏洞检索)。
### 4. 10/10 满分邮件送达率信誉机制
- **主流反垃圾邮件协议全覆盖**:严格遵循最新现代邮件交付标准,内置标准 **DKIM** 签名认证、**SPF** 动态来源校验与 **DMARC** 报告分析对齐策略。
- **RFC 规范退订标头**:标准注入 **List-Unsubscribe** 标头,极大降低被 Gmail、QQ、网易等主流公共邮件服务商拒信或丢入垃圾箱的风险。
- **智能出站 SMTP 中继路由**:针对 25 端口被封禁的云服务器(如阿里云、腾讯云等),支持独立可视化配置第三方 SMTP 中继出站,保障邮件 100% 稳定投递。
### 5. 全自动 Let's Encrypt 证书生命周期管理
- **ACME 协议深度集成**:原生支持基于 HTTP-01 验证及主流云服务商(阿里云 DNS、腾讯云 DNS 等)DNS API 自动申请与静默轮换续签。
- **主域名与泛域名一网打尽**:证书同时覆盖根域名与子域名,亦支持外部自定义证书实时热更新加载。
### 6. 全新自适应响应式 Web 界面与富文本邮件台
- **现代化双栏响应式布局**:自适应无缝契合桌面超宽屏、笔记本、平板与手机移动端。
- **集成功能完善**:自带免配置多语言即时翻译、所见即所得富文本邮件编辑器、快速导出安全恢复码、发件人黑白名单与灵活收信分发规则。
---
## 快速安装与部署
Smail 官方发布包内已随包附带自动化运维工具,安装与更新极其简便:
### 全新一键安装部署
下载对应平台的最新发布包(例如 `Smail_V2.14.0_linux_amd64.tar.gz`),解压后直接执行:
```bash
# 1. 解压发布包(以解压到 /smail 为例)
tar -zxvf Smail_V2.14.0_linux_amd64.tar.gz -C /smail
cd /smail/deploy
# 2. 赋予脚本执行权限并启动全新部署
chmod +x install-systemd.sh update-systemd.sh
./install-systemd.sh
```
脚本将全自动完成:
- 识别并锁定当前解压目录为唯一安装路径;
- 创建专用的独立系统运行用户 `smail` 并安全授权;
- 自动检测并配置网络防火墙(放行 80, 443, 25, 465, 587, 110, 995, 143, 993 端口);
- 注册系统级服务 `smail.service` 并配置开机自启;
- 实时输出启动日志与 Web 初始化配置地址(默认 `http://<您的服务器IP>`)。
### 平滑在线更新
当发布新版本时,无需破坏旧数据与数据库:
```bash
# 进入部署目录直接运行平滑更新脚本
cd /smail/deploy
./update-systemd.sh
```
更新脚本会自动校验最新二进制程序、无感平滑重启主服务,并完整保留您原有的配置文件、证书与邮件数据。
---
## 自动化构建与工作流 (CI/CD Releases)
项目在以下两个官方仓库保持同步构建与发布工作流:
- **GitHub 仓库**:[https://github.com/xuanspark/Smail.git](https://github.com/xuanspark/Smail.git)
- **PCUX Git 仓库**:[https://git.pcux.cn/xuans/Smail.git](https://git.pcux.cn/xuans/Smail.git)
每个版本均由 CI/CD 自动化流水线生成对应各平台的完整发布包(均已完整打包 Web 前端资产与核心插件):
- **Linux 平台**:`Smail_V<版本号>_linux_amd64.tar.gz` / `Smail_V<版本号>_linux_arm64.tar.gz`
- **Windows 平台**:`Smail_V<版本号>_windows_amd64.zip` / `Smail_V<版本号>_windows_arm64.zip`
- **macOS 平台**:`Smail_V<版本号>_darwin_amd64.tar.gz` / `Smail_V<版本号>_darwin_arm64.tar.gz`
---
## 开发者与集成文档
系统针对外部二次开发与集成提供详尽文档:
- 📘 **[后端接口说明文档](docs/后端接口说明文档.md)**:包含全量 HTTP API 接口、身份验证、CSRF 防护、邮件收发与系统在线无感迁移规范;
- 🔌 **[插件开发说明文档](docs/插件开发说明.md)**:包含独立子进程架构、标准 Stdio/JSON 通信协议、反垃圾过滤与即时通讯推送 Hook 开发教程;
- 🌐 **[Nginx反代与证书部署说明](docs/Nginx反代与证书部署说明.md)**:外部高防 CDN、Nginx 反向代理配置与证书托管指引。
---
## 开源协议与鸣谢
- 本项目基于开源项目 [PMail](https://github.com/JMisFilter/pmail) 进行二次修改与持续演进。
- 遵循相应开源许可协议分发。