docker 部署執行的 gitlab ce 使用 smtp方式發郵件email
我們在執行gitlab容器的時候,是把資料data,日誌log和配置config掛在到容器外部(這點很重要)
這裡我們需要改為smtp方式
cd /srv/gitlab/config
vi 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'] = "[email protected]
gitlab_rails['smtp_password'] = "password"
gitlab_rails['smtp_authentication'] = "login"
gitlab_rails['smtp_enable_starttls_auto'] = true
gitlab_rails['smtp_tls'] = true
gitlab_rails['gitlab_email_from'] = '[email protected]'
gitlab_rails['smtp_domain'] = "exmail.qq.com"
其中smtp_user_name和gitlab_email_from需要修改為真實的一個騰訊企業郵箱賬號
smtp_password改為該賬號的密碼,其餘完全不變
注意,這些程式碼前面不要加"#",這個是註釋
修改之後儲存,目前gitlab容器正在執行
進入bash,
docker exec -it gitlab bash
gitlab為容器名稱
進入後執行
gitlab-ctl reconfigure
完成重新配置後
還在bash中執行
gitlab-rails console
如下圖,進入console命令
1.顯示當前使用的郵件傳送協議
ActionMailer::Base.delivery_method
沒有問題,是smtp方式
2.檢視當前的郵件傳送配置
ActionMailer::Base.smtp_settings
配置也已經生效
3.測試console中直接傳送郵件
Notify.test_email('[email protected]','測試標題','測試內容').deliver_now
進入企業郵箱賬號檢視結果
傳送成功!
接下來,需要配置gitlab的郵件通知
預設忘記密碼傳送重置郵件是不用配置的
首先登陸管理員的賬號找到settings中的email,選中enable HTML emails
然後個人賬戶,找到設定settings的email,確認設定了接受訊息的預設郵箱。可以使用註冊的郵箱,也可以新增一個
同時,針對不同的專案設定不同的通知級別,預設為全域性(均可收到通知)
然後我們提交一個issue或者回復,都會觸發郵件傳送