chore(deploy): 优化 split stack 的 SMTP 配置
- 为 `docker-compose.stack.yml` 的 API 容器默认注入 `LANQIN_SMTP_HOST/PORT`,避免 Webmail 发信配置漂移。 - 补充 `.env.example` 和 `README`,说明 split stack 默认走 `postfix`,以及外部 SMTP 的覆盖方式。 - 新增 `sent_message_dedupe_keys` 表和相关读写逻辑,确保已发送消息去重可回收,并补充对应测试。
This commit is contained in:
@@ -84,9 +84,13 @@ LANQIN_TURNSTILE_SECRET_KEY=
|
||||
# SMTP 发信
|
||||
# =========================
|
||||
# 单容器部署默认提交给容器内 Postfix。
|
||||
# Split stack 会由 docker-compose.stack.yml 默认覆盖为 postfix:25。
|
||||
# 如需在 split stack 使用外部 SMTP,可设置 LANQIN_STACK_SMTP_HOST / LANQIN_STACK_SMTP_PORT。
|
||||
# 如果要走外部 SMTP,把 Host/Port/Username/Password 改成外部服务配置。
|
||||
LANQIN_SMTP_HOST=127.0.0.1
|
||||
LANQIN_SMTP_PORT=25
|
||||
LANQIN_STACK_SMTP_HOST=
|
||||
LANQIN_STACK_SMTP_PORT=
|
||||
LANQIN_SMTP_USERNAME=
|
||||
LANQIN_SMTP_PASSWORD=
|
||||
|
||||
|
||||
@@ -170,6 +170,8 @@ LANQIN_SMTP_PORT=25
|
||||
LANQIN_SMTP_REQUIRE_TLS=false
|
||||
```
|
||||
|
||||
Split stack 使用 `docker-compose.stack.yml` 时,API 容器默认会把 `LANQIN_SMTP_HOST` 覆盖为 `postfix`,让 Webmail 和 SMTP 提交都 relay 到 Postfix service。只有改用外部 SMTP 时才需要在 `.env` 明确填写 `LANQIN_STACK_SMTP_HOST` / `LANQIN_STACK_SMTP_PORT`。
|
||||
|
||||
如果页面提示 `smtp delivery failed: EOF`,通常是 Postfix 会话被中断。优先检查:
|
||||
|
||||
```bash
|
||||
|
||||
@@ -2,6 +2,9 @@ services:
|
||||
api:
|
||||
image: ${LANQIN_API_IMAGE:-ghcr.io/lanqin996/lanqin-email-api:latest}
|
||||
env_file: .env
|
||||
environment:
|
||||
LANQIN_SMTP_HOST: ${LANQIN_STACK_SMTP_HOST:-postfix}
|
||||
LANQIN_SMTP_PORT: ${LANQIN_STACK_SMTP_PORT:-25}
|
||||
volumes:
|
||||
- ./data:/data
|
||||
- ./mail:/var/mail/vhosts:ro
|
||||
|
||||
Reference in New Issue
Block a user