I had a requirement where we wanted to have separate postfix instances which individually handles SMTP Relay traffic to redirect to Google Mail Relay & AWS SES. But we didn’t want to get an additional server to deploy postfix separately and add more servers to the farm.
There are more than one ways to do it.. and for particular reasons we wanted to have separate dedicate instances to manage separate configurations easily.
So, basically if you have the postfix package installed on linux, you will have the folder /etc/postfix/ (Depending on Linux Flavour – I am using RHEL7). It will be using default port 25 and 465
Main files to modify are master.cf and main.cf – I am assuming you know how to configure these files.
Configure that instance as your Google Relay.
Now to setup another instance on the same box, run the following commands
postmulti -e init
####Create Secondary Instance postfix-ses
postmulti -I postfix-ses -e create
####Enable Secondary Instance
postmulti -i postfix-ses -e enable
This will create a /etc/postfix-ses/ folder which is the new separate instance
If you wish to run AWS SES then you need the “cyrus-sasl-plain” package as well in your linux system (yum / apt)
Edit /etc/postfix-ses/master.cf and do the following
#smtp inet n - n - - smtpd
10025 inet n - n - - smtpd
10465 inet n - n - - smtpd
The above will run this new instance on port 10025 (instead of default port 25 which /etc/postfix/ is using) and SMTPS on 10465 (instead of default 465 which /etc/postfix/ is using)
Edit /etc/postfix-ses/main.cf and comment out the following
master_service_disable = inet
Configure the rest of the as per AWS Guide.
Reload / Restart Postfix Service – the same command will control both instances together.
Now you will have two instances of postfix running on the same box using different ports and thus clients can be told to use them accordingly.
All the logs are in the single file: /var/log/maillog
Logs are tagged with <date> <time> <hostname> <instancename> format so you can grep for different instances.
Note: This site has documented some commands on how to run various commands with multi-instances in Postfix