1.修改gitlab的配置文件:
vim /etc/gitlab/gitlab.rb
这里具体的gitlab.rb文件所在路径需要根据实际的来
找到如下图所示的部分,放开注释,修改配置,此处我用的发件邮箱是QQ邮箱,所以域名配置都是qq.com,如果用的是163或者gmail邮箱等等,更改对应配置即可;建议使用企业邮箱
#vim /etc/gitlab/gitlab.rb
gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp.exmail.qq.com" //修改为对应的邮件服务域名
gitlab_rails['smtp_port'] = 465
gitlab_rails['smtp_user_name'] = "xxxxx@qq.com" //修改为对应的邮箱
gitlab_rails['smtp_password'] = "password" //授权码,从QQ设置里获取,参考文字部分后的图片
gitlab_rails['smtp_authentication'] = "login"
gitlab_rails['smtp_enable_starttls_auto'] = true
gitlab_rails['smtp_tls'] = true
gitlab_rails['gitlab_email_from'] = 'xxxxx@qq.com' //gitlab发送人,修改为对应的邮箱
gitlab_rails['smtp_domain'] = "exmail.qq.com" //修改为对应的邮件
网易163的配置项还可参考如下
gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp.163.com"
gitlab_rails['smtp_port'] = 25
gitlab_rails['smtp_user_name'] = "xxuser@163.com"
gitlab_rails['smtp_password'] = "xxpassword"
gitlab_rails['smtp_domain'] = "163.com"
gitlab_rails['smtp_authentication'] = :login
gitlab_rails['smtp_enable_starttls_auto'] = true
gitlab_rails['gitlab_email_from'] = "xxuser@163.com"
user["git_user_email"] = "xxuser@163.com"
2.授权码获取方式,以QQ邮箱为例参考下图
3.重新加载配置 gitlab-ctl reconfigure
重启生效
4.测试配置是否成功
待测试
执行 gitlab-rails console -e production进入控制台。 然后在控制台提示符后输入下面的命令 发送一封测试邮件:Notify.test_email('收件人邮箱', '邮件标题', '邮件正文').deliver_now
5.验证,gitlab登录页面忘记密码输入你的邮箱
待测试
测试SMTP配置
您可以使用Rails控制台验证GitLab能够正确发送电子邮件。在GitLab服务器上,执行 gitlab-rails console
以进入控制台。然后,您可以在控制台提示符下输入以下命令,以使GitLab发送测试电子邮件:
##登入控制台
gitlab-rails console -e production
##测试邮件发送
Notify.test_email('destination_email@address.com', 'Message Subject', 'Message Body').deliver_now
对SSL / TLS进行故障排除
配置SMTP后,许多用户遇到以下错误:
OpenSSL::SSL::SSLError (SSL_connect returned=1 errno=0 state=error: wrong version number)
此错误通常是由于设置错误所致:
如果您的SMTP提供程序使用端口25或587,则SMTP连接开始时 未加密,但可以通过STARTTLS进行升级 。确保设置了以下设置:
gitlab_rails['smtp_enable_starttls_auto'] = true
gitlab_rails['smtp_tls'] = false # This is the default and can be omitted
gitlab_rails['smtp_ssl'] = false # This is the default and can be omitted
如果您的SMTP提供程序正在使用端口465,则SMTP连接开始 通过TLS加密。确保存在以下行:
gitlab_rails['smtp_tls'] = true
有关更多详细信息,请阅读有关SMTP端口,TLS和STARTTLS的混淆。
禁用所有外发电子邮件
注意: 这将禁用您的GitLab实例中的所有传出电子邮件,包括但不限于通知电子邮件,直接提及和密码重置电子邮件。
为了禁用所有外发电子邮件,您可以编辑以下行或将其添加到/etc/gitlab/gitlab.rb:
gitlab_rails['gitlab_email_enabled'] = false
运行sudo gitlab-ctl reconfigure
以使更改生效。
若在安装Gitlab之前未安装postfix,则需运行以下命令安装并启动postfix服务
sudo yum install postfix
sudo systemctl enable postfix
sudo systemctl start postfix