如想用 SMTP 代替 Sendmail 發送email,添加如下相應郵箱服務商的配置到/etc/gitlab/gitlab.rb, 然后運行gitlab-ctl reconfigure使修改生效。 omnibus-gitlab還提供了測試發送郵件功能。
本文后面有一些常用的 SMTP配置示例,可以參考下。前往QQ企業郵箱配置
gitlab_rails['smtp_enable'] = true gitlab_rails['smtp_address'] = "smtp.server" gitlab_rails['smtp_port'] = 465 gitlab_rails['smtp_user_name'] = "smtp user" gitlab_rails['smtp_password'] = "smtp password" gitlab_rails['smtp_domain'] = "example.com" gitlab_rails['smtp_authentication'] = "login" gitlab_rails['smtp_enable_starttls_auto'] = true gitlab_rails['smtp_openssl_verify_mode'] = 'peer' # 如果你使用的SMTP服務是默認的 'From:gitlab@localhost' # 你可以修改這里的 'From' 的值。 gitlab_rails['gitlab_email_from'] = 'gitlab@example.com' gitlab_rails['gitlab_email_reply_to'] = 'noreply@example.com'
Example configuration 配置示例
SMTP on localhost
下面的配置僅僅是啟用smtp,值為'false'則使用默認的設置(sendmail),啟用smtp可用於不提供sendmail接口或者與gitlab不兼容的sendmail 接口的運行MTA的本地服務器,如"Exim"。
gitlab_rails['smtp_enable'] = true
QQ exmail (騰訊企業郵箱)
gitlab_rails['smtp_enable'] = true gitlab_rails['smtp_address'] = "smtp.exmail.qq.com" gitlab_rails['smtp_port'] = 465 gitlab_rails['smtp_user_name'] = "xxxx@xx.com" 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'] = 'xxxx@xx.com'
Office 365
gitlab_rails['smtp_enable'] = true gitlab_rails['smtp_address'] = "smtp.office365.com" gitlab_rails['smtp_port'] = 25 gitlab_rails['smtp_user_name'] = "user.name@company.com" gitlab_rails['smtp_password'] = "secret" gitlab_rails['smtp_domain'] = "company.com" gitlab_rails['smtp_authentication'] = "login" gitlab_rails['smtp_enable_starttls_auto'] = true gitlab_rails['smtp_tls'] = false
Testing the SMTP configuration 測試配置是否成功
配置完成后可以用Rails控制台驗證郵件是否能發送成功。 在GitLab服務器上,執行 gitlab-rails console 進入控制台。 然后在控制台提示符后輸入下面的命令 發送一封測試郵件:
irb(main):003:0> Notify.test_email('destination_email@address.com', 'Message Subject', 'Message Body').deliver_now # 示例 Notify.test_email('收件人郵箱', '郵件標題', '郵件正文').deliver_now
### Email Settings
gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp.139.com"
gitlab_rails['smtp_port'] = 25
gitlab_rails['smtp_user_name'] = "15*****806@139.com"
gitlab_rails['smtp_password'] = "ju*******23"
gitlab_rails['smtp_domain'] = "foo.com"
gitlab_rails['smtp_authentication'] = "login"
gitlab_rails['smtp_enable_starttls_auto'] = true
gitlab_rails['smtp_tls'] = false
# 如果你使用的SMTP服務是默認的 'From:gitlab@localhost'
# # 你可以修改這里的 'From' 的值。
gitlab_rails['gitlab_email_from'] = '15*****30406@139.com'
gitlab_rails['gitlab_email_reply_to'] = '15****30406@139.com'
host: 192.168.4.24
port: 80
https: false
重啟服務后郵件鏈接成功轉到gitlab服務器 192.168.4.24
參考:https://docs.gitlab.com.cn/omnibus/settings/smtp.html
