plausible-hosting/smtp/README.md
iwishiwasaneagle 9fc075a440
feat: Replace old bytemark/smtp image with the source code
This will allow more platforms to use this template repo. The original
dockerhub image was last updated 5 years ago, and as such,
newer architectures aren't supported like the Raspberry Pi 4
which a lot of people are using for self hosting these days
2023-04-19 08:49:52 +01:00

97 lines
2.8 KiB
Markdown

> Original repo can be found [here](https://github.com/BytemarkHosting/docker-smtp)
## Supported tags
* [`stretch`, `latest` (*stretch/Dockerfile*)](https://github.com/BytemarkHosting/docker-smtp/blob/master/stretch/Dockerfile)
## Quick reference
This image allows linked containers to send outgoing email. You can configure
it to send email directly to recipients, or to act as a smart host that relays
mail to an intermediate server (eg, GMail, SendGrid).
* **Code repository:**
https://github.com/BytemarkHosting/docker-smtp
* **Where to file issues:**
https://github.com/BytemarkHosting/docker-smtp/issues
* **Maintained by:**
[Bytemark Hosting](https://www.bytemark.co.uk)
* **Supported architectures:**
[Any architecture that has the Debian `exim4-daemon-light` package](https://packages.debian.org/stretch/exim4-daemon-light)
## Usage
### Basic SMTP server
In this example, linked containers can connect to hostname `mail` and port `25`
to send outgoing email. The SMTP container sends email out directly.
```
docker run --restart always --name mail -d bytemark/smtp
```
#### Via Docker Compose:
```
version: '3'
services:
mail:
image: bytemark/smtp
restart: always
```
### SMTP smart host
In this example, linked containers can connect to hostname `mail` and port `25`
to send outgoing email. The SMTP container acts as a smart host and relays mail
to an intermediate server server (eg, GMail, SendGrid).
```
docker run --restart always --name mail \
-e RELAY_HOST=smtp.example.com \
-e RELAY_PORT=587 \
-e RELAY_USERNAME=alice@example.com \
-e RELAY_PASSWORD=secretpassword \
-d bytemark/smtp
```
#### Via Docker Compose:
```
version: '3'
services:
mail:
image: bytemark/smtp
restart: always
environment:
RELAY_HOST: smtp.example.com
RELAY_PORT: 587
RELAY_USERNAME: alice@example.com
RELAY_PASSWORD: secretpassword
```
### Environment variables
All environment variables are optional. But if you specify a `RELAY_HOST`, then
you'll want to also specify the port, username and password otherwise it's
unlikely to work!
* **`MAILNAME`**: Sets Exim's `primary_hostname`, which defaults to the
hostname of the server.
* **`RELAY_HOST`**: The remote SMTP server address to use.
* **`RELAY_PORT`**: The remote SMTP server port to use.
* **`RELAY_USERNAME`**: The username to authenticate with the remote SMTP
server.
* **`RELAY_PASSWORD`**: The password to authenticate with the remote SMTP
server.
* **`RELAY_NETS`**: Declare which networks can use the smart host, separated by
semi-colons. By default, this is set to
`10.0.0.0/8;172.16.0.0/12;192.168.0.0/16`, which provides a thin layer of
protection in case port 25 is accidentally exposed to the public internet
(which would make your SMTP container an open relay).