在Ubuntu上配置GitLab以發送郵件通知,你需要完成以下幾個步驟:
安裝和配置Postfix (或者你選擇的郵件服務器): GitLab使用Postfix來發送郵件。你可以安裝Postfix作為你的郵件傳輸代理(MTA)。
sudo apt-get update
sudo apt-get install postfix
在安裝過程中,你可能會被問到一些問題,比如系統郵件名稱。你可以輸入你的域名,例如gitlab.example.com
。
安裝完成后,配置Postfix以確保它可以正確地發送郵件。編輯/etc/postfix/main.cf
文件,確保以下設置正確:
myhostname = gitlab.example.com
mydomain = example.com
myorigin = $mydomain
inet_interfaces = all
mydestination = $myhostname, localhost.$mydomain, $mydomain
relayhost =
inet_protocols = ipv4
home_mailbox = Maildir/
然后重啟Postfix服務:
sudo systemctl restart postfix
配置GitLab:
打開GitLab的配置文件/etc/gitlab/gitlab.rb
。
sudo nano /etc/gitlab/gitlab.rb
在文件中找到或添加以下配置項,并根據你的郵件服務器設置進行相應的調整:
gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp.example.com"
gitlab_rails['smtp_port'] = 587
gitlab_rails['smtp_user_name'] = "your-smtp-user@example.com"
gitlab_rails['smtp_password'] = "your-smtp-password"
gitlab_rails['smtp_domain'] = "example.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' # 使用 'none' 可以禁用SSL證書驗證
確保替換上述配置中的值為你自己的SMTP服務器信息。
重新配置和重啟GitLab:
保存并關閉gitlab.rb
文件后,運行以下命令來重新配置GitLab:
sudo gitlab-ctl reconfigure
這將應用你的更改并重啟GitLab服務。
測試郵件發送: 你可以通過GitLab的Rails控制臺來測試郵件發送功能。首先,獲取Rails控制臺的訪問權限:
sudo gitlab-rails console
然后,在控制臺中嘗試發送一封測試郵件:
Notify.test_email('recipient@example.com').deliver_now
替換recipient@example.com
為你想要測試的電子郵件地址。如果一切配置正確,收件人應該會收到一封測試郵件。
請注意,這些步驟可能需要根據你的具體環境和需求進行調整。如果你遇到任何問題,查看GitLab的日志文件(通常位于/var/log/gitlab
)可能會提供幫助。