亚搏体育appGitLab电子邮件设置:通过另一个邮件服务器发送
-
12-12-2019 - |
题
默认情况下,gitlab 有以下配置 gitlab.yml
:
email:
from: notify@gitlabhq.com
host: gitlabhq.com
但是,我需要指定其他变量(主机、端口、用户、密码等)才能使用另一个邮件服务器。
我怎么做到这一点?
解决方案
这也让我很困惑。但是要更改邮件设置,您可以在 config/environments/production.rb 中编辑它们,只需添加一个 config.action_mailer.smtp_settings ,就像常规的 Rails 应用程序一样。
其他提示
现在 Gitlab 5.2+ 中情况完全不同了。
它位于“/home/git/gitlab/config/initializers/smtp_settings.rb.sample”中,我们只需要按照其中的说明进行操作即可。
笔记:此方法对于旧版本的 Gitlab 很有用。 查看答案 Girish 的新版本。
在 config/environments/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 => 'gitlab@yourserver.com',
:password => 'yourPassword',
:enable_starttls_auto => true
}
有关可能配置的更详细说明,请参阅 ActionMailer 文档: http://api.rubyonrails.org/classes/ActionMailer/Base.html
笔记:Gitlab 更新后您可能需要再次编辑该文件
对于 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
这 email:host:
配置在 gitlab.yml
实际上不适用于邮件服务器/SMTP 主机。它用于在电子邮件中构建指向您的 Gitlab 主机的链接。我们将 gitlab 服务器称为“gitlab.local”(并且有一个 DNS 条目),所以我们的配置显示 host: gitlab.local
.
这样,当用户收到来自 Gitlab 的电子邮件时,链接将起作用,而不是链接到 http://localhost/
, ,与默认情况一样。
那里有一些冗余配置。为了使 git clone URL 在 Gitlab 中正确显示,您还需要配置 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:
.
这是我在 /config/environment/development.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 => 'gitlab@yourserver.com', ## 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
显然,自从最初提出这个问题以来,这些设置的位置已经改变(几次)。目前截至 2018 年 11 月 2 日:
设置位于 gitlab.rb
根据官方文档: