Simple Postfix SMTP TLS relay docker image with no local authentication enabled (to be run in a secure LAN).
Clone this repo and then:
cd docker-Postfix sudo docker build -t postfix .
You can also find a prebuilt docker image from Docker Hub, which can be pulled with this command:
sudo docker pull juanluisbaptiste/postfix:latest
How to run it
The following env variables need to be passed to the container:
SMTP_SERVERServer address of the SMTP server to use.
SMTP_USERNAMEUsername to authenticate with.
SMTP_PASSWORDPassword of the SMTP user.
SERVER_HOSTNAMEServer hostname for the Postfix container. Emails will appear to come from the hostname's domain.
To use this container from anywhere, the 25 port needs to be exposed to the docker host server:
docker run -d --name postfix -p "25:25" \ -e SMTP_SERVER=smtp.bar.com \ -e SMTP_USERNAMEemail@example.com \ -e SMTP_PASSWORD=XXXXXXXX \ -e SERVER_HOSTNAME=helpdesk.mycompany.com \ juanluisbaptiste/postfix
If you are going to use this container from other docker containers then it's better to just publish the port:
docker run -d --name postfix -P \ -e SMTP_SERVER=smtp.bar.com \ -e SMTP_USERNAMEfirstname.lastname@example.org \ -e SMTP_PASSWORD=XXXXXXXX \ -e SERVER_HOSTNAME=helpdesk.mycompany.com \ juanluisbaptiste/postfix
A note about using gmail as a relay
Since last year, Gmail by default does not allow email clients that don't use OAUTH 2
for authentication (like Thunderbird or Outlook). First you need to enable access to "Less secure apps" on your
Also take into account that email
From: header will contain the email address of the account being used to
authenticate against the Gmail SMTP server(SMTP_USERNAME), the one on the email will be ignored by Gmail.
Thanks, works great with AWS SES.
Possible addition to docs:
Make sure SERVER_HOSTNAME:
- contains at least one dot, for example "smtprelay.local"
- is not real domain otherwise postfix will try to deliver emails to this domain locally