96822486af472e48eee4fda30a507359df8cb1d4
- 新增标签数据结构、接口与路由,支持创建/删除邮件标签、按标签筛选邮件和查看星标邮件。 - 邮件详情与列表补充标签展示,发送/移动/删除/已读等操作同步刷新相关数据。 - 前端重构邮件页,加入标签侧栏、标签管理弹层,并将写信编辑器升级为 Markdown 富文本。 - 顺带优化登录态超时处理与部分导航入口,调整前端依赖版本。
LanQin Email
LanQin Email 是一个自建邮箱 Webmail MVP:React/Vite + shadcn 风格组件前端,Go + SQLite 后端,默认使用单容器集成 Postfix、Dovecot、OpenDKIM。
快速开发
后端
cd apps/api
go mod tidy
go test ./...
go run ./cmd/server
默认管理员:
- 邮箱:
admin@lanqin.local - 密码:
ChangeMe123!
生产环境请通过 LANQIN_ADMIN_PASSWORD 覆盖。
前端
cd apps/web
npm install
npm run dev
前端默认代理 /api 到 http://localhost:8080。
Web UI 规则
apps/web 的业务页面和业务组件必须使用官方 shadcn/ui 组件源码。新增 UI primitive 前先执行:
cd apps/web
npx shadcn@latest add <component>
npm run check:shadcn
详细规则见 apps/web/SHADCN_RULES.md。npm run check:shadcn 是提交前的实际检查入口。
Docker 部署
默认单容器部署:
cd deploy
cp .env.example .env
docker compose up -d --build
这个容器内部集成:API、Web、Nginx、Postfix、Dovecot、OpenDKIM。
如需多容器调试版:
cd deploy
docker compose -f docker-compose.stack.yml up -d --build
真实公网收发前需要正确配置 MX/SPF/DKIM/DMARC,并确认云厂商开放 25/587/993 端口。
V1 能力
- 管理员/普通用户登录
- 多域名、邮箱账号、别名管理
- DNS 记录展示和检测
- Webmail:文件夹、邮件列表、阅读、写信、附件、搜索、已读、星标、移动、删除
- 开发环境本地投递:给系统内邮箱发送会直接写入对方 Inbox,便于无公网邮件栈验证
当前收发说明
- 本地开发:系统内邮箱互发可直接使用;未配置
LANQIN_SMTP_HOST时,外部收件人不会真正投递到公网。 - 服务器部署:
deploy/.env.example默认使用LANQIN_SMTP_HOST=127.0.0.1,发件会交给同容器内 Postfix。 - 收件同步:Postfix/Dovecot 收到的 Maildir 邮件会由 API 的 Maildir worker 同步到 SQLite 后展示在 Webmail。
- Maildir worker 通过
LANQIN_MAILDIR_ROOT和LANQIN_MAILDIR_SCAN_SECONDS控制,默认服务器路径为/var/mail/vhosts。
Languages
Go
53.8%
TypeScript
39.5%
Shell
5.7%
CSS
0.4%
Dockerfile
0.3%
Other
0.3%