MailHog/docs/CONFIG.md

63 lines
2.9 KiB
Markdown

Configuring MailHog
===================
You can configure MailHog using command line options or environment variables:
| Environment | Command line | Default | Description
| ------------------- | --------------- | --------------- | -----------
| MH_CORS_ORIGIN | -cors-origin | | If set, an Access-Control-Allow-Origin header is returned for API endpoints
| MH_HOSTNAME | -hostname | mailhog.example | Hostname to use for EHLO/HELO and message IDs
| MH_API_BIND_ADDR | -api-bind-addr | 0.0.0.0:8025 | Interface and port for HTTP API server to bind to
| MH_UI_BIND_ADDR | -ui-bind-addr | 0.0.0.0:8025 | Interface and port for HTTP UI server to bind to
| MH_MAILDIR_PATH | -maildir-path | | Maildir path (for maildir storage backend)
| MH_MONGO_COLLECTION | -mongo-coll | messages | MongoDB collection name for message storage
| MH_MONGO_DB | -mongo-db | mailhog | MongoDB database name for message storage
| MH_MONGO_URI | -mongo-uri | 127.0.0.1:27017 | MongoDB host and port
| MH_SMTP_BIND_ADDR | -smtp-bind-addr | 0.0.0.0:1025 | Interface and port for SMTP server to bind to
| MH_STORAGE | -storage | memory | Set message storage: memory / mongodb / maildir
| MH_OUTGOING_SMTP | -outgoing-smtp | | JSON file defining outgoing SMTP servers
| MH_UI_WEB_PATH | -ui-web-path | | WebPath under which the UI is served (without leading or trailing slashes), e.g. 'mailhog'
| MH_AUTH_FILE | -auth-file | | A username:bcryptpw mapping file
#### Note on HTTP bind addresses
If `api-bind-addr` and `ui-bind-addr` are identical, a single listener will
be used allowing both to co-exist on one port.
The values must match in a string comparison. Resolving to the same host and
port combination isn't enough.
### Outgoing SMTP configuration
Outgoing SMTP servers can be set in web UI when releasing a message, and can
be temporarily persisted for later use in the same session.
To make outgoing SMTP servers permanently available, create a JSON file with
the following structure, and set `MH_OUTGOING_SMTP` or `-outgoing-smtp`.
```json
{
"server name": {
"name": "server name",
"host": "...",
"port": "587",
"email": "...",
"username": "...",
"password": "...",
"mechanism": "PLAIN"
}
}
```
Only `name`, `host` and `port` are required.
`mechanism` can be `PLAIN` or `CRAM-MD5`.
### Firewalls and proxies
If you have MailHog behind a firewall, you'll need ports `8025` and `1025` by default.
You can override this using `-api-bind-addr`, `-ui-bind-addr` and `-smtp-bind-addr` configuration options.
If you're using MailHog behind a reverse proxy, e.g. nginx, make sure WebSocket connections
are also supported and configured - see [this issue](https://github.com/mailhog/MailHog/issues/117) for information.