1447 lines
52 KiB
Markdown
1447 lines
52 KiB
Markdown
---
|
|
stage: Systems
|
|
group: Distribution
|
|
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments
|
|
---
|
|
|
|
# SMTP settings
|
|
|
|
DETAILS:
|
|
**Tier:** Free, Premium, Ultimate
|
|
**Offering:** Self-managed
|
|
|
|
If you would rather send application email via an SMTP server instead of via
|
|
Sendmail or Postfix, add the following configuration information to
|
|
`/etc/gitlab/gitlab.rb` and run `gitlab-ctl reconfigure`.
|
|
|
|
WARNING:
|
|
Your `smtp_password` should not contain any String delimiters used in
|
|
Ruby or YAML (f.e. `'`) to avoid unexpected behavior during the processing of
|
|
config settings.
|
|
|
|
There are [example configurations](#example-configurations) at the end of this page.
|
|
|
|
```ruby
|
|
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'] = 'peer'
|
|
|
|
# If your SMTP server does not like the default 'From: gitlab@localhost' you
|
|
# can change the 'From' with this setting.
|
|
gitlab_rails['gitlab_email_from'] = 'gitlab@example.com'
|
|
gitlab_rails['gitlab_email_reply_to'] = 'noreply@example.com'
|
|
|
|
# If your SMTP server is using a self signed certificate or a certificate which
|
|
# is signed by a CA which is not trusted by default, you can specify a custom ca file.
|
|
# Please note that the certificates from /etc/gitlab/trusted-certs/ are
|
|
# not used for the verification of the SMTP server certificate.
|
|
gitlab_rails['smtp_ca_file'] = '/path/to/your/cacert.pem'
|
|
```
|
|
|
|
## SMTP connection pooling
|
|
|
|
You can enable SMTP connection pooling with the following setting:
|
|
|
|
```ruby
|
|
gitlab_rails['smtp_pool'] = true
|
|
```
|
|
|
|
This allows Sidekiq workers to reuse SMTP connections for multiple jobs. The maximum number of connections in the pool follows the [maximum concurrency configuration for Sidekiq](https://docs.gitlab.com/ee/administration/sidekiq/extra_sidekiq_processes.html#concurrency).
|
|
|
|
## Using encrypted credentials
|
|
|
|
Instead of storing the SMTP credentials in the configuration files as plain text, you can optionally
|
|
use an encrypted file for the SMTP credentials. To use this feature, you first need to enable
|
|
[GitLab encrypted configuration](https://docs.gitlab.com/ee/administration/encrypted_configuration.html).
|
|
|
|
The encrypted configuration for SMTP exists in an encrypted YAML file. By default the file will be created at
|
|
`/var/opt/gitlab/gitlab-rails/shared/encrypted_configuration/smtp.yaml.enc`. This location is configurable in the GitLab configuration.
|
|
|
|
The unencrypted contents of the file should be a subset of the settings from your `smtp_*'` settings in the `gitlab_rails`
|
|
configuration block.
|
|
|
|
The supported configuration items for the encrypted file are:
|
|
|
|
- `user_name`
|
|
- `password`
|
|
|
|
The encrypted contents can be configured with the [SMTP secret edit Rake command](https://docs.gitlab.com/ee/administration/raketasks/smtp.html).
|
|
|
|
**Configuration**
|
|
|
|
If initially your SMTP configuration looked like:
|
|
|
|
1. In `/etc/gitlab/gitlab.rb`:
|
|
|
|
```ruby
|
|
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'] = 'peer'
|
|
```
|
|
|
|
1. Edit the encrypted secret:
|
|
|
|
```shell
|
|
sudo gitlab-rake gitlab:smtp:secret:edit EDITOR=vim
|
|
```
|
|
|
|
1. The unencrypted contents of the SMTP secret should be entered like:
|
|
|
|
```yaml
|
|
user_name: 'smtp user'
|
|
password: 'smtp password'
|
|
```
|
|
|
|
1. Edit `/etc/gitlab/gitlab.rb` and remove the settings for `smtp_user_name` and `smtp_password`.
|
|
1. Reconfigure GitLab:
|
|
|
|
```shell
|
|
sudo gitlab-ctl reconfigure
|
|
```
|
|
|
|
## Example configurations
|
|
|
|
### SMTP on localhost
|
|
|
|
This configuration, which simply enables SMTP and otherwise uses the default settings, can be used for an MTA running on localhost that does not provide a `sendmail` interface or that provides a `sendmail` interface that is incompatible with GitLab, such as Exim.
|
|
|
|
```ruby
|
|
gitlab_rails['smtp_enable'] = true
|
|
```
|
|
|
|
### SMTP without SSL
|
|
|
|
By default SSL is enabled for SMTP. If your SMTP server does not support communication over SSL use following settings:
|
|
|
|
```ruby
|
|
gitlab_rails['smtp_enable'] = true
|
|
gitlab_rails['smtp_address'] = 'localhost'
|
|
gitlab_rails['smtp_port'] = 25
|
|
gitlab_rails['smtp_domain'] = 'localhost'
|
|
gitlab_rails['smtp_tls'] = false
|
|
gitlab_rails['smtp_openssl_verify_mode'] = 'none'
|
|
gitlab_rails['smtp_enable_starttls_auto'] = false
|
|
gitlab_rails['smtp_ssl'] = false
|
|
gitlab_rails['smtp_force_ssl'] = false
|
|
```
|
|
|
|
### Gmail
|
|
|
|
NOTE:
|
|
Gmail has [strict sending limits](https://support.google.com/a/answer/166852)
|
|
that can impair functionality as your organization grows. We strongly recommend using a
|
|
transactional service like [SendGrid](https://sendgrid.com/en-us) or [Mailgun](https://www.mailgun.com/)
|
|
for teams using SMTP configuration.
|
|
|
|
```ruby
|
|
gitlab_rails['smtp_enable'] = true
|
|
gitlab_rails['smtp_address'] = "smtp.gmail.com"
|
|
gitlab_rails['smtp_port'] = 587
|
|
gitlab_rails['smtp_user_name'] = "my.email@gmail.com"
|
|
gitlab_rails['smtp_password'] = "my-gmail-password"
|
|
gitlab_rails['smtp_domain'] = "smtp.gmail.com"
|
|
gitlab_rails['smtp_authentication'] = "login"
|
|
gitlab_rails['smtp_enable_starttls_auto'] = true
|
|
gitlab_rails['smtp_tls'] = false
|
|
gitlab_rails['smtp_openssl_verify_mode'] = 'peer' # Can be: 'none', 'peer', 'client_once', 'fail_if_no_peer_cert', see http://api.rubyonrails.org/classes/ActionMailer/Base.html
|
|
```
|
|
|
|
_Don't forget to change `my.email@gmail.com` to your email address and `my-gmail-password` to your own password._
|
|
|
|
_If you encounter authentication errors, ensure you have [allowed less secure apps to access the account](https://support.google.com/accounts/answer/6010255)
|
|
or try [turning on 2-step validation](https://support.google.com/accounts/answer/185839)
|
|
and using [an application password](https://support.google.com/mail/answer/185833)._
|
|
|
|
### Google SMTP relay
|
|
|
|
You can route outgoing non-Gmail messages through Google [using Google's SMTP relay service](https://support.google.com/a/answer/2956491?hl=en).
|
|
|
|
```ruby
|
|
gitlab_rails['smtp_enable'] = true
|
|
gitlab_rails['smtp_address'] = "smtp-relay.gmail.com"
|
|
gitlab_rails['smtp_port'] = 587
|
|
gitlab_rails['smtp_domain'] = "yourdomain.com"
|
|
gitlab_rails['gitlab_email_from'] = 'username@yourdomain.com'
|
|
gitlab_rails['gitlab_email_reply_to'] = 'username@yourdomain.com'
|
|
```
|
|
|
|
### Mailgun
|
|
|
|
```ruby
|
|
gitlab_rails['smtp_enable'] = true
|
|
gitlab_rails['smtp_address'] = "smtp.mailgun.org"
|
|
gitlab_rails['smtp_port'] = 587
|
|
gitlab_rails['smtp_authentication'] = "plain"
|
|
gitlab_rails['smtp_enable_starttls_auto'] = true
|
|
gitlab_rails['smtp_user_name'] = "postmaster@mg.gitlab.com"
|
|
gitlab_rails['smtp_password'] = "password"
|
|
gitlab_rails['smtp_domain'] = "mg.gitlab.com"
|
|
```
|
|
|
|
### Amazon Simple Email Service (AWS SES)
|
|
|
|
- Using STARTTLS
|
|
|
|
```ruby
|
|
gitlab_rails['smtp_enable'] = true
|
|
gitlab_rails['smtp_address'] = "email-smtp.region-1.amazonaws.com"
|
|
gitlab_rails['smtp_port'] = 587
|
|
gitlab_rails['smtp_user_name'] = "IAMmailerKey"
|
|
gitlab_rails['smtp_password'] = "IAMmailerSecret"
|
|
gitlab_rails['smtp_domain'] = "yourdomain.com"
|
|
gitlab_rails['smtp_authentication'] = "login"
|
|
gitlab_rails['smtp_enable_starttls_auto'] = true
|
|
```
|
|
|
|
Make sure to permit egress through port 587 in your ACL and security group.
|
|
|
|
- Using TLS Wrapper
|
|
|
|
```ruby
|
|
gitlab_rails['smtp_enable'] = true
|
|
gitlab_rails['smtp_address'] = "email-smtp.region-1.amazonaws.com"
|
|
gitlab_rails['smtp_port'] = 465
|
|
gitlab_rails['smtp_user_name'] = "IAMmailerKey"
|
|
gitlab_rails['smtp_password'] = "IAMmailerSecret"
|
|
gitlab_rails['smtp_domain'] = "yourdomain.com"
|
|
gitlab_rails['smtp_authentication'] = "login"
|
|
gitlab_rails['smtp_ssl'] = true
|
|
gitlab_rails['smtp_force_ssl'] = true
|
|
```
|
|
|
|
Make sure to permit egress through port 465 in your ACL and security group.
|
|
|
|
### Mandrill
|
|
|
|
```ruby
|
|
gitlab_rails['smtp_enable'] = true
|
|
gitlab_rails['smtp_address'] = "smtp.mandrillapp.com"
|
|
gitlab_rails['smtp_port'] = 587
|
|
gitlab_rails['smtp_user_name'] = "MandrillUsername"
|
|
gitlab_rails['smtp_password'] = "MandrillApiKey" # https://mandrillapp.com/settings
|
|
gitlab_rails['smtp_authentication'] = "login"
|
|
gitlab_rails['smtp_enable_starttls_auto'] = true
|
|
```
|
|
|
|
### SMTP.com
|
|
|
|
You can use the [SMTP.com](https://www.smtp.com/) email service. [Retrieve your sender login and password](https://kb.smtp.com/article/1043-my-account-1)
|
|
from your account.
|
|
|
|
To improve delivery by authorizing `SMTP.com` to send emails on behalf of your domain, you should:
|
|
|
|
- Specify `from` and `reply_to` addresses using your GitLab domain name.
|
|
- [Set up SPF and DKIM for the domain](https://kb.smtp.com/article/1039-email-authentication-spf-dkim-dmarc).
|
|
|
|
```ruby
|
|
gitlab_rails['smtp_enable'] = true
|
|
gitlab_rails['smtp_address'] = 'send.smtp.com'
|
|
gitlab_rails['smtp_port'] = 25 # If your outgoing port 25 is blocked, try 2525, 2082
|
|
gitlab_rails['smtp_enable_starttls_auto'] = true
|
|
gitlab_rails['smtp_authentication'] = 'plain'
|
|
gitlab_rails['smtp_user_name'] = 'your_sender_login'
|
|
gitlab_rails['smtp_password'] = 'your_sender_password'
|
|
gitlab_rails['smtp_domain'] = 'your.gitlab.domain.com'
|
|
gitlab_rails['gitlab_email_from'] = 'user@your.gitlab.domain.com'
|
|
gitlab_rails['gitlab_email_reply_to'] = 'user@your.gitlab.domain.com'
|
|
```
|
|
|
|
Check the [SMTP.com Knowledge Base](https://kb.smtp.com/) for further assistance.
|
|
|
|
### SparkPost
|
|
|
|
```ruby
|
|
gitlab_rails['smtp_enable'] = true
|
|
gitlab_rails['smtp_address'] = "smtp.sparkpostmail.com"
|
|
gitlab_rails['smtp_port'] = 587
|
|
gitlab_rails['smtp_user_name'] = "SMTP_Injection"
|
|
gitlab_rails['smtp_password'] = "SparkPost_API_KEY" # https://app.sparkpost.com/account/credentials
|
|
gitlab_rails['smtp_authentication'] = "login"
|
|
gitlab_rails['smtp_enable_starttls_auto'] = true
|
|
```
|
|
|
|
### Gandi
|
|
|
|
```ruby
|
|
gitlab_rails['smtp_enable'] = true
|
|
gitlab_rails['smtp_address'] = "mail.gandi.net"
|
|
gitlab_rails['smtp_port'] = 587
|
|
gitlab_rails['smtp_authentication'] = "plain"
|
|
gitlab_rails['smtp_enable_starttls_auto'] = true
|
|
gitlab_rails['smtp_user_name'] = "your.email@domain.com"
|
|
gitlab_rails['smtp_password'] = "your.password"
|
|
gitlab_rails['smtp_domain'] = "domain.com"
|
|
```
|
|
|
|
### Zoho Mail
|
|
|
|
This configuration was tested on Zoho Mail with a custom domain.
|
|
|
|
```ruby
|
|
gitlab_rails['smtp_enable'] = true
|
|
gitlab_rails['smtp_address'] = "smtp.zoho.com"
|
|
gitlab_rails['smtp_port'] = 587
|
|
gitlab_rails['smtp_authentication'] = "plain"
|
|
gitlab_rails['smtp_enable_starttls_auto'] = true
|
|
gitlab_rails['smtp_user_name'] = "gitlab@mydomain.com"
|
|
gitlab_rails['smtp_password'] = "mypassword"
|
|
gitlab_rails['smtp_domain'] = "smtp.zoho.com"
|
|
gitlab_rails['gitlab_email_from'] = 'gitlab@example.com'
|
|
gitlab_rails['gitlab_email_reply_to'] = 'noreply@example.com'
|
|
```
|
|
|
|
### SiteAge, LLC Zimbra Mail
|
|
|
|
```ruby
|
|
gitlab_rails['smtp_enable'] = true
|
|
gitlab_rails['smtp_address'] = 'mail.siteage.net'
|
|
gitlab_rails['smtp_port'] = 465
|
|
gitlab_rails['smtp_user_name'] = 'gitlab@domain.com'
|
|
gitlab_rails['smtp_password'] = 'password'
|
|
gitlab_rails['smtp_authentication'] = 'login'
|
|
gitlab_rails['smtp_enable_starttls_auto'] = false
|
|
gitlab_rails['gitlab_email_from'] = "gitlab@domain.com"
|
|
gitlab_rails['smtp_tls'] = true
|
|
```
|
|
|
|
### OVH
|
|
|
|
```ruby
|
|
gitlab_rails['smtp_enable'] = true
|
|
gitlab_rails['smtp_address'] = "ssl0.ovh.net"
|
|
gitlab_rails['smtp_port'] = 465
|
|
gitlab_rails['smtp_user_name'] = "username@domain.com"
|
|
gitlab_rails['smtp_password'] = "password"
|
|
gitlab_rails['smtp_domain'] = "ssl0.ovh.net"
|
|
gitlab_rails['smtp_authentication'] = "login"
|
|
gitlab_rails['smtp_enable_starttls_auto'] = false
|
|
gitlab_rails['smtp_tls'] = true
|
|
gitlab_rails['smtp_openssl_verify_mode'] = 'none'
|
|
```
|
|
|
|
### Outlook
|
|
|
|
```ruby
|
|
gitlab_rails['smtp_enable'] = true
|
|
gitlab_rails['smtp_address'] = "smtp-mail.outlook.com"
|
|
gitlab_rails['smtp_port'] = 587
|
|
gitlab_rails['smtp_user_name'] = "username@outlook.com"
|
|
gitlab_rails['smtp_password'] = "password"
|
|
gitlab_rails['smtp_domain'] = "smtp-mail.outlook.com"
|
|
gitlab_rails['smtp_authentication'] = "login"
|
|
gitlab_rails['smtp_enable_starttls_auto'] = true
|
|
gitlab_rails['smtp_openssl_verify_mode'] = 'peer'
|
|
```
|
|
|
|
### Office365
|
|
|
|
```ruby
|
|
gitlab_rails['smtp_enable'] = true
|
|
gitlab_rails['smtp_address'] = "smtp.office365.com"
|
|
gitlab_rails['smtp_port'] = 587
|
|
gitlab_rails['smtp_user_name'] = "username@yourdomain.com"
|
|
gitlab_rails['smtp_password'] = "password"
|
|
gitlab_rails['smtp_domain'] = "yourdomain.com"
|
|
gitlab_rails['smtp_authentication'] = "login"
|
|
gitlab_rails['smtp_enable_starttls_auto'] = true
|
|
gitlab_rails['smtp_openssl_verify_mode'] = 'peer'
|
|
gitlab_rails['gitlab_email_from'] = 'username@yourdomain.com'
|
|
```
|
|
|
|
### Office365 relay
|
|
|
|
```ruby
|
|
gitlab_rails['smtp_enable'] = true
|
|
gitlab_rails['smtp_address'] = "your mx endpoint"
|
|
gitlab_rails['smtp_port'] = 25
|
|
gitlab_rails['smtp_authentication'] = "login"
|
|
gitlab_rails['smtp_domain'] = "yourdomain.com"
|
|
gitlab_rails['gitlab_email_from'] = 'username@yourdomain.com'
|
|
gitlab_rails['gitlab_email_reply_to'] = 'noreply@yourdomain.com'
|
|
```
|
|
|
|
### Online.net
|
|
|
|
```ruby
|
|
gitlab_rails['smtp_enable'] = true
|
|
gitlab_rails['smtp_address'] = "smtpauth.online.net"
|
|
gitlab_rails['smtp_port'] = 465
|
|
gitlab_rails['smtp_user_name'] = "username@domain.com"
|
|
gitlab_rails['smtp_password'] = "password"
|
|
gitlab_rails['smtp_domain'] = "online.net"
|
|
gitlab_rails['smtp_authentication'] = "login"
|
|
gitlab_rails['smtp_enable_starttls_auto'] = false
|
|
gitlab_rails['smtp_tls'] = true
|
|
gitlab_rails['smtp_openssl_verify_mode'] = 'none'
|
|
```
|
|
|
|
### Amen.fr / Securemail.pro
|
|
|
|
```ruby
|
|
gitlab_rails['smtp_enable'] = true
|
|
gitlab_rails['smtp_address'] = "smtp-fr.securemail.pro"
|
|
gitlab_rails['smtp_port'] = 465
|
|
gitlab_rails['smtp_user_name'] = "username@domain.com"
|
|
gitlab_rails['smtp_password'] = "password"
|
|
gitlab_rails['smtp_tls'] = true
|
|
```
|
|
|
|
### 1&1
|
|
|
|
```ruby
|
|
gitlab_rails['smtp_enable'] = true
|
|
gitlab_rails['smtp_address'] = "smtp.1and1.com"
|
|
gitlab_rails['smtp_port'] = 587
|
|
gitlab_rails['smtp_user_name'] = "my.email@domain.com"
|
|
gitlab_rails['smtp_password'] = "1and1-email-password"
|
|
gitlab_rails['smtp_domain'] = "domain.com"
|
|
gitlab_rails['smtp_authentication'] = "login"
|
|
gitlab_rails['smtp_enable_starttls_auto'] = true
|
|
```
|
|
|
|
### yahoo
|
|
|
|
```ruby
|
|
gitlab_rails['gitlab_email_from'] = 'user@yahoo.com'
|
|
gitlab_rails['gitlab_email_reply_to'] = 'user@yahoo.com'
|
|
|
|
gitlab_rails['smtp_enable'] = true
|
|
gitlab_rails['smtp_address'] = "smtp.mail.yahoo.com"
|
|
gitlab_rails['smtp_port'] = 465
|
|
gitlab_rails['smtp_user_name'] = "user@yahoo.com"
|
|
gitlab_rails['smtp_password'] = "password"
|
|
gitlab_rails['smtp_authentication'] = "login"
|
|
gitlab_rails['smtp_enable_starttls_auto'] = false
|
|
gitlab_rails['smtp_tls'] = true
|
|
gitlab_rails['smtp_openssl_verify_mode'] = 'peer'
|
|
```
|
|
|
|
### QQ exmail
|
|
|
|
QQ exmail (腾讯企业邮箱)
|
|
|
|
```ruby
|
|
gitlab_rails['smtp_enable'] = true
|
|
gitlab_rails['smtp_address'] = "smtp.exmail.qq.com"
|
|
gitlab_rails['smtp_port'] = 465
|
|
gitlab_rails['smtp_user_name'] = "xxxx@xx.com"
|
|
gitlab_rails['smtp_password'] = "password"
|
|
gitlab_rails['smtp_authentication'] = "login"
|
|
gitlab_rails['smtp_enable_starttls_auto'] = false
|
|
gitlab_rails['smtp_tls'] = true
|
|
gitlab_rails['gitlab_email_from'] = 'xxxx@xx.com'
|
|
gitlab_rails['smtp_domain'] = "exmail.qq.com"
|
|
```
|
|
|
|
### NetEase Free Enterprise Email
|
|
|
|
NetEase Free Enterprise Email (网易免费企业邮)
|
|
|
|
```ruby
|
|
gitlab_rails['smtp_enable'] = true
|
|
gitlab_rails['smtp_address'] = "smtp.ym.163.com"
|
|
gitlab_rails['smtp_port'] = 465
|
|
gitlab_rails['smtp_user_name'] = "xxxx@xx.com"
|
|
gitlab_rails['smtp_password'] = "password"
|
|
gitlab_rails['smtp_authentication'] = "login"
|
|
gitlab_rails['smtp_enable_starttls_auto'] = false
|
|
gitlab_rails['smtp_tls'] = true
|
|
gitlab_rails['gitlab_email_from'] = 'xxxx@xx.com'
|
|
gitlab_rails['smtp_domain'] = "smtp.ym.163.com"
|
|
```
|
|
|
|
### SendGrid with username/password authentication
|
|
|
|
```ruby
|
|
gitlab_rails['smtp_enable'] = true
|
|
gitlab_rails['smtp_address'] = "smtp.sendgrid.net"
|
|
gitlab_rails['smtp_port'] = 587
|
|
gitlab_rails['smtp_user_name'] = "a_sendgrid_crendential"
|
|
gitlab_rails['smtp_password'] = "a_sendgrid_password"
|
|
gitlab_rails['smtp_domain'] = "smtp.sendgrid.net"
|
|
gitlab_rails['smtp_authentication'] = "login"
|
|
gitlab_rails['smtp_enable_starttls_auto'] = true
|
|
gitlab_rails['smtp_tls'] = false
|
|
```
|
|
|
|
### SendGrid with API Key authentication
|
|
|
|
If you don't want to supply a username/password, you can use an [API key](https://docs.sendgrid.com/for-developers/sending-email/getting-started-smtp):
|
|
|
|
```ruby
|
|
gitlab_rails['smtp_enable'] = true
|
|
gitlab_rails['smtp_address'] = "smtp.sendgrid.net"
|
|
gitlab_rails['smtp_port'] = 587
|
|
gitlab_rails['smtp_user_name'] = "apikey"
|
|
gitlab_rails['smtp_password'] = "the_api_key_you_created"
|
|
gitlab_rails['smtp_domain'] = "smtp.sendgrid.net"
|
|
gitlab_rails['smtp_authentication'] = "plain"
|
|
gitlab_rails['smtp_enable_starttls_auto'] = true
|
|
gitlab_rails['smtp_tls'] = false
|
|
# If use Single Sender Verification You must configure from. If not fail
|
|
# 550 The from address does not match a verified Sender Identity. Mail cannot be sent until this error is resolved.
|
|
# Visit https://sendgrid.com/docs/for-developers/sending-email/sender-identity/ to see the Sender Identity requirements
|
|
gitlab_rails['gitlab_email_from'] = 'email@sender_owner_api'
|
|
gitlab_rails['gitlab_email_reply_to'] = 'email@sender_owner_reply_api'
|
|
```
|
|
|
|
Note that `smtp_user_name` must literally be set to `"apikey"`.
|
|
The API Key you created must be entered in `smtp_password`.
|
|
|
|
### Brevo
|
|
|
|
This configuration was tested with the Brevo [SMTP relay service](hhttps://www.brevo.com/free-smtp-server/). To grab the
|
|
relevant account credentials via the URLs commented into this example, [log in to your Brevo account](https://login.brevo.com).
|
|
|
|
For further details, refer to the Brevo [help page](https://help.brevo.com/hc/en-us/articles/209462765-What-is-Brevo-SMTP).
|
|
|
|
```ruby
|
|
gitlab_rails['smtp_enable'] = true
|
|
gitlab_rails['smtp_address'] = "smtp-relay.sendinblue.com"
|
|
gitlab_rails['smtp_port'] = 465
|
|
gitlab_rails['smtp_user_name'] = "<username@example.com>" # https://app.brevo.com/settings/keys/smtp
|
|
gitlab_rails['smtp_password'] = "<password>" # https://app.brevo.com/settings/keys/smtp
|
|
gitlab_rails['smtp_domain'] = "<example.com>"
|
|
gitlab_rails['smtp_authentication'] = "login"
|
|
gitlab_rails['smtp_enable_starttls_auto'] = false
|
|
gitlab_rails['smtp_tls'] = true
|
|
gitlab_rails['gitlab_email_from'] = '<gitlab@example.com>'
|
|
gitlab_rails['gitlab_email_reply_to'] = '<noreply@example.com>'
|
|
```
|
|
|
|
### SMTP2GO
|
|
|
|
This configuration was tested using [SMTP2GO](https://www.smtp2go.com/). To get the relevant account credentials using the URLs commented in this example, [sign in to your SMTP2GO account](https://app.smtp2go.com/login/).
|
|
|
|
```ruby
|
|
gitlab_rails['smtp_enable'] = true
|
|
gitlab_rails['smtp_address'] = "mail.smtp2go.com"
|
|
gitlab_rails['smtp_port'] = 465
|
|
gitlab_rails['smtp_user_name'] = "<username>" # https://app.smtp2go.com/settings/users
|
|
gitlab_rails['smtp_password'] = "<password>" # https://app.smtp2go.com/settings/users
|
|
gitlab_rails['smtp_domain'] = "<example.com>" # https://app.smtp2go.com/settings/sender_domains
|
|
gitlab_rails['smtp_authentication'] = "login"
|
|
gitlab_rails['smtp_enable_starttls_auto'] = false
|
|
gitlab_rails['smtp_tls'] = true
|
|
```
|
|
|
|
### Yandex
|
|
|
|
```ruby
|
|
gitlab_rails['smtp_enable'] = true
|
|
gitlab_rails['smtp_address'] = "smtp.yandex.ru"
|
|
gitlab_rails['smtp_port'] = 465
|
|
gitlab_rails['smtp_user_name'] = "login"
|
|
gitlab_rails['smtp_password'] = "password"
|
|
gitlab_rails['smtp_domain'] = "yourdomain_or_yandex.ru"
|
|
gitlab_rails['gitlab_email_from'] = 'login_or_login@yandex.ru'
|
|
gitlab_rails['smtp_authentication'] = "login"
|
|
gitlab_rails['smtp_tls'] = true
|
|
gitlab_rails['smtp_enable_starttls_auto'] = false
|
|
gitlab_rails['smtp_openssl_verify_mode'] = 'peer'
|
|
```
|
|
|
|
### UD Media
|
|
|
|
```ruby
|
|
gitlab_rails['smtp_enable'] = true
|
|
gitlab_rails['smtp_address'] = "mail.udXX.udmedia.de" # Replace XX, see smtp server information: https://www.udmedia.de/login/mail/
|
|
gitlab_rails['smtp_port'] = 587
|
|
gitlab_rails['smtp_user_name'] = "login"
|
|
gitlab_rails['smtp_password'] = "password"
|
|
gitlab_rails['smtp_authentication'] = "login"
|
|
gitlab_rails['smtp_enable_starttls_auto'] = true
|
|
gitlab_rails['smtp_openssl_verify_mode'] = 'peer'
|
|
```
|
|
|
|
### Microsoft Exchange (no authentication)
|
|
|
|
```ruby
|
|
gitlab_rails['smtp_enable'] = true
|
|
gitlab_rails['smtp_address'] = "example.com"
|
|
gitlab_rails['smtp_port'] = 25
|
|
gitlab_rails['smtp_domain'] = "example.com"
|
|
gitlab_rails['smtp_enable_starttls_auto'] = true
|
|
```
|
|
|
|
### Microsoft Exchange (with authentication)
|
|
|
|
```ruby
|
|
gitlab_rails['smtp_enable'] = true
|
|
gitlab_rails['smtp_address'] = "mail.example.com"
|
|
gitlab_rails['smtp_port'] = 587
|
|
gitlab_rails['smtp_user_name'] = "username@domain.com"
|
|
gitlab_rails['smtp_password'] = 'password'
|
|
gitlab_rails['smtp_domain'] = "mail.example.com"
|
|
gitlab_rails['smtp_authentication'] = "login"
|
|
gitlab_rails['smtp_enable_starttls_auto'] = true
|
|
```
|
|
|
|
### Strato.de
|
|
|
|
```ruby
|
|
gitlab_rails['smtp_enable'] = true
|
|
gitlab_rails['smtp_address'] = "smtp.strato.de"
|
|
gitlab_rails['smtp_port'] = 465
|
|
gitlab_rails['smtp_user_name'] = "username@stratodomain.de"
|
|
gitlab_rails['smtp_password'] = "strato_email_password"
|
|
gitlab_rails['smtp_domain'] = "stratodomain.de"
|
|
gitlab_rails['smtp_authentication'] = "login"
|
|
gitlab_rails['smtp_enable_starttls_auto'] = false
|
|
gitlab_rails['smtp_tls'] = true
|
|
gitlab_rails['smtp_openssl_verify_mode'] = 'none'
|
|
```
|
|
|
|
### Rackspace
|
|
|
|
```ruby
|
|
gitlab_rails['smtp_enable'] = true
|
|
gitlab_rails['smtp_address'] = "secure.emailsrvr.com"
|
|
gitlab_rails['smtp_port'] = 465
|
|
gitlab_rails['smtp_user_name'] = "username@domain.com"
|
|
gitlab_rails['smtp_password'] = "password"
|
|
gitlab_rails['smtp_domain'] = "domain.com"
|
|
gitlab_rails['smtp_authentication'] = "login"
|
|
gitlab_rails['smtp_enable_starttls_auto'] = false
|
|
gitlab_rails['smtp_tls'] = true
|
|
gitlab_rails['smtp_openssl_verify_mode'] = 'peer'
|
|
|
|
gitlab_rails['gitlab_email_from'] = 'username@domain.com'
|
|
gitlab_rails['gitlab_email_reply_to'] = 'username@domain.com'
|
|
```
|
|
|
|
### DomainFactory (df.eu)
|
|
|
|
```ruby
|
|
gitlab_rails['smtp_enable'] = true
|
|
gitlab_rails['smtp_address'] = "sslout.df.eu"
|
|
gitlab_rails['smtp_port'] = 465
|
|
gitlab_rails['smtp_user_name'] = "username@domain.com"
|
|
gitlab_rails['smtp_password'] = "password"
|
|
gitlab_rails['smtp_domain'] = "domain.com"
|
|
gitlab_rails['smtp_authentication'] = "login"
|
|
gitlab_rails['smtp_enable_starttls_auto'] = false
|
|
gitlab_rails['smtp_tls'] = true
|
|
gitlab_rails['smtp_openssl_verify_mode'] = 'none'
|
|
```
|
|
|
|
### Infomaniak (infomaniak.com)
|
|
|
|
```ruby
|
|
gitlab_rails['smtp_enable'] = true
|
|
gitlab_rails['smtp_address'] = "mail.infomaniak.com"
|
|
gitlab_rails['smtp_port'] = 587
|
|
gitlab_rails['smtp_user_name'] = "username"
|
|
gitlab_rails['smtp_password'] = "password"
|
|
gitlab_rails['smtp_domain'] = "mail.infomaniak.com"
|
|
gitlab_rails['smtp_authentication'] = "login"
|
|
gitlab_rails['smtp_enable_starttls_auto'] = true
|
|
gitlab_rails['smtp_tls'] = false
|
|
gitlab_rails['smtp_openssl_verify_mode'] = 'none'
|
|
```
|
|
|
|
### GoDaddy (TLS)
|
|
|
|
- European servers: smtpout.europe.secureserver.net
|
|
- Asian servers: smtpout.asia.secureserver.net
|
|
- Global (US) servers: smtpout.secureserver.net
|
|
|
|
```ruby
|
|
gitlab_rails['gitlab_email_from'] = 'username@domain.com'
|
|
|
|
gitlab_rails['smtp_enable'] = true
|
|
gitlab_rails['smtp_address'] = "smtpout.secureserver.net"
|
|
gitlab_rails['smtp_port'] = 465
|
|
gitlab_rails['smtp_user_name'] = "username@domain.com"
|
|
gitlab_rails['smtp_password'] = "password"
|
|
gitlab_rails['smtp_domain'] = "domain.com"
|
|
gitlab_rails['smtp_authentication'] = "login"
|
|
gitlab_rails['smtp_enable_starttls_auto'] = false
|
|
gitlab_rails['smtp_tls'] = true
|
|
```
|
|
|
|
### GoDaddy (No TLS)
|
|
|
|
See GoDaddy (TLS) entry above for mail server list.
|
|
|
|
```ruby
|
|
gitlab_rails['gitlab_email_from'] = 'username@domain.com'
|
|
|
|
gitlab_rails['smtp_enable'] = true
|
|
gitlab_rails['smtp_address'] = "smtpout.secureserver.net"
|
|
gitlab_rails['smtp_port'] = 80
|
|
gitlab_rails['smtp_user_name'] = "username@domain.com"
|
|
gitlab_rails['smtp_password'] = "password"
|
|
gitlab_rails['smtp_domain'] = "domain.com"
|
|
gitlab_rails['smtp_authentication'] = "plain"
|
|
gitlab_rails['smtp_enable_starttls_auto'] = false
|
|
gitlab_rails['smtp_tls'] = false
|
|
```
|
|
|
|
### OpenSRS (hostedemail.com)
|
|
|
|
```ruby
|
|
gitlab_rails['smtp_enable'] = true
|
|
gitlab_rails['smtp_address'] = "mail.hostedemail.com"
|
|
gitlab_rails['smtp_port'] = 465
|
|
gitlab_rails['smtp_user_name'] = "username@domain.com"
|
|
gitlab_rails['smtp_password'] = "password"
|
|
gitlab_rails['smtp_domain'] = "domain.com"
|
|
gitlab_rails['smtp_authentication'] = "login"
|
|
gitlab_rails['smtp_tls'] = true
|
|
gitlab_rails['smtp_enable_starttls_auto'] = false
|
|
gitlab_rails['smtp_openssl_verify_mode'] = 'peer'
|
|
|
|
gitlab_rails['gitlab_email_from'] = 'username@domain.com'
|
|
gitlab_rails['gitlab_email_reply_to'] = 'username@domain.com'
|
|
```
|
|
|
|
### Aruba (aruba.it)
|
|
|
|
```ruby
|
|
gitlab_rails['smtp_enable'] = true
|
|
gitlab_rails['smtp_address'] = "smtps.aruba.it"
|
|
gitlab_rails['smtp_port'] = 465
|
|
gitlab_rails['smtp_user_name'] = "user@yourdomain.com"
|
|
gitlab_rails['smtp_password'] = "password"
|
|
gitlab_rails['smtp_domain'] = "yourdomain.com"
|
|
gitlab_rails['smtp_authentication'] = "login"
|
|
gitlab_rails['smtp_ssl'] = true
|
|
```
|
|
|
|
### Alibaba Cloud Direct Mail (No TLS)
|
|
|
|
```ruby
|
|
gitlab_rails['smtp_enable'] = true
|
|
gitlab_rails['smtp_address'] = "smtpdm-ap-southeast-1.aliyun.com" # Set to the Direct Mail service region in use, refer to: https://www.alibabacloud.com/help/en/directmail/latest/smtp-service-address
|
|
gitlab_rails['smtp_port'] = 80
|
|
gitlab_rails['smtp_user_name'] = "<username@example.com>" # Direct Mail sender address
|
|
gitlab_rails['smtp_password'] = "<password>" # Set Direct Mail password
|
|
gitlab_rails['smtp_domain'] = "<example.com>" # Email domain configured in Direct Mail
|
|
gitlab_rails['smtp_authentication'] = "login"
|
|
gitlab_rails['smtp_enable_starttls_auto'] = false
|
|
gitlab_rails['smtp_tls'] = false
|
|
gitlab_rails['smtp_openssl_verify_mode'] = 'none'
|
|
gitlab_rails['gitlab_email_from'] = "<username@example.com>" # Email domain configured in Direct Mail
|
|
```
|
|
|
|
### Alibaba Cloud Direct Mail (TLS)
|
|
|
|
```ruby
|
|
gitlab_rails['smtp_enable'] = true
|
|
gitlab_rails['smtp_address'] = "smtpdm-ap-southeast-1.aliyun.com" # Set to the Direct Mail service region in use, refer to: https://www.alibabacloud.com/help/en/directmail/latest/smtp-service-address
|
|
gitlab_rails['smtp_port'] = 465
|
|
gitlab_rails['smtp_user_name'] = "<username@example.com>" # Direct Mail sender address
|
|
gitlab_rails['smtp_password'] = "<password>" # Set Direct Mail password
|
|
gitlab_rails['smtp_domain'] = "<example.com>" # Email domain configured in Direct Mail
|
|
gitlab_rails['smtp_authentication'] = "login"
|
|
gitlab_rails['smtp_enable_starttls_auto'] = false
|
|
gitlab_rails['smtp_tls'] = true
|
|
gitlab_rails['gitlab_email_from'] = "<username@example.com>" # Email domain configured in Direct Mail
|
|
```
|
|
|
|
### Aliyun Direct Mail
|
|
|
|
Aliyun Direct Mail (阿里云邮件推送)
|
|
|
|
```ruby
|
|
gitlab_rails['gitlab_email_from'] = 'username@your domain'
|
|
gitlab_rails['smtp_enable'] = true
|
|
gitlab_rails['smtp_address'] = "smtpdm.aliyun.com"
|
|
gitlab_rails['smtp_port'] = 80
|
|
gitlab_rails['smtp_user_name'] = "username@your domain"
|
|
gitlab_rails['smtp_password'] = "password"
|
|
gitlab_rails['smtp_domain'] = "your domain"
|
|
gitlab_rails['smtp_authentication'] = "login"
|
|
```
|
|
|
|
### Aliyun Enterprise Mail with TLS
|
|
|
|
Aliyun Enterprise Mail with TLS (阿里企业邮箱)
|
|
|
|
```ruby
|
|
gitlab_rails['smtp_enable'] = true
|
|
gitlab_rails['smtp_address'] = "smtp.qiye.aliyun.com"
|
|
gitlab_rails['smtp_port'] = 465
|
|
gitlab_rails['smtp_user_name'] = "username@your domain"
|
|
gitlab_rails['smtp_password'] = "password"
|
|
gitlab_rails['smtp_domain'] = "your domain"
|
|
gitlab_rails['smtp_authentication'] = "login"
|
|
gitlab_rails['smtp_enable_starttls_auto'] = false
|
|
gitlab_rails['smtp_tls'] = true
|
|
```
|
|
|
|
### FastMail
|
|
|
|
FastMail requires an
|
|
[App Password](https://www.fastmail.help/hc/en-us/articles/360058752854-App-passwords)
|
|
even when two-step verification is not enabled.
|
|
|
|
```ruby
|
|
gitlab_rails['smtp_enable'] = true
|
|
gitlab_rails['smtp_address'] = "smtp.fastmail.com"
|
|
gitlab_rails['smtp_port'] = 465
|
|
gitlab_rails['smtp_user_name'] = "account@fastmail.com"
|
|
gitlab_rails['smtp_password'] = "app-specific-password"
|
|
gitlab_rails['smtp_enable_starttls_auto'] = false
|
|
gitlab_rails['smtp_tls'] = true
|
|
gitlab_rails['smtp_openssl_verify_mode'] = 'peer'
|
|
```
|
|
|
|
### Dinahosting
|
|
|
|
```ruby
|
|
gitlab_rails['gitlab_email_from'] = 'username@example.com'
|
|
gitlab_rails['smtp_enable'] = true
|
|
gitlab_rails['smtp_address'] = "example-com.correoseguro.dinaserver.com"
|
|
gitlab_rails['smtp_port'] = 587
|
|
gitlab_rails['smtp_user_name'] = "username-example-com"
|
|
gitlab_rails['smtp_password'] = "mypassword"
|
|
gitlab_rails['smtp_domain'] = "example-com.correoseguro.dinaserver.com"
|
|
gitlab_rails['smtp_authentication'] = "login"
|
|
gitlab_rails['smtp_enable_starttls_auto'] = false
|
|
gitlab_rails['smtp_tls'] = false
|
|
gitlab_rails['smtp_openssl_verify_mode'] = 'peer'
|
|
```
|
|
|
|
### GMX Mail
|
|
|
|
```ruby
|
|
gitlab_rails['smtp_enable'] = true
|
|
gitlab_rails['smtp_address'] = "mail.gmx.com"
|
|
gitlab_rails['smtp_port'] = 465
|
|
gitlab_rails['smtp_user_name'] = "my-gitlab@gmx.com"
|
|
gitlab_rails['smtp_password'] = "Pa5svv()rD"
|
|
gitlab_rails['smtp_domain'] = "mail.gmx.com"
|
|
gitlab_rails['smtp_authentication'] = "login"
|
|
gitlab_rails['smtp_enable_starttls_auto'] = false
|
|
gitlab_rails['smtp_tls'] = true
|
|
gitlab_rails['smtp_openssl_verify_mode'] = 'peer'
|
|
|
|
### Email Settings
|
|
gitlab_rails['gitlab_email_enabled'] = true
|
|
gitlab_rails['gitlab_email_from'] = 'my-gitlab@gmx.com'
|
|
gitlab_rails['gitlab_email_display_name'] = 'My GitLab'
|
|
gitlab_rails['gitlab_email_reply_to'] = 'noreply@gmx.com'
|
|
```
|
|
|
|
### Hetzner
|
|
|
|
```ruby
|
|
gitlab_rails['smtp_enable'] = true
|
|
gitlab_rails['smtp_address'] = "mail.your-server.de"
|
|
gitlab_rails['smtp_port'] = 587
|
|
gitlab_rails['smtp_user_name'] = "user@example.com"
|
|
gitlab_rails['smtp_password'] = "mypassword"
|
|
gitlab_rails['smtp_domain'] = "mail.your-server.de"
|
|
gitlab_rails['smtp_authentication'] = "login"
|
|
gitlab_rails['smtp_enable_starttls_auto'] = true
|
|
gitlab_rails['smtp_tls'] = false
|
|
gitlab_rails['gitlab_email_from'] = "example@example.com"
|
|
```
|
|
|
|
### Snel.com
|
|
|
|
```ruby
|
|
gitlab_rails['smtp_enable'] = true
|
|
gitlab_rails['smtp_address'] = "smtprelay.snel.com"
|
|
gitlab_rails['smtp_port'] = 587
|
|
gitlab_rails['smtp_domain'] = "example.com"
|
|
gitlab_rails['smtp_authentication'] = false
|
|
gitlab_rails['smtp_enable_starttls_auto'] = true
|
|
gitlab_rails['smtp_tls'] = false
|
|
gitlab_rails['gitlab_email_from'] = "example@example.com"
|
|
gitlab_rails['gitlab_email_reply_to'] = "example@example.com"
|
|
```
|
|
|
|
### JangoSMTP
|
|
|
|
```ruby
|
|
gitlab_rails['smtp_enable'] = true
|
|
gitlab_rails['smtp_address'] = "express-relay.jangosmtp.net"
|
|
gitlab_rails['smtp_port'] = 587
|
|
gitlab_rails['smtp_authentication'] = "plain"
|
|
gitlab_rails['smtp_enable_starttls_auto'] = true
|
|
gitlab_rails['smtp_user_name'] = "your.username"
|
|
gitlab_rails['smtp_password'] = "your.password"
|
|
gitlab_rails['smtp_domain'] = "domain.com"
|
|
gitlab_rails['gitlab_email_from'] = 'gitlab@domain.com'
|
|
gitlab_rails['gitlab_email_reply_to'] = 'noreply@domain.com'
|
|
```
|
|
|
|
### Mailjet
|
|
|
|
```ruby
|
|
gitlab_rails['smtp_enable'] = true
|
|
gitlab_rails['smtp_address'] = "in-v3.mailjet.com"
|
|
gitlab_rails['smtp_port'] = 587
|
|
gitlab_rails['smtp_user_name'] = "mailjet-api-key"
|
|
gitlab_rails['smtp_password'] = "mailjet-secret-key"
|
|
gitlab_rails['smtp_domain'] = "in-v3.mailjet.com"
|
|
gitlab_rails['smtp_authentication'] = "plain"
|
|
gitlab_rails['smtp_enable_starttls_auto'] = true
|
|
gitlab_rails['smtp_tls'] = false
|
|
gitlab_rails['gitlab_email_from'] = 'gitlab@domain.com'
|
|
gitlab_rails['gitlab_email_reply_to'] = 'noreply@domain.com'
|
|
```
|
|
|
|
### Mailcow
|
|
|
|
```ruby
|
|
gitlab_rails['smtp_enable'] = true
|
|
gitlab_rails['smtp_address'] = "smtp.example.com"
|
|
gitlab_rails['smtp_port'] = 587
|
|
gitlab_rails['smtp_user_name'] = "yourmail@example.com"
|
|
gitlab_rails['smtp_password'] = "yourpassword"
|
|
gitlab_rails['smtp_domain'] = "smtp.example.com"
|
|
gitlab_rails['smtp_authentication'] = "login"
|
|
gitlab_rails['smtp_enable_starttls_auto'] = true
|
|
gitlab_rails['smtp_tls'] = false
|
|
gitlab_rails['smtp_openssl_verify_mode'] = 'none'
|
|
```
|
|
|
|
### ALL-INKL.COM
|
|
|
|
```ruby
|
|
gitlab_rails['smtp_enable'] = true
|
|
gitlab_rails['smtp_address'] = "<userserver>.kasserver.com"
|
|
gitlab_rails['smtp_port'] = 465
|
|
gitlab_rails['smtp_user_name'] = "<username>"
|
|
gitlab_rails['smtp_password'] = "<password>"
|
|
gitlab_rails['smtp_domain'] = "<your.domain>"
|
|
gitlab_rails['smtp_authentication'] = "login"
|
|
gitlab_rails['smtp_tls'] = true
|
|
```
|
|
|
|
### webgo.de
|
|
|
|
```ruby
|
|
gitlab_rails['smtp_enable'] = true
|
|
gitlab_rails['smtp_address'] = "sXX.goserver.host" # or serverXX.webgo24.de
|
|
gitlab_rails['smtp_port'] = 587
|
|
gitlab_rails['smtp_user_name'] = "webXXXpX"
|
|
gitlab_rails['smtp_password'] = "Your Password"
|
|
gitlab_rails['smtp_domain'] = "sXX.goserver.host" # or serverXX.webgo24.de
|
|
gitlab_rails['smtp_authentication'] = "login"
|
|
gitlab_rails['smtp_enable_starttls_auto'] = true
|
|
gitlab_rails['gitlab_email_from'] = 'Your Mail Address'
|
|
gitlab_rails['gitlab_email_reply_to'] = 'Your Mail Address'
|
|
```
|
|
|
|
### mxhichina.com
|
|
|
|
```ruby
|
|
gitlab_rails['gitlab_email_from'] = "username@company.com"
|
|
gitlab_rails['smtp_enable'] = true
|
|
gitlab_rails['smtp_address'] = "smtp.mxhichina.com"
|
|
gitlab_rails['smtp_port'] = 465
|
|
gitlab_rails['smtp_user_name'] = "username@company.com"
|
|
gitlab_rails['smtp_password'] = "password"
|
|
gitlab_rails['smtp_domain'] = "mxhichina.com"
|
|
gitlab_rails['smtp_authentication'] = "login"
|
|
gitlab_rails['smtp_enable_starttls_auto'] = false
|
|
gitlab_rails['smtp_tls'] = true
|
|
```
|
|
|
|
### Postmark
|
|
|
|
```ruby
|
|
gitlab_rails['smtp_enable'] = true
|
|
gitlab_rails['smtp_address'] = "smtp.postmarkapp.com"
|
|
gitlab_rails['smtp_port'] = 587
|
|
gitlab_rails['smtp_user_name'] = "your_api_token"
|
|
gitlab_rails['smtp_password'] = "your_api_token"
|
|
gitlab_rails['smtp_domain'] = "example.com"
|
|
gitlab_rails['smtp_enable_starttls_auto'] = true
|
|
gitlab_rails['smtp_tls'] = false
|
|
gitlab_rails['gitlab_email_from'] = 'gitlab@example.com'
|
|
gitlab_rails['gitlab_email_reply_to'] = 'noreply@example.com'
|
|
```
|
|
|
|
### easyDNS (outbound mail)
|
|
|
|
Check if it's available/enabled and configuration settings in the [control panel](https://cp.easydns.com/manage/domains/mail/outbound/).
|
|
|
|
```ruby
|
|
gitlab_rails['smtp_enable'] = true
|
|
gitlab_rails['smtp_address'] = "mailout.easydns.com"
|
|
gitlab_rails['smtp_port'] = 587
|
|
gitlab_rails['smtp_force_ssl'] = true
|
|
gitlab_rails['smtp_enable_starttls_auto'] = true
|
|
gitlab_rails['smtp_authentication'] = "login"
|
|
gitlab_rails['smtp_user_name'] = "example.com"
|
|
gitlab_rails['smtp_domain'] = "example.com"
|
|
gitlab_rails['smtp_password'] = "password_you_set"
|
|
gitlab_rails['gitlab_email_from'] = 'no-reply@git.example.com'
|
|
```
|
|
|
|
### Campaign Monitor
|
|
|
|
```ruby
|
|
gitlab_rails['smtp_enable'] = true
|
|
gitlab_rails['smtp_address'] = "smtp.api.createsend.com"
|
|
gitlab_rails['smtp_port'] = 465
|
|
gitlab_rails['smtp_user_name'] = "your_api_token" # Menu > Transactional > Send with SMTP > SMTP tokens > Token
|
|
gitlab_rails['smtp_password'] = "your_api_token" # Same as gitlab_rails['smtp_user_name'] value
|
|
gitlab_rails['smtp_domain'] = "example.com"
|
|
gitlab_rails['smtp_authentication'] = "login"
|
|
gitlab_rails['smtp_enable_starttls_auto'] = true
|
|
gitlab_rails['smtp_tls'] = false
|
|
gitlab_rails['smtp_openssl_verify_mode'] = 'peer'
|
|
gitlab_rails['gitlab_email_from'] = 'gitlab@example.com'
|
|
gitlab_rails['gitlab_email_reply_to'] = 'noreply@example.com'
|
|
```
|
|
|
|
### Freehostia
|
|
|
|
```ruby
|
|
gitlab_rails['smtp_enable'] = true
|
|
gitlab_rails['smtp_address'] = "mbox.freehostia.com"
|
|
gitlab_rails['smtp_port'] = 465
|
|
gitlab_rails['smtp_user_name'] = "username@example.com"
|
|
gitlab_rails['smtp_password'] = "password_you_set"
|
|
gitlab_rails['smtp_domain'] = "mbox.freehostia.com"
|
|
gitlab_rails['smtp_authentication'] = "login"
|
|
gitlab_rails['smtp_enable_starttls_auto'] = false
|
|
gitlab_rails['smtp_tls'] = true
|
|
gitlab_rails['smtp_openssl_verify_mode'] = 'none'
|
|
```
|
|
|
|
### Mailbox.org
|
|
|
|
```ruby
|
|
gitlab_rails['smtp_enable'] = true
|
|
gitlab_rails['smtp_address'] = "smtp.mailbox.org"
|
|
gitlab_rails['smtp_port'] = 465
|
|
gitlab_rails['smtp_user_name'] = "username@example.com"
|
|
gitlab_rails['smtp_password'] = "password_you_set"
|
|
gitlab_rails['smtp_domain'] = "smtp.mailbox.org"
|
|
gitlab_rails['smtp_authentication'] = "login"
|
|
gitlab_rails['smtp_enable_starttls_auto'] = false
|
|
gitlab_rails['smtp_tls'] = true
|
|
gitlab_rails['smtp_openssl_verify_mode'] = 'none'
|
|
```
|
|
|
|
### Mittwald CM Service (mittwald.de)
|
|
|
|
```ruby
|
|
gitlab_rails['smtp_enable'] = true
|
|
gitlab_rails['smtp_address'] = "mail.agenturserver.de"
|
|
gitlab_rails['smtp_port'] = 587
|
|
gitlab_rails['smtp_user_name'] = "username@example.com"
|
|
gitlab_rails['smtp_password'] = "password_you_set"
|
|
gitlab_rails['smtp_domain'] = "example.com"
|
|
gitlab_rails['smtp_authentication'] = "plain"
|
|
gitlab_rails['smtp_enable_starttls_auto'] = true
|
|
|
|
gitlab_rails['gitlab_email_from'] = "username@example.com"
|
|
gitlab_rails['gitlab_email_reply_to'] = "username@example.com"
|
|
```
|
|
|
|
### Unitymedia (.de)
|
|
|
|
```ruby
|
|
gitlab_rails['smtp_enable'] = true
|
|
gitlab_rails['smtp_address'] = "submit.unitybox.de"
|
|
gitlab_rails['smtp_port'] = 587
|
|
gitlab_rails['smtp_user_name'] = "username@unitybox.de"
|
|
gitlab_rails['smtp_password'] = "yourPassword"
|
|
gitlab_rails['smtp_domain'] = "submit.unitybox.de"
|
|
gitlab_rails['smtp_authentication'] = "login"
|
|
gitlab_rails['smtp_enable_starttls_auto'] = true
|
|
gitlab_rails['smtp_tls'] = false
|
|
gitlab_rails['smtp_openssl_verify_mode'] = 'none'
|
|
gitlab_rails['gitlab_email_from'] = 'gitlab@example.com'
|
|
gitlab_rails['gitlab_email_reply_to'] = 'noreply@example.com'
|
|
```
|
|
|
|
### united-domains AG (united-domains.de)
|
|
|
|
```ruby
|
|
gitlab_rails['smtp_enable'] = true
|
|
gitlab_rails['smtp_address'] = "smtp.udag.de"
|
|
gitlab_rails['smtp_port'] = 465
|
|
gitlab_rails['smtp_user_name'] = "example-com-0001"
|
|
gitlab_rails['smtp_password'] = "smtppassword"
|
|
gitlab_rails['smtp_domain'] = "example.com"
|
|
gitlab_rails['smtp_authentication'] = "login"
|
|
gitlab_rails['smtp_enable_starttls_auto'] = false
|
|
gitlab_rails['smtp_tls'] = true
|
|
gitlab_rails['smtp_openssl_verify_mode'] = 'peer'
|
|
|
|
gitlab_rails['gitlab_email_enabled'] = true
|
|
gitlab_rails['gitlab_email_from'] = 'gitlab@example.com'
|
|
gitlab_rails['gitlab_email_display_name'] = 'GitLab - my company'
|
|
gitlab_rails['gitlab_email_reply_to'] = 'noreply@example.com'
|
|
```
|
|
|
|
### IONOS by 1&1 (ionos.de)
|
|
|
|
```ruby
|
|
gitlab_rails['smtp_enable'] = true
|
|
gitlab_rails['smtp_address'] = "smtp.ionos.de"
|
|
gitlab_rails['smtp_port'] = 587
|
|
gitlab_rails['smtp_user_name'] = "your-user@your-domain.de"
|
|
gitlab_rails['smtp_password'] = "Y0uR_Pass_H3r3"
|
|
gitlab_rails['smtp_domain'] = "your-domain.de"
|
|
gitlab_rails['smtp_authentication'] = 'login'
|
|
gitlab_rails['smtp_enable_starttls_auto'] = true
|
|
gitlab_rails['smtp_tls'] = false
|
|
gitlab_rails['smtp_openssl_verify_mode'] = 'none'
|
|
gitlab_rails['gitlab_email_from'] = 'your-user@your-domain.de'
|
|
```
|
|
|
|
### AWS Workmail
|
|
|
|
From the [AWS workmail documentation](https://docs.aws.amazon.com/workmail/latest/userguide/using_IMAP_client.html):
|
|
|
|
```ruby
|
|
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'] = false
|
|
gitlab_rails['smtp_tls'] = true
|
|
gitlab_rails['smtp_openssl_verify_mode'] = 'peer'
|
|
```
|
|
|
|
### Open Telekom Cloud
|
|
|
|
```ruby
|
|
gitlab_rails['smtp_enable'] = true
|
|
gitlab_rails['smtp_address'] = "login-cloud.mms.t-systems-service.com"
|
|
gitlab_rails['smtp_port'] = 25
|
|
gitlab_rails['smtp_domain'] = "yourdomain"
|
|
gitlab_rails['smtp_enable_starttls_auto'] = true
|
|
gitlab_rails['smtp_authentication'] = "login"
|
|
gitlab_rails['smtp_user_name'] = "username"
|
|
gitlab_rails['smtp_password'] = "password"
|
|
gitlab_rails['gitlab_email_from'] = 'gitlab@yourdomain'
|
|
```
|
|
|
|
### Uberspace 6
|
|
|
|
From the [Uberspace Wiki](https://manual.uberspace.de/):
|
|
|
|
```ruby
|
|
gitlab_rails['smtp_enable'] = true
|
|
gitlab_rails['smtp_address'] = "<your-host>.uberspace.de"
|
|
gitlab_rails['smtp_port'] = 587
|
|
gitlab_rails['smtp_user_name'] = "<your-user>@<your-domain>"
|
|
gitlab_rails['smtp_password'] = "<your-password>"
|
|
gitlab_rails['smtp_domain'] = "<your-domain>"
|
|
gitlab_rails['smtp_authentication'] = "login"
|
|
gitlab_rails['smtp_enable_starttls_auto'] = true
|
|
gitlab_rails['smtp_tls'] = false
|
|
```
|
|
|
|
### Tipimail
|
|
|
|
```ruby
|
|
gitlab_rails['smtp_enable'] = true
|
|
gitlab_rails['smtp_address'] = 'smtp.tipimail.com'
|
|
gitlab_rails['smtp_port'] = 587
|
|
gitlab_rails['smtp_user_name'] = 'username'
|
|
gitlab_rails['smtp_password'] = 'password'
|
|
gitlab_rails['smtp_authentication'] = 'login'
|
|
gitlab_rails['smtp_enable_starttls_auto'] = true
|
|
```
|
|
|
|
### Netcup
|
|
|
|
```ruby
|
|
gitlab_rails['smtp_enable'] = true
|
|
gitlab_rails['smtp_address'] = '<your-host>.netcup.net'
|
|
gitlab_rails['smtp_port'] = 587
|
|
gitlab_rails['smtp_user_name'] = "username"
|
|
gitlab_rails['smtp_password'] = "password"
|
|
gitlab_rails['smtp_domain'] = "<your-gitlab-domain>"
|
|
gitlab_rails['smtp_authentication'] = "login"
|
|
gitlab_rails['smtp_enable_starttls_auto'] = true
|
|
# Netcup is picky about the usage of GitLab's TLD instead of the subdomain (if you use one).
|
|
# If this is not set up correctly, the scheduled emails will fail. For example, if
|
|
# GitLab's domain name is 'gitlab.example.com', the following setting should be set to
|
|
# 'gitlab@example.com'.
|
|
gitlab_rails['gitlab_email_from'] = "gitlab@<your-top-level-domain>"
|
|
```
|
|
|
|
### Mail-in-a-Box
|
|
|
|
```ruby
|
|
gitlab_rails['gitlab_email_enabled'] = true
|
|
gitlab_rails['gitlab_email_from'] = 'gitlab@example.com'
|
|
|
|
gitlab_rails['smtp_enable'] = true
|
|
gitlab_rails['smtp_address'] = 'box.example.com'
|
|
gitlab_rails['smtp_port'] = 587
|
|
gitlab_rails['smtp_user_name'] = "username@example.com"
|
|
gitlab_rails['smtp_password'] = "password"
|
|
gitlab_rails['smtp_domain'] = "<your-gitlab-domain>"
|
|
gitlab_rails['smtp_authentication'] = "login"
|
|
gitlab_rails['smtp_enable_starttls_auto'] = true
|
|
```
|
|
|
|
### NIFCLOUD ESS
|
|
|
|
[SMTP Interface](https://pfs.nifcloud.com/spec/ess/smtp.htm).
|
|
|
|
```ruby
|
|
gitlab_rails['smtp_enable'] = true
|
|
gitlab_rails['smtp_address'] = "smtp.ess.nifcloud.com"
|
|
gitlab_rails['smtp_port'] = 587
|
|
gitlab_rails['smtp_user_name'] = "SMTP user name"
|
|
gitlab_rails['smtp_password'] = "SMTP user password"
|
|
gitlab_rails['smtp_domain'] = "smtp.ess.nifcloud.com"
|
|
gitlab_rails['smtp_authentication'] = "login"
|
|
gitlab_rails['smtp_enable_starttls_auto'] = true
|
|
gitlab_rails['smtp_tls'] = false
|
|
gitlab_rails['smtp_openssl_verify_mode'] = 'peer'
|
|
|
|
gitlab_rails['gitlab_email_from'] = 'username@example.com'
|
|
gitlab_rails['gitlab_email_reply_to'] = 'username@example.com'
|
|
```
|
|
|
|
Check the SMTP user name and SMTP user password from the ESS [dashboard](https://docs.nifcloud.com/ess/help/dashboard.htm).
|
|
`gitlab_email_from` and `gitlab_email_reply_to` must be ESS authenticated sender email addresses.
|
|
|
|
### Sina mail
|
|
|
|
User needs first to enabled SMTP through the mailbox settings via web mail interface and get the authenitication code. Check out more details in the [help page](http://help.sina.com.cn/comquestiondetail/view/1566/) of Sina mail.
|
|
|
|
```ruby
|
|
gitlab_rails['smtp_enable'] = true
|
|
gitlab_rails['smtp_address'] = "smtp.sina.com"
|
|
gitlab_rails['smtp_port'] = 587
|
|
gitlab_rails['smtp_user_name'] = "username@sina.com"
|
|
gitlab_rails['smtp_password'] = "authentication code"
|
|
gitlab_rails['smtp_domain'] = "smtp.sina.com"
|
|
gitlab_rails['smtp_authentication'] = "login"
|
|
gitlab_rails['smtp_enable_starttls_auto'] = true
|
|
gitlab_rails['gitlab_email_from'] = 'username@sina.com'
|
|
```
|
|
|
|
### Feishu mail
|
|
|
|
Check out more details in the [help page](https://www.feishu.cn/hc/en-US/articles/360049068017-admin-allow-members-to-access-feishu-mail-using-third-party-email-clients) of Feishu mail.
|
|
|
|
```ruby
|
|
gitlab_rails['smtp_enable'] = true
|
|
gitlab_rails['smtp_address'] = "smtp.feishu.cn"
|
|
gitlab_rails['smtp_port'] = 465
|
|
gitlab_rails['smtp_user_name'] = "your-user@your-domain"
|
|
gitlab_rails['gitlab_email_from'] = "username@yourdomain.com"
|
|
gitlab_rails['smtp_domain'] = "yourdomain.com"
|
|
gitlab_rails['smtp_password'] = "authentication code"
|
|
gitlab_rails['smtp_authentication'] = "login"
|
|
gitlab_rails['smtp_enable_starttls_auto'] = false
|
|
gitlab_rails['smtp_tls'] = true
|
|
```
|
|
|
|
### Hostpoint
|
|
|
|
For more information about Hostpoint email visit their [help page](https://support.hostpoint.ch/en/technical/e-mail/frequently-asked-questions/e-mail-settings-at-a-glance#hp-section3)
|
|
|
|
```ruby
|
|
gitlab_rails['smtp_enable'] = true
|
|
gitlab_rails['smtp_address'] = "asmtp.mail.hostpoint.ch"
|
|
gitlab_rails['smtp_port'] = 587
|
|
gitlab_rails['smtp_user_name'] = "username@example.com"
|
|
gitlab_rails['smtp_password'] = "authentication code"
|
|
gitlab_rails['smtp_domain'] = "asmtp.mail.hostpoint.ch"
|
|
gitlab_rails['smtp_authentication'] = "plain"
|
|
gitlab_rails['smtp_enable_starttls_auto'] = true
|
|
gitlab_rails['gitlab_email_from'] = 'username@example.com'
|
|
```
|
|
|
|
### Fastweb (fastweb.it)
|
|
|
|
```ruby
|
|
gitlab_rails['smtp_enable'] = true
|
|
gitlab_rails['smtp_address'] = "smtp.fastwebnet.it"
|
|
gitlab_rails['smtp_port'] = 587
|
|
gitlab_rails['smtp_user_name'] = "your_fastweb_fastmail_username@fastwebnet.it"
|
|
gitlab_rails['smtp_password'] = "your_fastweb_fastmail_password"
|
|
gitlab_rails['smtp_domain'] = "smtp.fastwebnet.it"
|
|
gitlab_rails['smtp_authentication'] = "login"
|
|
gitlab_rails['smtp_enable_starttls_auto'] = true
|
|
gitlab_rails['smtp_tls'] = false
|
|
gitlab_rails['smtp_openssl_verify_mode'] = 'none'
|
|
```
|
|
|
|
### Scaleway Transactional Email
|
|
|
|
Read more about [Scaleway's Transactional Email](https://www.scaleway.com/en/docs/managed-services/transactional-email/how-to/generate-api-keys-for-tem-with-iam/).
|
|
|
|
```ruby
|
|
gitlab_rails['smtp_enable'] = true
|
|
gitlab_rails['smtp_address'] = "smtp.tem.scw.cloud"
|
|
gitlab_rails['smtp_port'] = 587
|
|
gitlab_rails['smtp_user_name'] = "transactional_email_user_name"
|
|
gitlab_rails['smtp_password'] = "secret_key_of_api_key"
|
|
gitlab_rails['smtp_authentication'] = "plain"
|
|
gitlab_rails['smtp_enable_starttls_auto'] = true
|
|
```
|
|
|
|
### Proton Mail
|
|
|
|
Proton documentation: [How to set up SMTP to use business applications or devices with Proton Mail](https://proton.me/support/smtp-submission)
|
|
|
|
```ruby
|
|
gitlab_rails['smtp_enable'] = true
|
|
gitlab_rails['smtp_address'] = "smtp.protonmail.ch"
|
|
gitlab_rails['smtp_port'] = 587
|
|
gitlab_rails['smtp_authentication'] = "plain"
|
|
gitlab_rails['smtp_enable_starttls_auto'] = true
|
|
gitlab_rails['smtp_user_name'] = "<the Proton email address for which you generated the SMTP token>"
|
|
gitlab_rails['smtp_password'] = "<the generated SMTP token>"
|
|
gitlab_rails['smtp_domain'] = "<your domain>"
|
|
gitlab_rails['gitlab_email_from'] = "<the Proton email address for which you generated the SMTP token>"
|
|
gitlab_rails['gitlab_email_reply_to'] = "<the Proton email address for which you generated the SMTP token>"
|
|
```
|
|
|
|
### More examples are welcome
|
|
|
|
If you have figured out an example configuration yourself please send a Merge
|
|
Request to save other people time.
|
|
|
|
## Testing the SMTP configuration
|
|
|
|
You can verify that GitLab can send emails properly using the Rails console.
|
|
On the GitLab server, execute `gitlab-rails console` to enter the console. Then,
|
|
you can enter the following command at the console prompt to cause GitLab to
|
|
send a test email:
|
|
|
|
```ruby
|
|
Notify.test_email('destination_email@address.com', 'Message Subject', 'Message Body').deliver_now
|
|
```
|
|
|
|
## Troubleshooting
|
|
|
|
### Outgoing connections to port 25 is blocked on major cloud providers
|
|
|
|
If you are using a cloud provider to host your GitLab instance and you are using port 25 for your
|
|
SMTP server, it is possible that your cloud provider is blocking outgoing connections to port 25.
|
|
This prevents GitLab from sending any outgoing mail. You can follow the instructions below to work
|
|
around this depending on your cloud provider:
|
|
|
|
- AWS: [How do I remove the restriction on port 25 from my Amazon EC2 instance or AWS Lambda function?](https://repost.aws/knowledge-center/ec2-port-25-throttle)
|
|
- Azure: [Troubleshoot outbound SMTP connectivity problems in Azure](https://learn.microsoft.com/en-us/azure/virtual-network/troubleshoot-outbound-smtp-connectivity)
|
|
- GCP: [Sending email from an instance](https://cloud.google.com/compute/docs/tutorials/sending-mail)
|
|
|
|
### Wrong version number when using SSL/TLS
|
|
|
|
Many users run into the following error after configuring SMTP:
|
|
|
|
```plaintext
|
|
OpenSSL::SSL::SSLError (SSL_connect returned=1 errno=0 state=error: wrong version number)
|
|
```
|
|
|
|
This error is usually due to incorrect settings:
|
|
|
|
- If your SMTP provider is using port 25 or 587, SMTP connections start
|
|
**unencrypted** but can be upgraded via
|
|
[STARTTLS](https://en.wikipedia.org/wiki/Opportunistic_TLS). Be sure the
|
|
following settings are set:
|
|
|
|
```ruby
|
|
gitlab_rails['smtp_enable_starttls_auto'] = true
|
|
gitlab_rails['smtp_tls'] = false # This is the default and can be omitted
|
|
gitlab_rails['smtp_ssl'] = false # This is the default and can be omitted
|
|
```
|
|
|
|
- If your SMTP provider is using port 465, SMTP connections start
|
|
**encrypted** over TLS. Ensure the following line is present:
|
|
|
|
```ruby
|
|
gitlab_rails['smtp_tls'] = true
|
|
```
|
|
|
|
For more details, read [about the confusion over SMTP ports, TLS, and STARTTLS](https://www.fastmail.help/hc/en-us/articles/360058753834-SSL-TLS-and-STARTTLS).
|
|
|
|
### Emails not sending when using external Sidekiq
|
|
|
|
If your instance has [an external Sidekiq](https://docs.gitlab.com/ee/administration/sidekiq/index.html)
|
|
configured, the SMTP configuration must be present in `/etc/gitlab/gitlab.rb` on the external Sidekiq server. If
|
|
the SMTP configuration is missing, you may notice that emails do not get sent through SMTP as many
|
|
GitLab emails are sent via Sidekiq.
|
|
|
|
### Emails not sending when using Sidekiq routing rules
|
|
|
|
If you are using Sidekiq [routing rules](https://docs.gitlab.com/ee/administration/sidekiq/processing_specific_job_classes.html#routing-rules), your configuration might be missing the `mailers` queue which is required for outgoing mail.
|
|
|
|
For more details, review the [example configuration](https://docs.gitlab.com/ee/administration/sidekiq/processing_specific_job_classes.html#detailed-example).
|
|
|
|
### Email not sent
|
|
|
|
WARNING:
|
|
Any command that changes data directly could be damaging if not run correctly, or under the right conditions. We highly recommend running them in a test environment with a backup of the instance ready to be restored, just in case.
|
|
|
|
If you have correctly configured an email server, but email is not sent:
|
|
|
|
1. Run a [Rails console](https://docs.gitlab.com/ee/administration/operations/rails_console.html#starting-a-rails-console-session).
|
|
1. Check the `ActionMailer` `delivery_method`. It must match the type of server you're using, either `:smtp` for an SMTP server or `:sendmail`
|
|
for Sendmail:
|
|
intended. If you configured SMTP, it should say `:smtp`. If you're using
|
|
Sendmail, it should say `:sendmail`:
|
|
|
|
```ruby
|
|
irb(main):001:0> ActionMailer::Base.delivery_method
|
|
=> :smtp
|
|
```
|
|
|
|
1. If you're using SMTP, check the mail settings:
|
|
|
|
```ruby
|
|
irb(main):002:0> ActionMailer::Base.smtp_settings
|
|
=> {:address=>"localhost", :port=>25, :domain=>"localhost.localdomain", :user_name=>nil, :password=>nil, :authentication=>nil, :enable_starttls_auto=>true}
|
|
```
|
|
|
|
In the example above, the SMTP server is configured for the local machine. If this is intended, check your local mail
|
|
logs (for example, `/var/log/mail.log`) for more details.
|
|
|
|
1. Send a test message using the console:
|
|
|
|
```ruby
|
|
irb(main):003:0> Notify.test_email('youremail@email.com', 'Hello World', 'This is a test message').deliver_now
|
|
```
|
|
|
|
If you do not receive an email or see an error message, check your mail server settings.
|
|
|
|
### Email not sent when using STARTTLS and SMTP TLS
|
|
|
|
You may encounter the following error if both STARTTLS and SMTP TLS are enabled:
|
|
|
|
```plaintext
|
|
:enable_starttls and :tls are mutually exclusive. Set :tls if you're on an SMTPS connection. Set :enable_starttls if you're on an SMTP connection and using STARTTLS for secure TLS upgrade.
|
|
```
|
|
|
|
This error occurs when both `gitlab_rails['smtp_enable_starttls_auto']` and `gitlab_rails['smtp_tls']` are set to `true`. If using SMTPS, set `gitlab_rails['smtp_enable_starttls_auto']` to `false`. If using SMTP with STARTTLS, set `gitlab_rails['smtp_tls']` to `false`. Run `sudo gitlab-ctl reconfigure` for the change to take effect.
|
|
|
|
## Disable all outgoing email
|
|
|
|
NOTE:
|
|
This will disable **all** outgoing email from your GitLab instance, including but not limited to notification emails, direct mentions, and password reset emails.
|
|
|
|
In order to disable **all** outgoing email, you can edit or add the following line to `/etc/gitlab/gitlab.rb`:
|
|
|
|
```ruby
|
|
gitlab_rails['gitlab_email_enabled'] = false
|
|
```
|
|
|
|
Run `sudo gitlab-ctl reconfigure` for the change to take effect.
|