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

2.8 KiB

Original repo can be found here

Supported tags

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).

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).