docker-postfix/README.md
2025-02-09 00:15:23 +00:00

38 lines
No EOL
1.9 KiB
Markdown

# docker-postfix
*Simple Docker image to run a Postfix MTA in relay mode*
---
This is a simple, Alpine-based image that runs Postfix in relay mode - that is, it accepts incoming mail and forwards it onto a remote SMTP server somewhere else for further processing.
You might want to do this in the instance where you have a lot of services on one machine that send email and you want one neat and tidy exit point for emails in your system.
## Use
This image can be found at `registry.git.tdpain.net/pkg/docker-postfix`.
It is configured using environment variables:
* `POSTFIX_SENDER_DOMAINS`: a whitespace-delimited list of domains to accept within the `From` header of the email, eg. `akpain.net tdpain.net`
* `POSTFIX_HOSTNAME`: the hostname of **this instance** of Postfix
* `POSTFIX_RELAY_HOST`: the hostname of the upstream relay to forward mail to, eg: `smtp.fastmail.com:587`
* `POSTFIX_RELAY_USER`: username for the relay server
* `POSTFIX_RELAY_PASSWORD`: password for the relay server
* This can also be specified as `POSTFIX_RELAY_PASSWORD_FILE` where the value of that var corresponds to a file inside the container.
You can then expose whatever ports you might want, or use the container within a Docker network. To expose `127.0.0.1:25`, you could use a command like:
```
docker run -d -p 127.0.0.1:25:25 \
-e POSTFIX_SENDER_DOMAINS=example.com \
-e POSTFIX_HOSTNAME=$(hostname)-relay \
-e POSTFIX_RELAY_HOST=smtp.fastmail.com:587 \
-e POSTFIX_RELAY_USER=dsfgkjhsd \
-e POSTFIX_RELAY_PASSWORD=gazpacho \
registry.git.tdpain.net/pkg/docker-postfix:latest
```
## Prior art
This was directly descended from [https://xc2.wb1.xyz/post/how-to-run-a-postfix-mail-server-in-a-docker-container/](https://xc2.wb1.xyz/post/how-to-run-a-postfix-mail-server-in-a-docker-container/) and indirectly from [https://github.com/bokysan/docker-postfix](https://github.com/bokysan/docker-postfix).