wpyw.mail server
这是独立的邮箱服务端,不包含任何 Webmail 客户端代码。
当前服务端提供:
- SMTP 25:接收发往
@wpyw.site的邮件 - SMTP Submission 587:登录认证后发信
- REST API:供未来独立客户端使用
- 本地 JSON 邮件存储和附件落盘
- 可选外部 SMTP 中继
启动
在 server/ 目录执行:
npm install
Copy-Item .env.example .env
notepad .env
npm start
必须设置 MAIL_PASSWORD,服务端不会使用默认密码启动。
默认监听:
REST API 8787
SMTP 25
SMTP Submission 587
测试时可以临时改成非特权端口:
$env:WEB_PORT='8787'
$env:SMTP_PORT='2525'
$env:SUBMISSION_PORT='2587'
npm start
API
登录:
POST /api/login
Content-Type: application/json
{"email":"[email protected]","password":"你的密码"}
之后把返回的 token 放入请求头:
Authorization: Bearer <token>
主要接口:
GET /api/health
GET /api/config
GET /api/me
GET /api/messages?folder=inbox
GET /api/messages/:id
POST /api/send
POST /api/logout
发信请求示例:
{
"to": "[email protected]",
"subject": "测试邮件",
"text": "邮件正文"
}
Cloudflare 和端口
mail.wpyw.site 应保持 DNS only,MX 指向 mail.wpyw.site。网站或未来的 Webmail 客户端可以继续通过 Cloudflare Tunnel,但 SMTP 25/587 直接连接服务器公网 IP。
当前边界
这是第一版服务端:已经具备收信、发信和客户端 API,但还没有实现 IMAP/POP3、多用户、DKIM 签名、DMARC 报告、反垃圾、配额和管理后台。未来客户端应通过 REST API 或后续增加的 IMAP 服务访问邮箱。
不要把它配置成 Open Relay。正式公网使用前,应配置 mail.wpyw.site 的 TLS 证书、PTR 反向解析、SPF、DKIM、DMARC,并优先考虑 SMTP 中继以提高投递率。
当前没有监听 993/995,因此暂时不要把它当作 Outlook/手机的 IMAP/POP3 服务器使用;第一版客户端应通过 REST API 连接。