Linux GitLab邮件通知如何配置
导读:Linux GitLab 邮件通知配置指南 一 准备与总体思路 准备一个可用的SMTP服务(如公司邮件网关、云邮箱),记录:SMTP地址、端口、用户名、密码/授权码、发信域名。如使用公司服务器,建议优先用端口 587 + STARTTLS...
Linux GitLab 邮件通知配置指南
一 准备与总体思路
- 准备一个可用的SMTP服务(如公司邮件网关、云邮箱),记录:SMTP地址、端口、用户名、密码/授权码、发信域名。如使用公司服务器,建议优先用端口 587 + STARTTLS;如使用云邮箱,通常也支持465 + SSL/TLS。
- 编辑 GitLab 主配置:/etc/gitlab/gitlab.rb,设置 SMTP 与发件人参数,然后执行gitlab-ctl reconfigure使配置生效。
- 完成后通过 Rails 控制台发送测试邮件验证。上述流程适用于 Omnibus 安装包部署的 GitLab。
二 编辑配置文件 gitlab.rb
- 打开配置文件:sudo nano /etc/gitlab/gitlab.rb
- 按你的邮件服务商填写以下关键项(示例为通用 SMTP,端口 587 + STARTTLS):
# 启用 SMTP
gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp.example.com"
gitlab_rails['smtp_port'] = 587
gitlab_rails['smtp_user_name'] = "your-smtp-user@example.com"
gitlab_rails['smtp_password'] = "your-smtp-password-or-app-password"
gitlab_rails['smtp_domain'] = "example.com"
gitlab_rails['smtp_authentication'] = "login" # 常见值:login/plain/cram_md5
gitlab_rails['smtp_enable_starttls_auto'] = true
gitlab_rails['smtp_tls'] = false
gitlab_rails['smtp_openssl_verify_mode'] = 'peer' # 自签证书可用 'none'
# 发件人信息(部分邮箱对 From/Reply-To 有校验)
gitlab_rails['gitlab_email_from'] = 'gitlab@example.com'
gitlab_rails['gitlab_email_reply_to'] = 'noreply@example.com'
- 如使用465/SSL端口,可改为:smtp_port=465、smtp_tls=true、smtp_enable_starttls_auto=false。
- 如使用 Gmail:smtp_address=smtp.gmail.com、端口587、authentication=login;需开启两步验证并使用应用专用密码(或允许不够安全的应用访问,不推荐)。
三 应用配置并测试
- 使配置生效:sudo gitlab-ctl reconfigure(必要时可再执行 sudo gitlab-ctl restart)。
- 进入 Rails 控制台测试:
gitlab-rails console
Notify.test_email('youremail@email.com', 'Hello World', 'This is a test message').deliver_now
- 检查收件箱;如未收到,查看日志:/var/log/gitlab/gitlab-rails/production.log。
四 常见方案与端口对照
| 方案 | 关键配置示例 |
|---|---|
| 外部 SMTP(推荐) | smtp_enable=true;端口587 + STARTTLS(smtp_enable_starttls_auto=true,smtp_tls=false)或端口465 + SSL(smtp_tls=true,smtp_enable_starttls_auto=false);填写 address/user/password/domain。 |
| 本机 Postfix 作为中继 | 在 /etc/postfix/main.cf 设置 relayhost(如 [smtp.xx.com]:587)、启用 SASL 认证(smtp_sasl_auth_enable=yes、smtp_sasl_password_maps 等),然后 GitLab 仍按外部 SMTP 方式配置为 localhost。 |
| Gmail | smtp_address=smtp.gmail.com;端口587;authentication=login;使用应用专用密码。 |
五 故障排查要点
- 在控制台核对:ActionMailer::Base.delivery_method 应为 :smtp;ActionMailer::Base.smtp_settings 应显示你填写的地址、端口、TLS/SSL 与凭据。
- 证书问题:自签或内网 CA 时,可将 smtp_openssl_verify_mode 设为 ‘none’(仅测试环境)。
- 发件人校验:确保 gitlab_email_from 与你的 SMTP 账户匹配或为被允许的别名;部分邮箱对 From/Reply-To 严格校验。
- 网络与防火墙:确认服务器可访问外部 SMTP 端口(25/587/465),云厂商安全组/本机防火墙需放行。
- 日志定位:/var/log/gitlab/gitlab-rails/production.log 与 /var/log/gitlab/postfix/(如使用 Postfix)能提供更详细的错误原因。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Linux GitLab邮件通知如何配置
本文地址: https://pptw.com/jishu/751230.html
