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

el_*_*ick 32 git smtp ruby-on-rails ruby-on-rails-3 gitlab

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

email:
  from: notify@gitlabhq.com
  host: gitlabhq.com
Run Code Online (Sandbox Code Playgroud)

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

我怎么做的?

小智 40

现在它与Gitlab 5.2+完全不同.

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

  • 在版本6.3.1中,该文件已移至/home/git/gitlab/config/initializers/smtp_settings.rb.sample (3认同)

Adr*_*ian 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
  }
Run Code Online (Sandbox Code Playgroud)

有关可能配置的更详细说明,请参阅ActionMailer文档:http://api.rubyonrails.org/classes/ActionMailer/Base.html

注意:您可能必须在Gitlab更新后再次编辑该文件

  • 注意:`:authentication =>:login`或`:cram_md5`可能是需要的,当你的邮件服务器上没有使用tls/ssl时,也应该使用`:enable_starttls_auto => false`(通常当端口是25如上.) (4认同)

Jos*_*hua 10

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


top*_*her 6

对于Gitlab> 7 omnibus,编辑/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'
Run Code Online (Sandbox Code Playgroud)

资料来源:https://gitlab.com/gitlab-org/omnibus-gitlab/blob/master/doc/settings/smtp.md


Jim*_*thy 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
Run Code Online (Sandbox Code Playgroud)

如果您正在使用HTTPS,变化web:https:,web:port:email:protocol:.