GitLab电子邮件设置:通过另一个邮件服务器发送

时间:2012-05-21 18:03:37

标签: ruby-on-rails ruby-on-rails-3 git smtp gitlab

默认情况下,gitlab在gitlab.yml中有下一个配置:

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

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

我是怎么做到的?

6 个答案:

答案 0 :(得分:40)

现在Gitlab 5.2 +完全不同了。

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

答案 1 :(得分:30)

注意:此方法对旧版本的Gitlab非常有用。 Girish See the answer适用于较新版本。


在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更新后再次编辑该文件

答案 2 :(得分:10)

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

答案 3 :(得分:6)

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

答案 4 :(得分: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

答案 5 :(得分:0)

显然,自最初提出此问题以来,这些设置的位置已更改(几次)。目前截至2018-11-02:

根据官方文档,这些设置位于gitlab.rb

enter image description here

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