From 441ea050d9e27b15bb31eaf590c2bde461bc9787 Mon Sep 17 00:00:00 2001 From: Jacob Vosmaer Date: Fri, 23 May 2014 17:49:00 +0200 Subject: [PATCH] Send application email via SMTP --- CHANGELOG | 1 + README.md | 17 +++++++++++++++++ files/gitlab-cookbooks/gitlab/attributes/default.rb | 9 +++++++++ files/gitlab-cookbooks/gitlab/recipes/gitlab-rails.rb | 14 ++++++++++++++ files/gitlab-cookbooks/gitlab/templates/default/smtp_settings.rb.erb | 17 +++++++++++++++++ 5 files changed, 58 insertions(+), 0 deletions(-) create mode 100644 files/gitlab-cookbooks/gitlab/templates/default/smtp_settings.rb.erb diff --git a/CHANGELOG b/CHANGELOG index 640b2bc..da2a5c2 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,6 +1,7 @@ 7.0.0 - Specify numeric user / group identifiers - Support AWS S3 attachment storage +- Send application email via SMTP 6.9.0 - Make SSH port in clone URLs configurable (Julien Pivotto) diff --git a/README.md b/README.md index ff67424..ac33cb5 100644 --- a/README.md +++ b/README.md @@ -440,6 +440,23 @@ gitlab_rails['aws_bucket'] = 'my_gitlab_bucket' gitlab_rails['aws_region'] = 'us-east-1' ``` +## Sending application email via SMTP + +If you would rather send email via an SMTP server instead of via Sendmail, add +the following configuration information to `/etc/gitlab/gitlab.rb` and run +`gitlab-ctl reconfigure`. + +``` +gitlab_rails['smtp_enable'] = false +gitlab_rails['smtp_address'] = "smtp.server" +gitlab_rails['smtp_port'] = 456 +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 +``` + ## Building your own package See [the separate build documentation](doc/build.md). diff --git a/files/gitlab-cookbooks/gitlab/attributes/default.rb b/files/gitlab-cookbooks/gitlab/attributes/default.rb index 2a67ef8..514cf8c 100644 --- a/files/gitlab-cookbooks/gitlab/attributes/default.rb +++ b/files/gitlab-cookbooks/gitlab/attributes/default.rb @@ -119,6 +119,15 @@ default['gitlab']['gitlab-rails']['db_host'] = "localhost" default['gitlab']['gitlab-rails']['db_port'] = 5432 default['gitlab']['gitlab-rails']['db_socket'] = nil +default['gitlab']['gitlab-rails']['smtp_enable'] = false +default['gitlab']['gitlab-rails']['smtp_address'] = nil +default['gitlab']['gitlab-rails']['smtp_port'] = nil +default['gitlab']['gitlab-rails']['smtp_user_name'] = nil +default['gitlab']['gitlab-rails']['smtp_password'] = nil +default['gitlab']['gitlab-rails']['smtp_domain'] = nil +default['gitlab']['gitlab-rails']['smtp_authentication'] = "login" +default['gitlab']['gitlab-rails']['smtp_enable_starttls_auto'] = nil + #### # Unicorn #### diff --git a/files/gitlab-cookbooks/gitlab/recipes/gitlab-rails.rb b/files/gitlab-cookbooks/gitlab/recipes/gitlab-rails.rb index d773808..485dd0b 100644 --- a/files/gitlab-cookbooks/gitlab/recipes/gitlab-rails.rb +++ b/files/gitlab-cookbooks/gitlab/recipes/gitlab-rails.rb @@ -99,6 +99,20 @@ template_symlink File.join(gitlab_rails_etc_dir, "aws.yml") do end end +template_symlink File.join(gitlab_rails_etc_dir, "smtp_settings.rb") do + link_from File.join(gitlab_rails_source_dir, "config/initializers/smtp_settings.rb") + helpers SingleQuoteHelper + owner "root" + group "root" + mode "0644" + variables(node['gitlab']['gitlab-rails'].to_hash) + restarts dependent_services + + unless node['gitlab']['gitlab-rails']['smtp_enable'] + action :delete + end +end + template_symlink File.join(gitlab_rails_etc_dir, "gitlab.yml") do link_from File.join(gitlab_rails_source_dir, "config/gitlab.yml") source "gitlab.yml.erb" diff --git a/files/gitlab-cookbooks/gitlab/templates/default/smtp_settings.rb.erb b/files/gitlab-cookbooks/gitlab/templates/default/smtp_settings.rb.erb new file mode 100644 index 0000000..43874b0 --- /dev/null +++ b/files/gitlab-cookbooks/gitlab/templates/default/smtp_settings.rb.erb @@ -0,0 +1,17 @@ +# This file is managed by gitlab-ctl. Manual changes will be +# erased! To change the contents below, edit /etc/gitlab/gitlab.rb +# and run `sudo gitlab-ctl reconfigure`. + +if Rails.env.production? + Gitlab::Application.config.action_mailer.delivery_method = :smtp + + ActionMailer::Base.smtp_settings = { + address: <%= single_quote(@smtp_address) %>, + port: <%= @smtp_port %>, + user_name: <%= single_quote(@smtp_user_name) %>, + password: <%= single_quote(@smtp_password) %>, + domain: <%= single_quote(@smtp_domain) %>, + authentication: :<%= @smtp_authentication %>, + enable_starttls_auto: <%= @smtp_enable_starttls_auto %> + } +end -- libgit2 0.21.2