gitlab配置SMTP总结

gitlab配置SMTP总结

自建gitlab有两种配置邮箱管理的方式:

  1. MTA(Mail Transport Agent),即搭建邮箱服务器,如postfixsendmail
  2. 使用SMTP服务器,即使用其他平台的注册邮箱。

gitlabDocker镜像并不包含MTA,如果需要,建议在单独的容器中运行MTA,这样也易于升级。相比于搭建邮箱服务器,更推荐使用SMTP服务器,目前也有很多平台推出企业邮箱,所以直接使用企业邮箱即可。

由于我目前没有企业邮箱,下面我以QQ邮箱为例,进行配置。相比于传统的账号+密码的方式使用邮箱,现在很多平台退出了授权码,更加安全。所以这里使用QQ邮箱授权码,也更加符合真实场景。

docker-compose配置QQ邮箱

直接看配置

web:
  image: 'gitlab/gitlab-ce:latest'
  container_name: 'gitlab'
  restart: always
  hostname: 'gitlab.mycroft.com'
  environment:
    GITLAB_OMNIBUS_CONFIG: |
      external_url 'http://gitlab.mycroft.com:9080'   # 指定http host:port
      gitlab_rails['gitlab_shell_ssh_port'] = 9022    # 指定ssh port
      gitlab_rails['time_zone'] = 'Asia/Shanghai'     # 指定时区

      # SMTP设置
      gitlab_rails['smtp_enable'] = true                        # 开启SMTP
      gitlab_rails['smtp_address'] = "smtp.qq.com"              # SMTP服务器地址
      gitlab_rails['smtp_port'] = 465                           # SMTP服务器端口
      gitlab_rails['smtp_user_name'] = "[email protected]"     # 邮箱
      gitlab_rails['smtp_password'] = "xxxxxxxxxxxxxxxx"        # 授权码
      gitlab_rails['smtp_domain'] = "smtp.qq.com"               # 服务器域名
      gitlab_rails['smtp_authentication'] = "login"             # 认证方式
      gitlab_rails['smtp_enable_starttls_auto'] = true          # 自动启用starttls
      gitlab_rails['smtp_tls'] = true                           # 使用TLS
      gitlab_rails['smtp_pool'] = false                         # SMTP连接池

      # 邮箱设置
      gitlab_rails['gitlab_email_from'] = '[email protected]'      # 发件人
      gitlab_rails['gitlab_email_display_name'] = 'gitlab admin'    # 显示的发件人

  ports:
    - '9080:9080'
    - '9443:443'
    - '9022:22'
  volumes:
    - '$GITLAB_HOME/config:/etc/gitlab'
    - '$GITLAB_HOME/logs:/var/log/gitlab'
    - '$GITLAB_HOME/data:/var/opt/gitlab'

邮箱配置

使用邮箱有三个目的:

  • 登录
  • 提交
  • 接收事件触发邮件

登录

gitlab可配置是否允许用户注册,可在管理员设置中启用/关闭:

注册限制

如果不允许注册,那么将由管理员创建账号,创建账号时填写邮箱,自动认为验证成功:

新建账号

但一般内部使用,不会启用用户注册。

管理员创建账号后为其设置密码,就可以使用邮箱登录了,gitlab会提示新用户修改密码。

提交

用户通过git配置user.nameuser.email就可以配置提交的邮箱。

接收事件触发邮件

我们一般会希望团队合作时发送必要的邮件,如合并请求、CI/CD等。

管理员邮箱

目前没有找到在初始化安装时指定root用户的邮箱(默认为[email protected]),如果需要修改root用户的邮箱,可以登录root账户,添加邮箱,并将新的邮箱设置为主邮箱。

参考

SMTP settings

Does ActionMailer’s “enable_starttls_auto” setting protect my email credentials when communicating with Gmail?

GitLab 配置邮箱

How to setup a GitLab server using Docker


   转载规则


《gitlab配置SMTP总结》 Mycroft Wong 采用 知识共享署名 4.0 国际许可协议 进行许可。
 上一篇
Socks 5 in Java Socks 5 in Java
Socks 5 in Java通过梳理 Socks 5 在 Java 中的实现,去理解 Socks 5 代理的流程。 HTTP以 OkhttpClient 为例,了解基于 Socket 的 HTTP 通信方式。 当使用 Proxy.NO_P
2022-09-10
下一篇 
Ubuntu安装OpenVPN服务器 Ubuntu安装OpenVPN服务器
Ubuntu安装OpenVPN服务器1. 安装OpenVPN(2.4.7-1ubuntu2.20.04.3)、easy-rsa(3.0.6-1)sudo apt install openvpn sudo apt install easy-r
2021-09-16 Mycroft Wong
  目录