1. 在/etc/gitlab/gitlab.rb 中添加如下內容
$ vi /etc/gitlab/gitlab.rb
gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp.mxhichina.com"
gitlab_rails['smtp_port'] = 80
gitlab_rails['smtp_user_name'] = "notice@idba.cn"
gitlab_rails['smtp_password'] = "password"
gitlab_rails['smtp_domain'] = "smtp.mxhichina.com"
gitlab_rails['smtp_authentication'] = "plain"
gitlab_rails['smtp_enable_starttls_auto'] = true
2. 保存配置文件后執行以下命令
$ gitlab-ctl reconfigure
3. 發送測試郵件,檢查郵件配置是否有問題
$ gitlab-rails console
irb(main):001:0> Notify.test_email('resn@idba.cn', 'Message Subject test', 'Message Body test').deliver_now
紅色部分為console提示符出現后要執行的命令
注意:
gitlab_rails['smtp_port'] =465 #465端口會導致發送郵件的時候報錯一個錯誤 :EOFError: end of file reached
gitlab_rails['smtp_port'] =25 # 網上找了好幾篇文章都說設置為25端口可以解決 EOFError: end of file reached 的問題, 但設置為25會報錯 Errno::ETIMEDOUT: Connection timed out - connect(2) for "smtp.mxhichina.com" port 25
最后發現,阿里基於安全考慮,目前已禁用 25 端口。
如果您的發送程序部署在阿里雲 ECS 上,建議您不勾選 SSL 時,使用 80 端口;勾選 SSL 時,使用 465 端口。
參考鏈接:https://help.aliyun.com/document_detail/29449.html
