【GitLab】設定外部 SMTP Server 發送 Email

  • 11045
  • 0
  • 2017-11-02

  GitLab 不只可以使用 Postfix 來作為郵件伺服器,也提供了外部 SMTP Server 的設定方式。

1、設定檔位置

  GitLab 設定檔位置【/etc/gitlab/gitlab.rb】。

  使用指令檢視設定檔內容。

# vi /etc/gitlab/gitlab.rb

2、調整外部 URL

  設定檔中「GitLab URL」區塊為設定 URL 部分。

  將「external_url」後的網址改為外部 URL。

在發信的時候,信件內容會帶有 GitLab 快速連結,如果此處沒有設定,快速連結會無法使用。

01:External_URL

3、設定 Email 相關資訊

  設定檔中「Email Settings」區塊為設定 Email 相關資訊部分。

  • gitlab_email_enabled:啟用 Email 功能。
  • gitlab_email_from:寄件人信箱。
  • gitlab_email_display_name:寄件人顯示名稱(預設為 GitLab 或是 GitLab 帳號名稱)。
  • gitlab_email_reply_to:回覆信箱(預設為 noreply@ + 外部 URL)。
如果不介意相關資訊顯示,此部分可以略過。

02:Email_Settings

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

03:GitLab_Email_Server_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

04:GitLab_Reconfigure

6、測試

  使用指令進入 GitLab 主控台。

使用 Gmail SMTP 寄信時,如果遭遇身分驗證錯誤,可參考 Google 官網文件:允許安全性較低的應用程式使用您的帳戶 或是 啟用兩步驟驗證功能 使用 使用應用程式密碼登入
# gitlab-rails console

irb(main):001:0>Notify.test_email('收件者信箱', '標題', '內文').deliver_now

05:SMTP_Test_Email

  檢查收件者信箱,確定收到測試 Email。

06:GitLab_Email

嘗試將自己的理解寫成文字紀錄,資料來源均來自於網路。

如有理解錯誤、引用錯誤或侵權,請多加指正與告知,讓我有更多的進步與改進的空間,謝謝!