1. 程式人生 > >docker 部署執行的 gitlab ce 使用 smtp方式發郵件email

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或者回復,都會觸發郵件傳送