環境
安裝gitlab及本文環境參考:CentOS7安裝git倉庫管理平臺GitLab教程
公司gitlab服務器上開始使用的默認的postfix發送郵件,但是公司阿里雲企業郵箱收不到郵件,因爲被阿里雲反垃圾機制攔截了,於是更換成smtp方式發郵件。
注:本例配置的是阿里雲企業郵箱,其他郵箱配置方式參考 https://docs.gitlab.com/omnibus/settings/smtp.html
設置步驟
1、打開gitlab的配置文件
[root@localhost ~]# vim /etc/gitlab/gitlab.rb
2、修改配置文件,搜索smtp,找下面smtp配置的地方,去掉註釋,並做相應的修改,如下:
### GitLab email server settings
###! Docs: https://docs.gitlab.com/omnibus/settings/smtp.html
###! **Use smtp instead of sendmail/postfix.**
gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp.joy.com" ## 此處要改成你的smtp地址
gitlab_rails['smtp_port'] = 465
gitlab_rails['smtp_user_name'] = "[email protected]" ## 此處要改成你的郵箱
gitlab_rails['smtp_password'] = "123456" ## 郵箱密碼
gitlab_rails['smtp_domain'] = "joy.com" ## smtp地址域名
gitlab_rails['smtp_authentication'] = "login"
gitlab_rails['smtp_enable_starttls_auto'] = true
gitlab_rails['smtp_tls'] = true
###! **Can be: 'none', 'peer', 'client_once', 'fail_if_no_peer_cert'**
###! Docs: http://api.rubyonrails.org/classes/ActionMailer/Base.html
gitlab_rails['smtp_openssl_verify_mode'] = 'none' # 此處去掉註釋,默認none即可
然後再搜索gitlab_email_from,找到如下位置,設置發件人信息,然後保存退出
### Email Settings
gitlab_rails['gitlab_email_enabled'] = true
gitlab_rails['gitlab_email_from'] = '[email protected]' ## 發件郵箱
gitlab_rails['gitlab_email_display_name'] = 'git server' ## 顯示名字
# gitlab_rails['gitlab_email_reply_to'] = '[email protected]'
# gitlab_rails['gitlab_email_subject_suffix'] = ''
3、保存退出修改,執行命令gitlab-ctl reconfigure
重新配置gitlab
[root@localhost ~]# gitlab-ctl reconfigure
4、執行命令gitlab-ctl console
測試發郵件,進入控制檯之後執行命令Notify.test_email('[email protected]', 'title', 'content').deliver_now
[root@localhost ~]# gitlab-rails console
-------------------------------------------------------------------------------------
GitLab: 12.0.3 (08a51a9db93)
GitLab Shell: 9.3.0
PostgreSQL: 10.7
-------------------------------------------------------------------------------------
Loading production environment (Rails 5.1.7)
irb(main):001:0> Notify.test_email('你的收件郵箱', '測試郵件標題', '測試郵件正文').deliver_now