温馨提示×

ubuntu中gitlab如何配置邮箱

小樊
33
2025-11-23 04:06:47
栏目: 智能运维

Ubuntu 中 GitLab 配置邮箱

一 准备与原则

  • 使用 Omnibus 包安装的 GitLab 推荐直接在其配置文件 /etc/gitlab/gitlab.rb 中设置 SMTP 参数,无需额外部署本地邮件服务;若你希望由本机充当 SMTP 服务器,可安装 Postfix 并选择 Internet Site。邮箱的 密码/授权码 需使用服务商提供的 SMTP 专用密码或授权码,而非网页登录密码。完成修改后执行 gitlab-ctl reconfigure 使配置生效。

二 配置步骤

  • 编辑配置文件
    • 打开:sudo vim /etc/gitlab/gitlab.rb
    • 在文件末尾添加或修改如下关键项(以 QQ 邮箱为例,端口 465/SSL):
      # 发信身份
      gitlab_rails['gitlab_email_enabled'] = true
      gitlab_rails['gitlab_email_from'] = 'your_email@qq.com'
      gitlab_rails['gitlab_email_display_name'] = 'GitLab'
      
      # SMTP 参数(QQ 示例)
      gitlab_rails['smtp_enable'] = true
      gitlab_rails['smtp_address'] = "smtp.qq.com"
      gitlab_rails['smtp_port'] = 465
      gitlab_rails['smtp_user_name'] = "your_email@qq.com"
      gitlab_rails['smtp_password'] = "your_smtp_auth_code"   # 注意是授权码
      gitlab_rails['smtp_domain'] = "smtp.qq.com"
      gitlab_rails['smtp_authentication'] = "login"
      gitlab_rails['smtp_enable_starttls_auto'] = true
      gitlab_rails['smtp_tls'] = true
      
    • 其他常见邮箱(如 163/126)同样采用 SMTP,通常选择端口 465/SSL587/STARTTLS,并将 password 设置为各自的 SMTP 授权码/客户端专用密码。完成后执行:sudo gitlab-ctl reconfigure 使配置生效。

三 常用邮箱示例

  • 下表给出常见邮箱的关键参数(密码/授权码请使用服务商提供的 SMTP 专用凭据):
邮箱类型 smtp_address smtp_port 加密与认证要点
QQ 邮箱 smtp.qq.com 465 使用 SSLsmtp_tls=truesmtp_enable_starttls_auto=true;密码填 授权码
163/126 邮箱 smtp.163.com / smtp.126.com 465 或 587 465 用 SSL;587 用 STARTTLS;密码填 客户端授权码/SMTP 密码
Gmail smtp.gmail.com 587 使用 STARTTLSsmtp_enable_starttls_auto=truesmtp_tls=false;需开启应用专用密码
  • 示例(Gmail,端口 587/STARTTLS):
    gitlab_rails['smtp_enable'] = true
    gitlab_rails['smtp_address'] = "smtp.gmail.com"
    gitlab_rails['smtp_port'] = 587
    gitlab_rails['smtp_user_name'] = "your@gmail.com"
    gitlab_rails['smtp_password'] = "your_app_password"
    gitlab_rails['smtp_domain'] = "smtp.gmail.com"
    gitlab_rails['smtp_authentication'] = "login"
    gitlab_rails['smtp_enable_starttls_auto'] = true
    gitlab_rails['smtp_tls'] = false
    
    完成后执行:sudo gitlab-ctl reconfigure

四 验证与排错

  • 发送测试邮件
    • 进入控制台:sudo gitlab-rails console
    • 发送测试:Notify.test_email(‘recipient@example.com’, ‘Test Subject’, ‘Test Body’).deliver_now
    • 若未收到,检查垃圾箱,并核对发信域名、端口、加密方式、授权码是否正确。
  • 查看日志定位问题
    • 查看整体日志:sudo gitlab-ctl tail
    • 查看邮件相关:sudo gitlab-ctl tail postgresql(邮件队列/投递异常常在此处体现)。

五 Docker 部署的补充说明

  • 若使用 Docker,将 /etc/gitlab/gitlab.rb 通过卷挂载到容器内(如 /srv/gitlab/config/gitlab.rb),修改后重启容器:sudo docker restart gitlab
  • 进入容器测试:sudo docker exec -it gitlab bash,随后在容器内执行 gitlab-rails console 并运行 Notify.test_email(…) 完成验证。

0