默認gitlab有一個配置在gitlab.yml
:gitlab電子郵件設置
email:
from: [email protected]
host: gitlabhq.com
但是,我需要指定其他變量(主機,端口,用戶名,密碼等),使用其他郵件服務器。
我該怎麼做?
默認gitlab有一個配置在gitlab.yml
:gitlab電子郵件設置
email:
from: [email protected]
host: gitlabhq.com
但是,我需要指定其他變量(主機,端口,用戶名,密碼等),使用其他郵件服務器。
我該怎麼做?
這讓我很困惑。但要更改郵件設置,請在config/environments/production.rb中編輯它們。只需像常規Rails應用程序那樣添加config.action_mailer.smtp_settings即可。
在gitlab.yml
中的email:host:
配置實際上並不適用於郵件服務器/ SMTP主機。它被用來在電子郵件中構建到您的Gitlab主機的鏈接。我們稱之爲gitlab服務器'gitlab.local'(並且有一個DNS條目),所以我們的配置說host: gitlab.local
。
這樣,當用戶收到來自Gitlab的電子郵件時,鏈接將起作用,而不是鏈接到http://localhost/
,這是默認設置。
那裏有一些冗餘配置。爲了在Gitlab中正確顯示git克隆URL,您還需要使用相同的主機名稱配置web:host:
和git_host:host:
。
web:
host: gitlab.local
port: 80
https: false
email:
host: gitlab.local
protocol: http
git_host:
host: gitlab.local
如果您正在使用HTTPS,改變web:https:
,web:port:
和email:protocol:
。
我發現這個答案對於我自己在GitLab本地虛擬機發送的GitLab帳戶邀請電子郵件中設置適當鏈接的場景很有用;看到一個問題/答案我張貼在這裏:http://stackoverflow.com/questions/24589361/how-to-change-the-host-ip-sent-in-emails-to-new-gitlab-users-to-a -publicly-visib –
注意:此方法對舊版本的Gitlab很有用。更新版本的Girish的See the answer。
在配置/環境/ production.rb結束時,您可以添加這樣的事情:
config.action_mailer.delivery_method = :smtp
config.action_mailer.smtp_settings = {
:address => 'yourserver.com',
:port => 25,
:domain => 'gitlab.yourserver.com',
:authentication => :plain,
:user_name => '[email protected]',
:password => 'yourPassword',
:enable_starttls_auto => true
}
參考的ActionMailer文檔可能配置更詳細的說明:http://api.rubyonrails.org/classes/ActionMailer/Base.html
注意:您可能需要在Gitlab更新後再次編輯文件
注意:':authentication =>:login'或':cram_md5'可能是需要的,當你的郵件服務器上沒有使用tls/ssl時,應該使用':enable_starttls_auto => false'通常當端口是25時,如上所述)。 – ocodo
很好的答案。這是有效的,但它是Girish KG建議的更清潔的選項。如果你修改了production.rb文件,你可以發現通過git升級gitlab的問題,你需要在升級成功之前處理一些存儲庫衝突。 – ProtheanTom
這是我最後在/config/environment/production.rb中的條目,並且對我有用。
註釋掉sendmail的選擇和使用外部SMTP中繼
# #config.action_mailer.delivery_method = :sendmail ## Comment out this
# Defaults to:
# # config.action_mailer.sendmail_settings = {
# # :location => '/usr/sbin/sendmail',
# # :arguments => '-i -t'
# # }
config.action_mailer.perform_deliveries = true
config.action_mailer.raise_delivery_errors = true
# # SMTP Settings
config.action_mailer.delivery_method = :smtp
config.action_mailer.smtp_settings = {
:address => '10.146.10.90', ## My SMTP Relay/Gateway
:port => 25, ## SMTP Port
:domain => 'gitlab.example.com', ## My Domain
:authentication => :plain, ## Let it be plain as it is inside my LAN
##:user_name => '[email protected]', ## This is not required as long as
##:password => 'yourPassword', ## SMTP Gateway allows anonymous relay
##:enable_starttls_auto => true ## In LAN
##:user_name => '',
##:password => '',
:enable_starttls_auto => true
}
end
誰downwote,請添加評論說爲什麼他們downvoted。所以其他人可以理解爲什麼這位作者的方法不行/不是最好的。請。 –
是否有可能通過/etc/gitlab/gitlab.rb文件完成這一切? – unc0nnected
對於Gitlab> 7個綜合性,如下面編輯/etc/gitlab/gitlab.rb
和運行sudo gitlab-ctl reconfigure
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'] = 'none'
來源:https://gitlab.com/gitlab-org/omnibus-gitlab/blob/master/doc/settings/smtp.md
我找相同的解決方案。請讓我知道如果你找到了更好的方法 –
你不可能在運行gitlab的主機上安裝一個簡單的smtp中繼?然後您就可以將其配置爲使用經過驗證的郵件服務器中繼郵件 –
看看這裏:http://stackoverflow.com/questions/16201090/gitlab-email-notifications-not-sending/16690884#16690884 - ---- –