How to relay emails from Postfix to external SMTP server
In this example I am using Amazon SES as my smart host and all emails from postfix will be routed to Amazon
Let's begin:
Go to the postfix folder
cd /etc/postfix/
edit the main.cf file
vi main.cf
At the very bottom enter the details
relayhost = email-smtp.us-east-1.amazonaws.com:25
smtp_sasl_auth_enable = yes
smtp_sasl_security_options = noanonymous
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_use_tls = yes
smtp_tls_security_level = encrypt
smtp_tls_note_starttls_offer = yes
To change the domain name on the email, add the following line:
smtp_generic_maps = hash:/etc/postfix/generic
(We will have to modify the generic file too)
close the file and edit the sasl_passwd file
vi sasl_passwd
Add the line
email-smtp.us-east-1.amazonaws.com:25 <SES USER>:<SES PASSWORD>
Close the file and run postmap
postmap hash:/etc/postfix/sasl_passwd
(Ignore the warning if any)
Change the file permission so that it can be read only by root
chmod 0400 sasl_passwd
Now modify the generic file
vi generic
Add the following line at the very bottom
@<local domain> @<public domain>
(change the local and public domain to your domain names)
save and run the postmap command
postmap generic
Restart postfix
service postfix restart
test by sending an email to your email address
echo test | mail -s "test message" <your email address>
check the mail log to confirm
tail -f /var/log/maillog
The email should arrive in your inbox with the following details:
From:<Email Address> via amazonses.com