GitLab email setup: sending via another mail serve

2019-01-21 09:19发布

By default gitlab has the next configuration in gitlab.yml :

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

but, I need to specify other variables (host, port, user, password, etc) to use another mail server.

How I do that?

7条回答
甜甜的少女心
2楼-- · 2019-01-21 09:44

Now it is totally different in Gitlab 5.2+.

It is in "/home/git/gitlab/config/initializers/smtp_settings.rb.sample" and we just need to follow the instructions in that.

查看更多
爱情/是我丢掉的垃圾
3楼-- · 2019-01-21 09:45

Note: This method was useful for older versions of Gitlab. See the answer of Girish for newer versions.


At the end of config/environments/production.rb you can add something like this:

  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
  }

Refer to the ActionMailer documentation for a more detailed description of possible configurations: http://api.rubyonrails.org/classes/ActionMailer/Base.html

Note: You may have to edit the file again after a Gitlab update

查看更多
唯我独甜
4楼-- · 2019-01-21 09:50

Apparently the location of these settings has changed (a few times) since this question was originally asked. Currently as of 2018-11-02:

The settings are in gitlab.rb as per the official documentation:

enter image description here

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

查看更多
戒情不戒烟
5楼-- · 2019-01-21 10:03

For Gitlab > 7 omnibus, edit /etc/gitlab/gitlab.rb as below and run 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'

Source: https://gitlab.com/gitlab-org/omnibus-gitlab/blob/master/doc/settings/smtp.md

查看更多
我想做一个坏孩纸
6楼-- · 2019-01-21 10:07

This confused me too. But to change the mail setting you edit them in config/environments/production.rb Just add a config.action_mailer.smtp_settings like a regular rails app.

查看更多
Bombasti
7楼-- · 2019-01-21 10:08

The email:host: configuration in gitlab.yml isn't actually for the mail server/SMTP host. It's used to construct the links to your Gitlab host in the email. We call our gitlab server 'gitlab.local' (and have a DNS entry for it), so our configuration says host: gitlab.local.

This way, when users receive an email from Gitlab, the links will work, instead of linking to http://localhost/, as is the default.

There's some redundant configuration in there. For the git clone URLs to be displayed correctly within Gitlab, you also need to configure web:host: and git_host:host: with the same host name.

web:
  host: gitlab.local
  port: 80
  https: false

email:
   host: gitlab.local
   protocol: http

git_host:
   host: gitlab.local

If you are using HTTPS, change web:https:, web:port:, and email:protocol:.

查看更多
登录 后发表回答