100 lines
5.3 KiB
Markdown
100 lines
5.3 KiB
Markdown
# Smail
|
|
This project is forked and developed based on PMail.
|
|
|
|
Comprehensively refactored and upgraded with a unified single-database architecture, enterprise-grade multi-factor authentication (2FA), a responsive modern Web UI across all devices, automated one-click deployment, and zero-downtime hot updates.
|
|
|
|
> One server, one domain, one command, and one minute — deploy a high-reputation, 10/10 deliverability enterprise-grade mail server with ease.
|
|
|
|
---
|
|
|
|
## Core Advantages & Features
|
|
|
|
### 1. Unified Single-Database Architecture (SQLite / MySQL / PostgreSQL)
|
|
- **Zero Database Fragmentation**: Business emails, user accounts, configuration histories, and system audit logs reside in a single chosen database.
|
|
- **Embedded Local SQLite by Default**: Ready to run out of the box with zero external dependencies.
|
|
- **Enterprise High-Concurrency Support**: Full native support for external MySQL 8.x and PostgreSQL 14+, featuring seamless zero-downtime database migration.
|
|
|
|
### 2. Extremely Low Resource Usage & High Performance
|
|
- **Go + Modern Vue 3 Architecture**: Backend binaries directly embed all frontend web assets and plugin runtimes.
|
|
- **Ultra-Lightweight Footprint**: Typically runs on just 20MB - 30MB of RAM, making it exceptionally smooth on budget-friendly cloud instances (1 core, 512MB / 1GB RAM).
|
|
|
|
### 3. Enterprise-Grade Security & Multi-Factor Authentication (2FA)
|
|
- **Industrial-Grade 2FA**: Supports time-based **TOTP** (Google / Microsoft Authenticator) and hardware passkeys (**WebAuthn / Passkey**).
|
|
- **Dedicated Protocol Credentials**:
|
|
- **Client-Specific Credentials**: Secure credentials for third-party email clients (Outlook, Foxmail, iOS/Android Mail) without exposing master passwords.
|
|
- **System Notification Credentials**: Independent rate-limited credentials designed for system notifications and webhook dispatching.
|
|
- **Rigorous Static Security Audits**: 100% passed `gosec` vulnerability scanning and concurrency data-race sanitization.
|
|
|
|
### 4. 10/10 Email Deliverability Reputation
|
|
- **Modern Anti-Spam Standards**: Built-in **DKIM** signing, strict **SPF** alignment verification, and **DMARC** policy enforcement.
|
|
- **List-Unsubscribe Headers**: Strictly compliant with RFC standards, minimizing spam flagging by Gmail, Outlook, QQ, and NetEase.
|
|
- **Smart Outbound SMTP Relay**: Dedicated relay management to ensure smooth delivery even on VPS providers with port 25 restricted.
|
|
|
|
### 5. Automated SSL Certificate Lifecycle Management
|
|
- **ACME Protocol Integration**: Automated issuance and silent auto-renewal via HTTP-01 and major DNS APIs (Aliyun DNS, Tencent Cloud DNS, etc.).
|
|
- **Apex & Wildcard Coverage**: Covers both root domains and subdomains automatically, while also supporting custom certificate hot reloading.
|
|
|
|
### 6. Modern Adaptive Responsive Web Interface
|
|
- **Dual-Pane Responsive Layout**: Perfectly tailored for desktop ultrawide monitors, laptops, tablets, and mobile devices.
|
|
- **Full-Featured Mailbox**: Includes configuration-free instant multi-language translation, rich text WYSIWYG editor, sender blacklists, and flexible routing rules.
|
|
|
|
---
|
|
|
|
## Quick Installation & Deployment
|
|
|
|
### One-Click Installation
|
|
Download the latest release package for your platform (e.g., `Smail_V2.14.0_linux_amd64.tar.gz`) and run:
|
|
|
|
```bash
|
|
# 1. Extract package (e.g. to /smail)
|
|
tar -zxvf Smail_V2.14.0_linux_amd64.tar.gz -C /smail
|
|
cd /smail/deploy
|
|
|
|
# 2. Grant execution permissions and start installation
|
|
chmod +x install-systemd.sh update-systemd.sh
|
|
./install-systemd.sh
|
|
```
|
|
|
|
The script automatically:
|
|
- Locks the unpacked directory as the dedicated installation path;
|
|
- Creates a dedicated system user `smail` with sandboxed permissions;
|
|
- Automatically configures the firewall (ports 80, 443, 25, 465, 587, 110, 995, 143, 993);
|
|
- Registers the `smail.service` systemd service and enables startup on boot;
|
|
- Outputs startup status and the web initialization URL (`http://<Server-IP>`).
|
|
|
|
### Smooth Online Updates
|
|
To update to a new release without losing configuration or database records:
|
|
```bash
|
|
cd /smail/deploy
|
|
./update-systemd.sh
|
|
```
|
|
|
|
---
|
|
|
|
## Releases & CI/CD Workflows
|
|
|
|
Automated builds and releases are maintained across both repositories:
|
|
|
|
- **GitHub Repository**: [https://github.com/xuanspark/Smail.git](https://github.com/xuanspark/Smail.git)
|
|
- **PCUX Git Repository**: [https://git.pcux.cn/xuans/Smail.git](https://git.pcux.cn/xuans/Smail.git)
|
|
|
|
Official multi-platform releases generated by CI/CD workflows:
|
|
- **Linux**: `Smail_V<version>_linux_amd64.tar.gz` / `Smail_V<version>_linux_arm64.tar.gz`
|
|
- **Windows**: `Smail_V<version>_windows_amd64.zip` / `Smail_V<version>_windows_arm64.zip`
|
|
- **macOS**: `Smail_V<version>_darwin_amd64.tar.gz` / `Smail_V<version>_darwin_arm64.tar.gz`
|
|
|
|
---
|
|
|
|
## Developer & Integration Guides
|
|
|
|
- 📘 **[Backend API Documentation](docs/后端接口说明文档.md)**: Specifications for HTTP REST APIs, authentication, CSRF security, and database migrations.
|
|
- 🔌 **[Plugin Development Guide](docs/插件开发说明.md)**: Architecture details, IPC standard JSON protocol, anti-spam filters, and notification hook tutorials.
|
|
- 🌐 **[Nginx Reverse Proxy & SSL Deployment](docs/Nginx反代与证书部署说明.md)**: Reverse proxy and SSL management guide.
|
|
|
|
---
|
|
|
|
## License & Acknowledgements
|
|
|
|
- Forked and developed based on [PMail](https://github.com/JMisFilter/pmail).
|
|
- Distributed under open source licenses.
|