配置 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'] 都会返回 falseSettings.gitlab['email_enabled'] 也会返回 false,因为这些键被当作未知的顶层字段解析,默认值随之生效。