配置 SMTP 邮件
默认情况下,Gisia 的所有邮件功能都是禁用的。要发送邮件,你需要在 gitlab.yml 中启用邮件并配置 SMTP。
启用 SMTP
打开项目文件夹中的 config/web/gitlab.yml,在 gitlab: 部分内添加 smtp 配置块:
production: &base
gitlab:
email_enabled: true
email_from: noreply@yourdomain.com
email_display_name: Gisia
email_reply_to: noreply@yourdomain.com
email_subject_prefix: ''
smtp:
enabled: true
address: smtp.yourdomain.com
port: 587
user_name:
password:
domain:
authentication:
enable_starttls_auto: true
openssl_verify_mode: peer
tls: false
保存文件后重启 Gisia web 容器:
docker compose restart web
验证配置
在容器内打开 Rails 控制台,验证配置是否正确加载:
docker exec -it gisia-web bundle exec rails c
然后检查这些值:
Settings.gitlab['email_enabled']
Settings.gitlab['smtp']
调试:YAML 缩进
一个常见错误是把 smtp: 块或邮件字段放在了错误的缩进层级上。所有邮件设置必须嵌套在 gitlab: 下,而不是 production: 的顶层。
错误示例 — smtp 不在 gitlab: 下:
production: &base
gitlab:
email_enabled: true
smtp:
enabled: true
正确示例 — smtp 嵌套在 gitlab: 下:
production: &base
gitlab:
email_enabled: true
smtp:
enabled: true
当缩进错误时,无论你如何设置,Settings.gitlab['smtp']['enabled'] 都会返回 false,Settings.gitlab['email_enabled'] 也会返回 false,因为这些键被当作未知的顶层字段解析,默认值随之生效。