# Configuring Sending Emails

Dex sends emails to a during the registration process to verify an email
address belongs to the person signing up. Currently Dex supports two ways of
sending emails, and has a third option for use during development.

Configuration of the email provider in Dex is provided through a JSON file. All
email providers have a `type` and `id` field as well as some additional provider
specific fields.

## SMTP

If using SMTP the `type` field **must** be set to `smtp`. Additionally both
`host` and `port` are required. If you wish to use SMTP plain auth, then
set `auth` to `plain` and specify your username and password.

```
{
    "type": "smtp",
    "host": "smtp.example.org",
    "port": 587,
    "auth": "plain",
    "username": "postmaster@example.org",
    "password": "foo"
}
```

## Mailgun

If using Mailgun the `type` field **must** be set to `mailgun`. Additionally
`privateAPIKey`, `publicAPIKey`, and `domain` are required.

```
{
    "type": "mailgun",
    "privateAPIKey": "key-XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
    "publicAPIKey": "YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY",
    "domain": "sandboxZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ.mailgun.org"
}
```

## Dev

The fake emailer should only be used in development. The fake emailer
prints emails to `stdout` rather than sending any email. If using the fake
emailer the `type` field **must** be set to `fake`.

```
{
    "type": "fake"
}
```