个人搭建的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) 一般是网络或者配置的原因导致链路不通