1、概述

邮箱设置适用于能使用邮箱的情况:本地搭建邮箱服务器或者能连通外网

使用邮箱的情况:

1、账号注册时,需要使用邮箱验证

2、如果忘记密码,登录界面需要输入邮箱地址重置密码(不用输入用户名,他会根据用户注册时的邮箱地址区分用户)

Gitlab邮箱配置_服务器

3、账号密码修改,也会收到邮件提示

Gitlab邮箱配置_服务器_02

2、邮箱服务器

2.1 开启IMAP/SMTP服务

Gitlab邮箱配置_服务器_03

如果不开启,测试邮箱会直接报错

Gitlab邮箱配置_服务器_04

2.2 获取授权码

邮箱服务器配置几乎都不让输入明文密码,需要获取授权码

Gitlab邮箱配置_服务器_05

点击获取即可,需要手机验证

2.3 邮箱服务器地址

Gitlab邮箱配置_服务器_06

3、Gitlab配置

3.1 配置非SSL

gitlab_rails['gitlab_email_enabled'] = true
gitlab_rails['gitlab_email_from'] = '12345678910@139.com'
gitlab_rails['gitlab_email_display_name'] = 'qingchen'
gitlab_rails['gitlab_email_reply_to'] = '12345678910@139.com'
gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp.139.com"
gitlab_rails['smtp_port'] = 25
gitlab_rails['smtp_user_name'] = "12345678910@139.com"
gitlab_rails['smtp_password'] = "授权码"
gitlab_rails['smtp_domain'] = "139.com"
gitlab_rails['smtp_authentication'] = "login"
gitlab_rails['smtp_enable_starttls_auto'] = true
gitlab_rails['smtp_tls'] = false
user['git_user_email'] = "12345678910@139.com"

#注意重点
gitlab_rails['smtp_port'] = 25
gitlab_rails['smtp_tls'] = false

3.2 配置SSL

gitlab_rails['gitlab_email_enabled'] = true
gitlab_rails['gitlab_email_from'] = '12345678910@139.com'
gitlab_rails['gitlab_email_display_name'] = 'qingchen'
gitlab_rails['gitlab_email_reply_to'] = '12345678910@139.com'
gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp.139.com"
gitlab_rails['smtp_port'] = 465
gitlab_rails['smtp_user_name'] = "12345678910@139.com"
gitlab_rails['smtp_password'] = "授权码"
gitlab_rails['smtp_domain'] = "139.com"
gitlab_rails['smtp_authentication'] = "login"
gitlab_rails['smtp_enable_starttls_auto'] = true
gitlab_rails['smtp_tls'] = true
user['git_user_email'] = "12345678910@139.com"

注意重点
gitlab_rails['smtp_port'] = 465
gitlab_rails['smtp_tls'] = true

3.3 参数说明

在GitLab配置中,gitlab_rails['smtp_tls'] 和 gitlab_rails['smtp_enable_starttls_auto'] 选项分别用于不同的SMTP安全传输方式。

gitlab_rails['smtp_tls']
如果设置为 true,则GitLab将使用SMTP的纯TLS模式(也称为SMTPS)连接到邮件服务器,通常使用端口465。
这种情况下,连接建立后立即进行加密,无需STARTTLS命令升级连接。

gitlab_rails['smtp_enable_starttls_auto']
如果设置为 true,则GitLab将在已建立的未加密SMTP连接上尝试发送STARTTLS命令来升级连接至加密状态。这种方式常用于端口587。

gitlab_rails['gitlab_email_display_name'] = 'qingchen'
如果你的收件邮箱没有对发件邮箱做别名记录,则默认使用qingchen作为发件人别名

3.4 测试邮箱

1、重新加载
gitlab-ctl reconfigure

2、打开控制台
gitlab-rails console

3、测试邮箱
Notify.test_email('123456789@qq.com', 'Message Subject', 'Message Body').deliver_now