Commit 9ec107ff authored by Evan Read's avatar Evan Read

Merge branch 'docs-codyw-update-incoming-email' into 'master'

Docs - Reorganize incoming email doc

See merge request gitlab-org/gitlab-ce!25409
parents 3b899d82 c6ddf425
...@@ -95,133 +95,97 @@ for a real-world example of this exploit. ...@@ -95,133 +95,97 @@ for a real-world example of this exploit.
### Omnibus package installations ### Omnibus package installations
1. Find the `incoming_email` section in `/etc/gitlab/gitlab.rb`, enable the 1. Find the `incoming_email` section in `/etc/gitlab/gitlab.rb`, enable the feature
feature and fill in the details for your specific IMAP server and email account: and fill in the details for your specific IMAP server and email account (see [examples](#config-examples) below).
Configuration for Postfix mail server, assumes mailbox 1. Reconfigure GitLab for the changes to take effect:
incoming@gitlab.example.com
```ruby
gitlab_rails['incoming_email_enabled'] = true
# The email address including the `%{key}` placeholder that will be replaced to reference the item being replied to.
# The placeholder can be omitted but if present, it must appear in the "user" part of the address (before the `@`).
gitlab_rails['incoming_email_address'] = "incoming+%{key}@gitlab.example.com"
# Email account username
# With third party providers, this is usually the full email address.
# With self-hosted email servers, this is usually the user part of the email address.
gitlab_rails['incoming_email_email'] = "incoming"
# Email account password
gitlab_rails['incoming_email_password'] = "[REDACTED]"
# IMAP server host
gitlab_rails['incoming_email_host'] = "gitlab.example.com"
# IMAP server port
gitlab_rails['incoming_email_port'] = 143
# Whether the IMAP server uses SSL
gitlab_rails['incoming_email_ssl'] = false
# Whether the IMAP server uses StartTLS
gitlab_rails['incoming_email_start_tls'] = false
# The mailbox where incoming mail will end up. Usually "inbox". ```sh
gitlab_rails['incoming_email_mailbox_name'] = "inbox" sudo gitlab-ctl reconfigure
# The IDLE command timeout. sudo gitlab-ctl restart
gitlab_rails['incoming_email_idle_timeout'] = 60
``` ```
Configuration for Gmail / Google Apps, assumes mailbox 1. Verify that everything is configured correctly:
gitlab-incoming@gmail.com
```ruby ```sh
gitlab_rails['incoming_email_enabled'] = true sudo gitlab-rake gitlab:incoming_email:check
```
# The email address including the `%{key}` placeholder that will be replaced to reference the item being replied to. Reply by email should now be working.
# The placeholder can be omitted but if present, it must appear in the "user" part of the address (before the `@`).
gitlab_rails['incoming_email_address'] = "gitlab-incoming+%{key}@gmail.com"
# Email account username ### Installations from source
# With third party providers, this is usually the full email address.
# With self-hosted email servers, this is usually the user part of the email address.
gitlab_rails['incoming_email_email'] = "gitlab-incoming@gmail.com"
# Email account password
gitlab_rails['incoming_email_password'] = "[REDACTED]"
# IMAP server host 1. Go to the GitLab installation directory:
gitlab_rails['incoming_email_host'] = "imap.gmail.com"
# IMAP server port
gitlab_rails['incoming_email_port'] = 993
# Whether the IMAP server uses SSL
gitlab_rails['incoming_email_ssl'] = true
# Whether the IMAP server uses StartTLS
gitlab_rails['incoming_email_start_tls'] = false
# The mailbox where incoming mail will end up. Usually "inbox". ```sh
gitlab_rails['incoming_email_mailbox_name'] = "inbox" cd /home/git/gitlab
# The IDLE command timeout.
gitlab_rails['incoming_email_idle_timeout'] = 60
``` ```
Configuration for Microsoft Exchange mail server w/ IMAP enabled, assumes the 1. Find the `incoming_email` section in `config/gitlab.yml`, enable the feature
catch-all mailbox incoming@exchange.example.com and fill in the details for your specific IMAP server and email account (see [examples](#config-examples) below).
```ruby
gitlab_rails['incoming_email_enabled'] = true
# The email address including the `%{key}` placeholder that will be replaced to reference the item being replied to.
# The placeholder can be omitted but if present, it must appear in the "user" part of the address (before the `@`).
# Exchange does not support sub-addressing, so a catch-all mailbox must be used.
gitlab_rails['incoming_email_address'] = "incoming-%{key}@exchange.example.com"
# Email account username 1. Enable `mail_room` in the init script at `/etc/default/gitlab`:
# Typically this is the userPrincipalName (UPN)
gitlab_rails['incoming_email_email'] = "incoming@ad-domain.example.com"
# Email account password
gitlab_rails['incoming_email_password'] = "[REDACTED]"
# IMAP server host ```sh
gitlab_rails['incoming_email_host'] = "exchange.example.com" sudo mkdir -p /etc/default
# IMAP server port echo 'mail_room_enabled=true' | sudo tee -a /etc/default/gitlab
gitlab_rails['incoming_email_port'] = 993
# Whether the IMAP server uses SSL
gitlab_rails['incoming_email_ssl'] = true
``` ```
1. Reconfigure GitLab for the changes to take effect: 1. Restart GitLab:
```sh ```sh
sudo gitlab-ctl reconfigure sudo service gitlab restart
sudo gitlab-ctl restart
``` ```
1. Verify that everything is configured correctly: 1. Verify that everything is configured correctly:
```sh ```sh
sudo gitlab-rake gitlab:incoming_email:check sudo -u git -H bundle exec rake gitlab:incoming_email:check RAILS_ENV=production
``` ```
1. Reply by email should now be working. Reply by email should now be working.
### Installations from source ### Config examples
1. Go to the GitLab installation directory: #### Postfix
```sh Example configuration for Postfix mail server. Assumes mailbox incoming@gitlab.example.com.
cd /home/git/gitlab
```
1. Find the `incoming_email` section in `config/gitlab.yml`, enable the feature Example for Omnibus installs:
and fill in the details for your specific IMAP server and email account:
```sh ```ruby
sudo editor config/gitlab.yml gitlab_rails['incoming_email_enabled'] = true
```
Configuration for Postfix mail server, assumes mailbox # The email address including the `%{key}` placeholder that will be replaced to reference the item being replied to.
incoming@gitlab.example.com # The placeholder can be omitted but if present, it must appear in the "user" part of the address (before the `@`).
gitlab_rails['incoming_email_address'] = "incoming+%{key}@gitlab.example.com"
```yaml # Email account username
incoming_email: # With third party providers, this is usually the full email address.
# With self-hosted email servers, this is usually the user part of the email address.
gitlab_rails['incoming_email_email'] = "incoming"
# Email account password
gitlab_rails['incoming_email_password'] = "[REDACTED]"
# IMAP server host
gitlab_rails['incoming_email_host'] = "gitlab.example.com"
# IMAP server port
gitlab_rails['incoming_email_port'] = 143
# Whether the IMAP server uses SSL
gitlab_rails['incoming_email_ssl'] = false
# Whether the IMAP server uses StartTLS
gitlab_rails['incoming_email_start_tls'] = false
# The mailbox where incoming mail will end up. Usually "inbox".
gitlab_rails['incoming_email_mailbox_name'] = "inbox"
# The IDLE command timeout.
gitlab_rails['incoming_email_idle_timeout'] = 60
```
Example for source installs:
```yaml
incoming_email:
enabled: true enabled: true
# The email address including the `%{key}` placeholder that will be replaced to reference the item being replied to. # The email address including the `%{key}` placeholder that will be replaced to reference the item being replied to.
...@@ -248,13 +212,47 @@ for a real-world example of this exploit. ...@@ -248,13 +212,47 @@ for a real-world example of this exploit.
mailbox: "inbox" mailbox: "inbox"
# The IDLE command timeout. # The IDLE command timeout.
idle_timeout: 60 idle_timeout: 60
``` ```
#### Gmail
Example configuration for Gmail/G Suite. Assumes mailbox gitlab-incoming@gmail.com.
Configuration for Gmail / Google Apps, assumes mailbox Example for Omnibus installs:
gitlab-incoming@gmail.com
```yaml ```ruby
incoming_email: gitlab_rails['incoming_email_enabled'] = true
# The email address including the `%{key}` placeholder that will be replaced to reference the item being replied to.
# The placeholder can be omitted but if present, it must appear in the "user" part of the address (before the `@`).
gitlab_rails['incoming_email_address'] = "gitlab-incoming+%{key}@gmail.com"
# Email account username
# With third party providers, this is usually the full email address.
# With self-hosted email servers, this is usually the user part of the email address.
gitlab_rails['incoming_email_email'] = "gitlab-incoming@gmail.com"
# Email account password
gitlab_rails['incoming_email_password'] = "[REDACTED]"
# IMAP server host
gitlab_rails['incoming_email_host'] = "imap.gmail.com"
# IMAP server port
gitlab_rails['incoming_email_port'] = 993
# Whether the IMAP server uses SSL
gitlab_rails['incoming_email_ssl'] = true
# Whether the IMAP server uses StartTLS
gitlab_rails['incoming_email_start_tls'] = false
# The mailbox where incoming mail will end up. Usually "inbox".
gitlab_rails['incoming_email_mailbox_name'] = "inbox"
# The IDLE command timeout.
gitlab_rails['incoming_email_idle_timeout'] = 60
```
Example for source installs:
```yaml
incoming_email:
enabled: true enabled: true
# The email address including the `%{key}` placeholder that will be replaced to reference the item being replied to. # The email address including the `%{key}` placeholder that will be replaced to reference the item being replied to.
...@@ -281,13 +279,41 @@ for a real-world example of this exploit. ...@@ -281,13 +279,41 @@ for a real-world example of this exploit.
mailbox: "inbox" mailbox: "inbox"
# The IDLE command timeout. # The IDLE command timeout.
idle_timeout: 60 idle_timeout: 60
``` ```
Configuration for Microsoft Exchange mail server w/ IMAP enabled, assumes the #### MS Exchange
catch-all mailbox incoming@exchange.example.com
```yaml Example configuration for Microsoft Exchange mail server with IMAP enabled. Assumes the
incoming_email: catch-all mailbox incoming@exchange.example.com.
Example for Omnibus installs:
```ruby
gitlab_rails['incoming_email_enabled'] = true
# The email address including the `%{key}` placeholder that will be replaced to reference the item being replied to.
# The placeholder can be omitted but if present, it must appear in the "user" part of the address (before the `@`).
# Exchange does not support sub-addressing, so a catch-all mailbox must be used.
gitlab_rails['incoming_email_address'] = "incoming-%{key}@exchange.example.com"
# Email account username
# Typically this is the userPrincipalName (UPN)
gitlab_rails['incoming_email_email'] = "incoming@ad-domain.example.com"
# Email account password
gitlab_rails['incoming_email_password'] = "[REDACTED]"
# IMAP server host
gitlab_rails['incoming_email_host'] = "exchange.example.com"
# IMAP server port
gitlab_rails['incoming_email_port'] = 993
# Whether the IMAP server uses SSL
gitlab_rails['incoming_email_ssl'] = true
```
Example for source installs:
```yaml
incoming_email:
enabled: true enabled: true
# The email address including the `%{key}` placeholder that will be replaced to reference the item being replied to. # The email address including the `%{key}` placeholder that will be replaced to reference the item being replied to.
...@@ -314,25 +340,4 @@ for a real-world example of this exploit. ...@@ -314,25 +340,4 @@ for a real-world example of this exploit.
mailbox: "inbox" mailbox: "inbox"
# The IDLE command timeout. # The IDLE command timeout.
idle_timeout: 60 idle_timeout: 60
``` ```
1. Enable `mail_room` in the init script at `/etc/default/gitlab`:
```sh
sudo mkdir -p /etc/default
echo 'mail_room_enabled=true' | sudo tee -a /etc/default/gitlab
```
1. Restart GitLab:
```sh
sudo service gitlab restart
```
1. Verify that everything is configured correctly:
```sh
sudo -u git -H bundle exec rake gitlab:incoming_email:check RAILS_ENV=production
```
1. Reply by email should now be working.
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment