gitlab设置邮件通知

个人搭建的gitlab需要发送邮件通知,必须要设置个人邮箱,以下是相关配置攻略:

主要参考官方文档:

  https://docs.gitlab.com/omnibus/settings/smtp.html

配置文件地址

  vim /etc/gitlab/gitlab.rc

配置内容

gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp.XXX.com"
gitlab_rails['smtp_port'] = 465
gitlab_rails['smtp_user_name'] = "login-name"
gitlab_rails['smtp_password'] = "user-password"
gitlab_rails['smtp_domain'] = "mail.XXX.com"
gitlab_rails['smtp_authentication'] = "login"
gitlab_rails['smtp_tls'] = true
gitlab_rails['smtp_openssl_verify_mode'] = 'none'

这里面有几个注意点:

  1、smtp地址、domain地址和端口需要邮件服务商提供

  2、smtp_openssl_verify_mode 有'none', 'peer', 'client_once', 'fail_if_no_peer_cert' 好几种,需要咨询邮件服务商提供,一般是none或者peer

  3、官方文档里面有常用服务商的配置,可以参考

配置完成后的检查:

# 更新配置
gitlab-ctl reconfigure

#进入命令行
gitlab-rails console

#测试邮件
Notify.test_email('destination_email@address.com', 'Message Subject', 'Message Body').deliver_now

如果发送成功,会有显示

问题排查

  1、出现 EOFError (end of file reached) 一般是SSL命令没有打开  gitlab_rails['smtp_tls'] = true

  2、出现 Net::OpenTimeout (execution expired) 一般是网络或者配置的原因导致链路不通

原文地址:https://www.cnblogs.com/handsomehuo/p/15293662.html