How to use Postfix with an external SMTP server

Postfix is a popular Mail Transfer Agent (MTA) used for sending and receiving emails. Sometimes, it may be necessary to configure Postfix to send emails via an external SMTP server, such as Gmail, Outlook, or a custom provider.

Installing Postfix

If Postfix is not already installed, you can do so using your system's package manager:

sudo apt update
sudo apt install postfix

Modifying Postfix Configuration

Open the main Postfix configuration file:

sudo nano /etc/postfix/main.cf

Add or modify the following lines to configure SMTP relay:

relayhost = [smtp.example.com]:587
smtp_use_tls = yes
smtp_sasl_auth_enable = yes
smtp_sasl_security_options = noanonymous
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_tls_CAfile = /etc/ssl/certs/ca-certificates.crt

Configuring SMTP Credentials

Create the credentials file for SMTP authentication:

sudo nano /etc/postfix/sasl_passwd

Add the SMTP server credentials:

[smtp.example.com]:587    user@example.com:password

Save the file and run the following command to convert it into a hash database readable by Postfix:

sudo postmap /etc/postfix/sasl_passwd

Set the correct permissions:

sudo chmod 600 /etc/postfix/sasl_passwd /etc/postfix/sasl_passwd.db

Restarting Postfix

After completing the configuration, restart Postfix to apply the changes:

sudo systemctl restart postfix

Check the service status:

sudo systemctl status postfix

Testing Email Sending

You can test email sending using the mail command:

echo "Test email" | mail -s "SMTP Test" recipient@example.com

Troubleshooting

  • Check Postfix logs for any errors with sudo journalctl -u postfix -n 50.
  • Ensure the firewall allows outgoing SMTP traffic (port 587).
  • Verify that the SMTP provider supports connections from external servers.

By following these steps, Postfix will be configured to send emails using an external SMTP server.

Back to top