Awesome Open Source
Awesome Open Source

postfix Travis

This is project implements as a docker container a postfix mail server. It supports a configurable hostname, trusted hosts, proper shutdown handling and mail relay (e.g. to mailgun).


By default, connected rfc1918 networks are detected and allowed. Local networks (, ::1) are also allowed.

You can optionally enable the Carrier Grade NAT, RFC6598 (
RFC1918 is still the default. RFC6598 does not include the RFC1918 subnets, because CGN is not meant to be used at the same time as private subnets. If you really want both, you'll need to override the entrypoint to include both arguments.


Rsyslog is started automatically and sends logs to stdout

Suggested Volumes

  • /var/spool/postfix is the spool directory. Its also where postfix chroots to by default.
  • /etc/postfix is the configuation directory


You can customize the image behavior using environmental variables or entrypoint arguments.

Enviromental Variable(s) Entrypoint Option Description
(use --hostname) --mail-name Mail name to use (appears in mail headers). Defaults to hostname
RELAYHOST="[relay hostname] --relayhost [] The host to relay mail to.
TRUST="local" or TRUST_LOCAL="0" --trust-local Trust addresses on the lo interface. Enabled by default
TRUST="connected-rfc1918" or TRUST_CONNECTED_RFC="1" --trust-connected-rfc1918 Trust all locally connected rfc1918 subnets. Enabled by default
TRUST="connected" or TRUST_CONNECTED="1" --trust-connected Trust all addresses connected (excluding IPv6 local-link addresses). Disabled by default
TRUST="rfc1918" or TRUST_RFC1918="1" --trust-rfc1918 Trust all rfc1918 address. Disabled by default
TRUST="rfc6598" or TRUST_RFC6598="1" --trust-rfc6598 Trust rfc6598 address. This doesn't include RFC1918. Disabled by default
TRUST_LLA="1" --trust-lla Trust the fe80::/64 IPv6 subnet. Disabled by default
TRUST_SUBNETS="[space separated list of subnets]" --trust-subnet [] Trust the specified subnet (IPv4 and IPv6 supported). Disabled by default
TRUST_INTERFACES="[space separated list of interfaces]" --trust-interface [] Trust all network address on the interface (excluding IPv6 LLA). Disabled by default
--skip-trust-* local, connected-rfc1918, connected, rfc1918, or lla to skip trusting it.
--skip-all Disable/reset all trusts. Disabled by default


Units tests

Regexp unit tests can be executed by running

cd ./rootfs/


Any output should be fixed.

Get A Weekly Email With Trending Projects For These Topics
No Spam. Unsubscribe easily at any time.
Shell (232,381
Dockerfile (28,223
Kubernetes (11,461
Smtp (721
Relay (542
Postfix (251
Mailgun (186
Smtp Server (162
Related Projects