32

默认情况下,gitlab 有以下配置gitlab.yml

email:
  from: notify@gitlabhq.com
  host: gitlabhq.com

但是,我需要指定其他变量(主机、端口、用户、密码等)才能使用另一个邮件服务器。

我该怎么做?

4

7 回答 7

40

现在它在 Gitlab 5.2+ 中完全不同了。

它位于“/home/git/gitlab/config/initializers/smtp_settings.rb.sample”中,我们只需要按照其中的说明进行操作即可。

于 2013-05-23T05:50:58.293 回答
30

注意:此方法对旧版本的 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 更新后再次编辑文件

于 2012-09-12T09:32:08.320 回答
10

这也让我很困惑。但是要更改邮件设置,您可以在 config/environments/production.rb 中编辑它们,只需像常规 rails 应用程序一样添加 config.action_mailer.smtp_settings 即可。

于 2012-07-02T15:05:11.233 回答
7

对于 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

于 2015-02-06T15:39:39.773 回答
5

中的email:host:配置gitlab.yml实际上并不是针对邮件服务器/SMTP 主机的。它用于在电子邮件中构建指向 Gitlab 主机的链接。我们称我们的 gitlab 服务器为 'gitlab.local'(并有一个 DNS 条目),所以我们的配置是host: gitlab.local.

这样,当用户收到来自 Gitlab 的电子邮件时,链接将起作用,而不是http://localhost/默认链接到 .

那里有一些冗余配置。为了在 Gitlab 中正确显示 git clone 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:

于 2012-07-27T14:48:24.437 回答
3

这是我最后在 /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 => '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

于 2013-05-22T13:25:11.697 回答
0

显然,自从最初提出这个问题以来,这些设置的位置已经改变了(几次)。目前截至 2018 年 11 月 2 日:

设置在gitlab.rb官方文档中:

在此处输入图像描述

https://docs.gitlab.com/omnibus/settings/smtp.html

于 2018-11-02T22:24:06.153 回答