gitlab服务器邮箱配置

如想用 SMTP 代替 Sendmail 发送email,添加如下相应邮箱服务商的配置到/etc/gitlab/gitlab.rb, 然后运行gitlab-ctl reconfigure使修改生效。 omnibus-gitlab还提供了测试发送邮件功能

本文后面有一些常用的 SMTP配置示例,可以参考下。前往QQ企业邮箱配置

  1. gitlab_rails['smtp_enable'] = true
  2. gitlab_rails['smtp_address'] = "smtp.server"
  3. gitlab_rails['smtp_port'] = 465
  4. gitlab_rails['smtp_user_name'] = "smtp user"
  5. gitlab_rails['smtp_password'] = "smtp password"
  6. gitlab_rails['smtp_domain'] = "example.com"
  7. gitlab_rails['smtp_authentication'] = "login"
  8. gitlab_rails['smtp_enable_starttls_auto'] = true
  9. gitlab_rails['smtp_openssl_verify_mode'] = 'peer'
  10. # 如果你使用的SMTP服务是默认的 'From:gitlab@localhost'
  11. # 你可以修改这里的 'From' 的值。
  12. gitlab_rails['gitlab_email_from'] = 'gitlab@example.com'
  13. gitlab_rails['gitlab_email_reply_to'] = 'noreply@example.com'

Example configuration 配置示例

SMTP on localhost

下面的配置仅仅是启用smtp,值为'false'则使用默认的设置(sendmail),启用smtp可用于不提供sendmail接口或者与gitlab不兼容的sendmail 接口的运行MTA的本地服务器,如"Exim"。

  1. gitlab_rails['smtp_enable'] = true

QQ exmail (腾讯企业邮箱)

  1. gitlab_rails['smtp_enable'] = true
  2. gitlab_rails['smtp_address'] = "smtp.exmail.qq.com"
  3. gitlab_rails['smtp_port'] = 465
  4. gitlab_rails['smtp_user_name'] = "xxxx@xx.com"
  5. gitlab_rails['smtp_password'] = "password"
  6. gitlab_rails['smtp_authentication'] = "login"
  7. gitlab_rails['smtp_enable_starttls_auto'] = true
  8. gitlab_rails['smtp_tls'] = true
  9. gitlab_rails['gitlab_email_from'] = 'xxxx@xx.com'

Office 365

  1. gitlab_rails['smtp_enable'] = true
  2. gitlab_rails['smtp_address'] = "smtp.office365.com"
  3. gitlab_rails['smtp_port'] = 25
  4. gitlab_rails['smtp_user_name'] = "user.name@company.com"
  5. gitlab_rails['smtp_password'] = "secret"
  6. gitlab_rails['smtp_domain'] = "company.com"
  7. gitlab_rails['smtp_authentication'] = "login"
  8. gitlab_rails['smtp_enable_starttls_auto'] = true
  9. gitlab_rails['smtp_tls'] = false

Testing the SMTP configuration 测试配置是否成功

配置完成后可以用Rails控制台验证邮件是否能发送成功。 在GitLab服务器上,执行 gitlab-rails console 进入控制台。 然后在控制台提示符后输入下面的命令 发送一封测试邮件:

  1. irb(main):003:0> Notify.test\_email('destination\_email@address.com', 'Message Subject', 'Message Body').deliver\_now
  2. # 示例
  3. Notify.test\_email('收件人邮箱', '邮件标题', '邮件正文').deliver\_now

实际配置使用139邮箱:

vim /etc/gitlab/gitlab.rb

Email Settings

gitlab_rails['smtp_enable'] = true

gitlab_rails['smtp_address'] = "smtp.139.com"

gitlab_rails['smtp_port'] = 25

gitlab_rails['smtp_user_name'] = "15*806@139.com"

gitlab_rails['smtp_password'] = "ju*23"

gitlab_rails['smtp_domain'] = "foo.com"

gitlab_rails['smtp_authentication'] = "login"

gitlab_rails['smtp_enable_starttls_auto'] = true

gitlab_rails['smtp_tls'] = false

如果你使用的SMTP服务是默认的 'From:gitlab@localhost' 你可以修改这里的 'From' 的值。

gitlab_rails['gitlab_email_from'] = '15*30406@139.com'

gitlab_rails['gitlab_email_reply_to'] = '15**30406@139.com'

邮箱配置能成功发送邮件后, 新建用户, 用户收到的邮箱打开gitlab服务器域名是 example.gitlab.com 需做修改

vim /var/opt/gitlab/gitlab-rails/etc/gitlab.yml

host: 192.168.4.24

port: 80

https: false

重启服务后邮件链接成功转到gitlab服务器 192.168.4.24

参考:https://docs.gitlab.com.cn/omnibus/settings/smtp.html