GitLab 不只可以使用 Postfix 來作為郵件伺服器,也提供了外部 SMTP Server 的設定方式。
1、設定檔位置
GitLab 設定檔位置【/etc/gitlab/gitlab.rb】。
使用指令檢視設定檔內容。
# vi /etc/gitlab/gitlab.rb
2、調整外部 URL
設定檔中「GitLab URL」區塊為設定 URL 部分。
將「external_url」後的網址改為外部 URL。
在發信的時候,信件內容會帶有 GitLab 快速連結,如果此處沒有設定,快速連結會無法使用。
3、設定 Email 相關資訊
設定檔中「Email Settings」區塊為設定 Email 相關資訊部分。
- gitlab_email_enabled:啟用 Email 功能。
- gitlab_email_from:寄件人信箱。
- gitlab_email_display_name:寄件人顯示名稱(預設為 GitLab 或是 GitLab 帳號名稱)。
- gitlab_email_reply_to:回覆信箱(預設為 noreply@ + 外部 URL)。
如果不介意相關資訊顯示,此部分可以略過。
4、設定 SMTP Server
設定檔中「GitLab email server settings」區塊為設定 SMTP Server 部分。
- smtp_enable:啟用 SMTP 功能。
- smtp_address:SMTP Server。
- smtp_port:SMTP Port。
- smtp_user_name:SMTP 使用者帳號。
- smtp_password:SMTP 使用者密碼。
- smtp_domain:SMTP 網域。
- smtp_authentication:SMTP 驗證模式。
- smtp_enable_starttls_auto:SMTP 開啟 TLS 設定。
- smtp_tls:使用 TLS 設定。
- smtp_openssl_verify_mode:SMTP SSL 驗證模式。
不同的 SMTP 設定可參考官網文件:SMTP settings。
4.1 Gmail 設定
gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp.gmail.com"
gitlab_rails['smtp_port'] = 587
gitlab_rails['smtp_user_name'] = "使用者信箱"
gitlab_rails['smtp_password'] = "使用者密碼"
gitlab_rails['smtp_domain'] = "smtp.gmail.com"
gitlab_rails['smtp_authentication'] = "login"
gitlab_rails['smtp_enable_starttls_auto'] = true
gitlab_rails['smtp_tls'] = false
gitlab_rails['smtp_openssl_verify_mode'] = 'peer'
5、重新載入設定檔
使用指令重新載入設定檔。
# gitlab-ctl reconfigure
6、測試
使用指令進入 GitLab 主控台。
# gitlab-rails console
irb(main):001:0>Notify.test_email('收件者信箱', '標題', '內文').deliver_now
檢查收件者信箱,確定收到測試 Email。
- 官方網站:SMTP settings
- Google 官網文件:允許安全性較低的應用程式使用您的帳戶
- Google 官網文件:啟用兩步驟驗證功能
- Google 官網文件:使用應用程式密碼登入
嘗試將自己的理解寫成文字紀錄,資料來源均來自於網路。
如有理解錯誤、引用錯誤或侵權,請多加指正與告知,讓我有更多的進步與改進的空間,謝謝!