Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
GitLab
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Analytics
Analytics
Repository
Value Stream
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Commits
Open sidebar
projects.thm.de
GitLab
Commits
86ec49ad
Commit
86ec49ad
authored
May 06, 2015
by
Dmitriy Zaporozhets
Browse files
Options
Browse Files
Download
Plain Diff
Merge pull request #8800 from jirutka/email-settings
Allow to configure smtp and sendmail in gitlab.yml
parents
3f228230
b4be7aed
Changes
11
Hide whitespace changes
Inline
Side-by-side
Showing
11 changed files
with
100 additions
and
51 deletions
+100
-51
app/mailers/devise_mailer.rb
app/mailers/devise_mailer.rb
+2
-2
app/mailers/emails/projects.rb
app/mailers/emails/projects.rb
+1
-1
app/mailers/notify.rb
app/mailers/notify.rb
+4
-4
config/gitlab.teatro.yml
config/gitlab.teatro.yml
+5
-2
config/gitlab.yml.example
config/gitlab.yml.example
+56
-11
config/initializers/1_settings.rb
config/initializers/1_settings.rb
+20
-4
config/initializers/disable_email_interceptor.rb
config/initializers/disable_email_interceptor.rb
+3
-1
config/initializers/email_settings.rb
config/initializers/email_settings.rb
+5
-0
config/initializers/smtp_settings.rb.sample
config/initializers/smtp_settings.rb.sample
+0
-22
lib/tasks/gitlab/check.rake
lib/tasks/gitlab/check.rake
+1
-1
spec/mailers/notify_spec.rb
spec/mailers/notify_spec.rb
+3
-3
No files found.
app/mailers/devise_mailer.rb
View file @
86ec49ad
class
DeviseMailer
<
Devise
::
Mailer
default
from:
"
#{
Gitlab
.
config
.
gitlab
.
email_display_name
}
<
#{
Gitlab
.
config
.
gitlab
.
email_
from
}
>"
default
reply_to:
Gitlab
.
config
.
gitlab
.
email_
reply_to
default
from:
"
#{
Gitlab
.
config
.
outgoing_emails
.
display_name
}
<
#{
Gitlab
.
config
.
outgoing_emails
.
from
}
>"
default
reply_to:
Gitlab
.
config
.
outgoing_emails
.
reply_to
end
app/mailers/emails/projects.rb
View file @
86ec49ad
...
...
@@ -129,7 +129,7 @@ def repository_push_email(project_id, recipient, author_id: nil,
if
send_from_committer_email
&&
can_send_from_user_email?
(
@author
)
@author
.
email
else
Gitlab
.
config
.
gitlab
.
email_
reply_to
Gitlab
.
config
.
outgoing_emails
.
reply_to
end
mail
(
from:
sender
(
author_id
,
send_from_committer_email
),
...
...
app/mailers/notify.rb
View file @
86ec49ad
...
...
@@ -17,7 +17,7 @@ class Notify < ActionMailer::Base
helper_method
:current_user
,
:can?
default
from:
Proc
.
new
{
default_sender_address
.
format
}
default
reply_to:
Gitlab
.
config
.
gitlab
.
email_
reply_to
default
reply_to:
Gitlab
.
config
.
outgoing_emails
.
reply_to
# Just send email with 2 seconds delay
def
self
.
delay
...
...
@@ -50,9 +50,9 @@ def self.allowed_email_domains
# The default email address to send emails from
def
default_sender_address
address
=
Mail
::
Address
.
new
(
Gitlab
.
config
.
gitlab
.
email_from
)
address
.
display_name
=
Gitlab
.
config
.
gitlab
.
email_
display_name
address
Mail
::
Address
.
new
(
Gitlab
.
config
.
outgoing_emails
.
from
).
tap
do
|
address
|
address
.
display_name
=
Gitlab
.
config
.
outgoing_emails
.
display_name
end
end
def
can_send_from_user_email?
(
sender
)
...
...
config/gitlab.teatro.yml
View file @
86ec49ad
...
...
@@ -7,8 +7,6 @@ production: &base
user
:
root
email_from
:
example@example.com
support_email
:
support@example.com
default_projects_features
:
...
...
@@ -19,6 +17,9 @@ production: &base
snippets
:
false
visibility_level
:
"
private"
# can be "private" | "internal" | "public"
outgoing_emails
:
from
:
example@example.com
issues_tracker
:
gravatar
:
...
...
@@ -75,6 +76,8 @@ test:
gitlab
:
host
:
localhost
port
:
80
outgoing_emails
:
delivery_method
:
:test
issues_tracker
:
redmine
:
title
:
"
Redmine"
...
...
config/gitlab.yml.example
View file @
86ec49ad
...
...
@@ -10,7 +10,7 @@
# How to use:
# 1. Copy file as gitlab.yml
# 2. Update gitlab -> host with your fully qualified domain name
# 3. Update
gitlab -> email_
from
# 3. Update
outgoing_emails ->
from
# 4. If you installed Git from source, change git -> bin_path to /usr/local/bin/git
# IMPORTANT: If Git was installed in a different location use that instead.
# You can check with `which git`. If a wrong path of Git is specified, it will
...
...
@@ -46,16 +46,6 @@ production: &base
# To see all available zones, run `bundle exec rake time:zones:all RAILS_ENV=production`
# time_zone: 'UTC'
## Email settings
# Uncomment and set to false if you need to disable email sending from GitLab (default: true)
# email_enabled: true
# Email address used in the "From" field in mails sent by GitLab
email_from: example@example.com
email_display_name: GitLab
email_reply_to: noreply@example.com
# Email server smtp settings are in config/initializers/smtp_settings.rb.sample
# default_can_create_group: false # default: true
# username_changing_enabled: false # default: true - User can change her username/namespace
## Default theme
...
...
@@ -89,6 +79,57 @@ production: &base
# The default is 'tmp/repositories' relative to the root of the Rails app.
# repository_downloads_path: tmp/repositories
## Settings for sending emails
outgoing_emails:
# Set to false if you need to disable email sending from GitLab (default: true).
enabled: true
# Email address and name used in the "From" field in mails sent by GitLab.
from: example@example.com
display_name: GitLab
# Email address used in "Reply-To" field in mails sent by GitLab.
reply_to: noreply@example.com
# Defines a delivery method. Possible values are:
# :sendmail - send emails using sendmail command (default).
# :smtp - send emails using SMTP server.
# :letter_opener - open sent emails in browser.
# :test - save emails to ActionMailer::Base.deliveries array.
delivery_method: :sendmail
# Settings for the :sendmail delivery method.
sendmail_settings:
# The location of the sendmail executable (default: /usr/sbin/sendmail).
location: /usr/sbin/sendmail
# The command line arguments to be passed to sendmail (default: -i -t).
arguments: '-i -t'
# Settings for the :smtp delivery method.
smtp_settings:
# Hostname of the SMTP server used to send emails (default: localhost).
address: localhost
# Port of the SMTP server used to send emails (default: 25).
port: 25
# If your mail server requires authentication, you need to specify the
# authentication type here. Possible values are:
# :plain - send the password in the clear text.
# :login - send password Base64 encoded.
# :cram_md5 - combines a Challenge/Response mechanism to exchange information and
# a cryptographic Message Digest 5 algorithm to hash important information.
# authentication: :plain
# user_name: 'gitlab'
# password: '123456'
# Detects if STARTTLS is enabled in your SMTP server and starts to use it.
# Set this to false if there is a problem with your server certificate
# that you cannot resolve. It should be true for Gmail SMTP.
# enable_starttls_auto: true
## Gravatar
## For Libravatar see: http://doc.gitlab.com/ce/customization/libravatar.html
gravatar:
...
...
@@ -295,6 +336,8 @@ production: &base
development:
<<: *base
outgoing_emails:
delivery_method: :letter_opener
test:
<<: *base
...
...
@@ -303,6 +346,8 @@ test:
gitlab:
host: localhost
port: 80
outgoing_emails:
delivery_method: :test
# When you run tests we clone and setup gitlab-shell
# In order to setup it correctly you need to specify
...
...
config/initializers/1_settings.rb
View file @
86ec49ad
...
...
@@ -105,10 +105,6 @@ def verify_constant(modul, current, default)
Settings
.
gitlab
[
'port'
]
||=
Settings
.
gitlab
.
https
?
443
:
80
Settings
.
gitlab
[
'relative_url_root'
]
||=
ENV
[
'RAILS_RELATIVE_URL_ROOT'
]
||
''
Settings
.
gitlab
[
'protocol'
]
||=
Settings
.
gitlab
.
https
?
"https"
:
"http"
Settings
.
gitlab
[
'email_enabled'
]
||=
true
if
Settings
.
gitlab
[
'email_enabled'
].
nil?
Settings
.
gitlab
[
'email_from'
]
||=
"gitlab@
#{
Settings
.
gitlab
.
host
}
"
Settings
.
gitlab
[
'email_display_name'
]
||=
"GitLab"
Settings
.
gitlab
[
'email_reply_to'
]
||=
"noreply@
#{
Settings
.
gitlab
.
host
}
"
Settings
.
gitlab
[
'url'
]
||=
Settings
.
send
(
:build_gitlab_url
)
Settings
.
gitlab
[
'user'
]
||=
'git'
Settings
.
gitlab
[
'user_home'
]
||=
begin
...
...
@@ -134,6 +130,26 @@ def verify_constant(modul, current, default)
Settings
.
gitlab
[
'repository_downloads_path'
]
=
File
.
absolute_path
(
Settings
.
gitlab
[
'repository_downloads_path'
]
||
'tmp/repositories'
,
Rails
.
root
)
Settings
.
gitlab
[
'restricted_signup_domains'
]
||=
[]
#
# Outgoing emails
#
Settings
[
'outgoing_emails'
]
||=
Settingslogic
.
new
({})
Settings
[
'outgoing_emails'
].
tap
do
|
opts
|
# For backward compatibility. TODO remove in next major release.
opts
[
'enabled'
]
||=
Settings
.
gitlab
[
'email_enabled'
]
opts
[
'from'
]
||=
Settings
.
gitlab
[
'email_from'
]
opts
[
'display_name'
]
||=
Settings
.
gitlab
[
'display_name'
]
opts
[
'reply_to'
]
||=
Settings
.
gitlab
[
'email_reply_to'
]
opts
[
'enabled'
]
||=
opts
[
'enabled'
].
nil?
opts
[
'display_name'
]
||=
"GitLab"
opts
[
'from'
]
||=
"gitlab@
#{
Settings
.
gitlab
.
host
}
"
opts
[
'reply_to'
]
||=
"noreply@
#{
Settings
.
gitlab
.
host
}
"
opts
[
'delivery_method'
]
||=
:sendmail
opts
[
'sendmail_settings'
]
||=
{}
opts
[
'smtp_settings'
]
||=
{}
end
#
# Gravatar
#
...
...
config/initializers/disable_email_interceptor.rb
View file @
86ec49ad
# Interceptor in lib/disable_email_interceptor.rb
ActionMailer
::
Base
.
register_interceptor
(
DisableEmailInterceptor
)
unless
Gitlab
.
config
.
gitlab
.
email_enabled
unless
Gitlab
.
config
.
outgoing_emails
.
enabled
ActionMailer
::
Base
.
register_interceptor
(
DisableEmailInterceptor
)
end
config/initializers/email_settings.rb
0 → 100644
View file @
86ec49ad
Gitlab
.
config
.
outgoing_emails
.
tap
do
|
c
|
Gitlab
::
Application
.
config
.
action_mailer
.
delivery_method
=
c
.
delivery_method
ActionMailer
::
Base
.
smtp_settings
=
c
.
smtp_settings
.
symbolize_keys
ActionMailer
::
Base
.
sendmail_settings
=
c
.
sendmail_settings
.
symbolize_keys
end
config/initializers/smtp_settings.rb.sample
deleted
100644 → 0
View file @
3f228230
# To enable smtp email delivery for your GitLab instance do the following:
# 1. Rename this file to smtp_settings.rb
# 2. Edit settings inside this file
# 3. Restart GitLab instance
#
# For full list of options and their values see http://api.rubyonrails.org/classes/ActionMailer/Base.html
#
if Rails.env.production?
Gitlab::Application.config.action_mailer.delivery_method = :smtp
ActionMailer::Base.smtp_settings = {
address: "email.server.com",
port: 456,
user_name: "smtp",
password: "123456",
domain: "gitlab.company.com",
authentication: :login,
enable_starttls_auto: true,
openssl_verify_mode: 'peer' # See ActionMailer documentation for other possible options
}
end
lib/tasks/gitlab/check.rake
View file @
86ec49ad
...
...
@@ -320,7 +320,7 @@ namespace :gitlab do
options
=
{
"user.name"
=>
"GitLab"
,
"user.email"
=>
Gitlab
.
config
.
gitlab
.
email_
from
,
"user.email"
=>
Gitlab
.
config
.
outgoing_emails
.
from
,
"core.autocrlf"
=>
"input"
}
correct_options
=
options
.
map
do
|
name
,
value
|
...
...
spec/mailers/notify_spec.rb
View file @
86ec49ad
...
...
@@ -5,9 +5,9 @@
include
EmailSpec
::
Matchers
include
RepoHelpers
let
(
:gitlab_sender_display_name
)
{
Gitlab
.
config
.
gitlab
.
email_
display_name
}
let
(
:gitlab_sender
)
{
Gitlab
.
config
.
gitlab
.
email_
from
}
let
(
:gitlab_sender_reply_to
)
{
Gitlab
.
config
.
gitlab
.
email_
reply_to
}
let
(
:gitlab_sender_display_name
)
{
Gitlab
.
config
.
outgoing_emails
.
display_name
}
let
(
:gitlab_sender
)
{
Gitlab
.
config
.
outgoing_emails
.
from
}
let
(
:gitlab_sender_reply_to
)
{
Gitlab
.
config
.
outgoing_emails
.
reply_to
}
let
(
:recipient
)
{
create
(
:user
,
email:
'recipient@example.com'
)
}
let
(
:project
)
{
create
(
:project
)
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment