Initial commit: WpywMail 自建邮件系统:.NET 8 原生 SMTP/IMAP 服务端(DKIM 签名、SPF/DKIM/DMARC 入站校验、SQLite 存储、完整账号体系)、Node 服务端、WinUI 3 客户端与 Web 前端

This commit is contained in:
WpyQwq
2026-09-19 11:19:40 +08:00
commit b8814a7615
84 changed files with 21197 additions and 0 deletions
+60
View File
@@ -0,0 +1,60 @@
# wpyw.mail
服务端和客户端分离。当前优先维护独立服务端,服务端代码和启动说明位于 [`server/`](H:/Codex/2026-09-08/windows-wpyw-site-cf-web-4/server/)。
服务端提供 SMTP 收信、SMTP Submission 发信、本地邮件存储和 REST API;客户端后续单独开发,不参与服务端启动。
## 启动
```powershell
npm install
Copy-Item .env.example .env
notepad .env
npm run dev
```
开发时访问 `http://localhost:5173`,生产构建后运行:
```powershell
npm run build
npm start
```
默认 Web API 监听 `8787`,SMTP 监听 `25`,Submission 监听 `587`。
## 重要配置
至少修改 `.env` 中的:
```dotenv
[email protected]
MAIL_PASSWORD=一个足够长的密码
MAIL_DATA_DIR=H:\\MailData
```
如果服务器不能直接连接外部 MX 的 25 端口,可以配置 SMTP 中继:
```dotenv
SMTP_RELAY_HOST=smtp.example.com
SMTP_RELAY_PORT=587
SMTP_RELAY_USER=your-user
SMTP_RELAY_PASSWORD=your-password
SMTP_RELAY_SECURE=false
```
## Cloudflare Tunnel
不要把 SMTP 或 IMAP 通过现有 Web Tunnel 暴露给普通客户端。建议增加单独的 Webmail hostname:
```yaml
ingress:
- hostname: webmail.wpyw.site
service: http://127.0.0.1:5173
- service: http_status:404
```
`mail.wpyw.site` 保持 DNS only,继续直接指向邮件服务器公网 IP。MX 记录继续指向 `mail.wpyw.site`。
## 当前版本边界
这是一个可运行的单账户基础服务,不等同于成熟商业邮件系统。正式长期运行前,还应增加 DKIM 签名、DMARC 报告、反垃圾策略、速率限制、持久化会话、多账户管理、附件下载鉴权、备份和监控。不要把它配置成 Open Relay。