GitLab依賴Postfix作為郵件傳輸代理(MTA),首先安裝Postfix:
sudo apt update
sudo apt install -y curl openssh-server ca-certificates postfix
安裝過程中會提示選擇配置類型,選擇“Internet Site”,并設置系統郵件名(如gitlab.example.com
),后續可根據實際情況修改。
編輯GitLab主配置文件/etc/gitlab/gitlab.rb
(需root權限):
sudo vim /etc/gitlab/gitlab.rb
找到或添加以下SMTP配置(以QQ郵箱為例,其他郵箱類似):
gitlab_rails['smtp_enable'] = true # 啟用SMTP
gitlab_rails['smtp_address'] = "smtp.qq.com" # SMTP服務器地址(QQ郵箱為smtp.qq.com)
gitlab_rails['smtp_port'] = 587 # SMTP端口(常用587或465,587用于STARTTLS,465用于SSL)
gitlab_rails['smtp_user_name'] = "your_email@qq.com" # 發件郵箱地址
gitlab_rails['smtp_password'] = "your_authorization_code" # 授權碼(非郵箱密碼,需通過郵箱設置獲?。?/span>
gitlab_rails['smtp_domain'] = "qq.com" # SMTP域名(與發件郵箱域名一致)
gitlab_rails['smtp_authentication'] = "login" # 認證方式(通常為login)
gitlab_rails['smtp_enable_starttls_auto'] = true # 啟用STARTTLS加密(587端口需開啟)
gitlab_rails['smtp_tls'] = false # 禁用SSL(若用465端口則設為true)
gitlab_rails['smtp_openssl_verify_mode'] = 'peer' # 驗證SSL證書(生產環境建議用peer,測試可用none)
gitlab_rails['gitlab_email_from'] = "your_email@qq.com" # 發件人地址(需與smtp_user_name一致)
注意:
smtp.gmail.com:587
);保存配置文件后,執行以下命令使配置生效:
sudo gitlab-ctl reconfigure
該命令會自動應用gitlab.rb
中的修改,并重啟GitLab相關服務。
通過GitLab控制臺發送測試郵件,驗證配置是否正確:
sudo gitlab-rails console
在控制臺中輸入以下命令(替換為實際收件人地址):
Notify.test_email('recipient@example.com', 'GitLab郵件測試', '這是一封來自GitLab的測試郵件').deliver_now
輸入exit
退出控制臺。若配置正確,收件人將收到測試郵件。
ufw
需允許587端口);sudo gitlab-ctl tail
)查看錯誤信息,確認收件箱是否反垃圾。通過以上步驟,Ubuntu上的GitLab即可正常發送郵件通知(如合并請求、問題更新、密碼重置等)。