By default gitlab has the next configuration in gitlab.yml
:
email:
from: notify@gitlabhq.com
host: gitlabhq.com
but, I ne
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
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.
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
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:
.
This is my entries at the end in /config/environment/production.rb and that is working for me.
Comment out sendmail options and use external SMTP relays
# #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
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.