Sign inSign up

epicsoft/smarthost

By epicsoft

Updated 7 days ago

Docker Image for Smarthost (SMTP relay) based on official Alpine image

Image
Networking
Message queues
Web servers
3

10K+

epicsoft/smarthost repository overview

Smarthost

This Docker image is managed and kept up to date by epicsoft LLC.

Smarthost based on official alpine image.

This Docker image uses postfix to create an SMTP relay.

Description

Docker Image for Smarthost (SMTP relay) based on official Alpine image.

This image can be used

  • Central SMTP relay for multiple Docker containers
  • If applications cannot establish an encrypted connection to an SMTP server
  • The container is not granted Internet access, but emails should still be sent
  • Other possible uses for forwarding emails

Versions

latest based on alpine:latest - build weekly

Environment variables

  • SMARTHOST_HOST The remote SMTP server address required
  • SMARTHOST_PORT The remote SMTP server port (default: 587)
  • SMARTHOST_USER The username to authenticate with the remote SMTP server required
  • SMARTHOST_PASSWORD The password to authenticate with the remote SMTP server required
  • SMARTHOST_DOMAIN The domain to append to mails required
  • SMARTHOST_TLS_SECURITY_LEVEL Configuring TLS support (default may)
  • SMARTHOST_NETWORKS The list of trusted remote SMTP clients, comma separated without spaces (default: 192.168.0.0/16,172.16.0.0/12)
  • SMARTHOST_ADD_MISSING_HEADERS Add headers when not present (default: true)
  • SMARTHOST_FORCE_FROM Replaces the from address with the specified one (default: empty)
    Rewrites the visible From: header only, not the envelope sender
    A $ in the value is taken literally, no escaping needed
  • SMARTHOST_INIT_ALIAS_DATABASE Initialize the alias database (default: true)
  • TZ Defines the time zone for the Docker container (default: unset)

SMARTHOST_TLS_SECURITY_LEVEL - possible values:

  • none - No TLS
  • may - Opportunistic TLS
  • encrypt - Mandatory TLS encryption
  • dane - Opportunistic DANE TLS
  • dane-only - Mandatory DANE TLS
  • fingerprint - Certificate fingerprint verification
  • verify - Mandatory server certificate verification
  • secure - Secure-channel TLS

Every variable listed with a default must not be set to an empty value - the container refuses to start. On port 465 (implicit TLS) SMARTHOST_TLS_SECURITY_LEVEL is ignored: the connection is always wrapped in TLS and the level is forced to encrypt.

Exit codes

The container validates its configuration before starting Postfix and exits with a distinct code per missing variable:

CodeVariable
101SMARTHOST_HOST
102SMARTHOST_PORT
103SMARTHOST_USER
104SMARTHOST_PASSWORD
105SMARTHOST_TLS_SECURITY_LEVEL
106SMARTHOST_NETWORKS
107SMARTHOST_DOMAIN
108SMARTHOST_ADD_MISSING_HEADERS
109any of the above, or SMARTHOST_FORCE_FROM, given as more than one line

No value may span more than one line. A second line would become a further entry in the generated Postfix map - another set of relay credentials, or another header rewrite rule.

Example

docker run --rm -it \
  --name smarthost \
  -e SMARTHOST_HOST=mail.your-business.ge \
  -e SMARTHOST_PORT=465 \
  -e [email protected] \
  -e SMARTHOST_PASSWORD=mySecretPassword \
  -e SMARTHOST_DOMAIN=your-business.ge \
  -e SMARTHOST_FORCE_FROM="Your Business LLC <[email protected]>" \
  -e SMARTHOST_ADD_MISSING_HEADERS="true" \
    epicsoft/smarthost:latest

License

MIT License see LICENSE

Please note that the MIT license only applies to the files created by epicsoft LLC. Other software may be licensed under other licenses.

Tag summary

Content type

Image

Digest

sha256:24df539ec

Size

9.9 MB

Last updated

7 days ago

docker pull epicsoft/smarthost