- This tutorial is available in an Oracle-provided free lab environment.
- It uses example values for Oracle Cloud Infrastructure credentials, tenancy, and compartments. When completing your lab, substitute these values with ones specific to your cloud environment.
Learn to Install and Configure Postfix on Oracle Linux 8
This tutorial shows you how to install and set up the Postfix email server software on an Oracle Linux 8 system to enable you to send messages within your network.
Postfix is a Mail Transfer Agent (MTA) server that was developed as a replacement for
sendmail, which is the default MTA server on many older Linux systems. Because of its modular pipeline-based architecture, Postfix is versatile and integrates easily with many other services, such as spam and anti-virus processing, as well as with message store software, such as the Dovecot IMAP and POP server.
This tutorial describes how to set up and configure Postfix to function primarily as a Simple Mail Transfer Protocol (SMTP) server.
Upon completion of this Lab you will be able to:
- Set the server host name
- Install Postfix with appropriate firewall rules
- Configure Postfix to send unencrypted email
- Send test emails by using
- Review the Postfix mail queue
- Any system with Oracle Linux 8
The next section describes hands-on exercises you can perform in a lab environment to install and run Postfix. To access the lab, click Launch lab next to the tutorial title.
(Hands-on Lab) Connect to the Compute Instance
Note: This step is specific to the Oracle provided free lab environment.
The Desktop environment will display before the instance(s) are ready. Deployment of this environment can take two to five minutes, depending on the number of resources and provisioning steps needed.
First, to access the lab compute instance(s), connect to the Oracle Cloud Console and copy the compute instance Public IP address.
Sign in to Oracle Cloud Console, and select your Compartment.
Copy the Public IP to a temporary location (such as a text file) on your computer.
To copy, highlight the IP address with the mouse and press Ctrl+C.
Right-click the Virtual Desktop and select Open Terminal Here.
Connect to the instance.
<IP_ADDRESS_OF_COMPUTE_INSTANCE>is the IP address copied from the Oracle Cloud Console.
Accept the ECDSA key fingerprint by typing
yesat the prompt.
You are now connected to the compute instance for this lab.
If the connection fails with the
Permission denied (publickey,gssapi-keyex,gssapi-with-mic) message, wait a bit longer for the provisioning process to complete and try making the ssh connection again.
postfixpackage on your instance by using the package manager, as follows:
sudo dnf install -y postfix
Allow SMTP traffic through the server firewall:
sudo firewall-cmd --zone=public --add-service=smtp --permanent
sudo firewall-cmd --reload
sendmailpackage, if it is present:
sudo dnf remove -y sendmail
Set Postfix as the default Mail Transfer Agent:
sudo alternatives --set mta /usr/sbin/sendmail.postfix
Enable and start the Postfix service:
sudo systemctl enable --now postfix
Create a backup for the default Postfix configuration:
sudo mv /etc/postfix/main.cf /etc/postfix/main.cf.bak
Edit the configuration file,
/etc/postfix/main.cf, to contain lines similar to the following:
sudo tee -a /etc/postfix/main.cf > /dev/null <<EOF myhostname = $(hostname -f) myorigin = \$myhostname inet_interfaces = all inet_protocols = all mydestination = \$myhostname, localhost mynetworks = 192.168.1.0/24, 127.0.0.0/8 10.0.0.0/24 home_mailbox = mail/ EOF
Note: Sending emails from a single host is sufficient for the purpose of this lab. In a production environment, you should set
mydomainas the registered domain name from which you intend to send email. For more information, read the Postfix manual pages.
Restart the Postfix service:
sudo systemctl restart postfix
Send Test Emails
sudo dnf install -y mailx
Send a test email to your own external email address. Update the hostname in the
mailxcommand to match the instance from which you are sending email:
echo "External email" | mailx -r root@$hostname -s "Test email subject" firstname.lastname@example.org
mailxto send test emails from a single host is sufficient for the purpose of this lab. In a production environment, you should use the registered domain that you configured in
/etc/postfix/main.cfwithin the sender email address instead, for example
Check your own email account for a new message. You may need to check your spam folder.
If the email does not appear, you can check the Postfix mail queue:
You can also check the Postfix log. Press Ctrl + C to exit:
sudo tail -f /var/log/maillog
More Learning Resources
Explore other labs on docs.oracle.com/learn or access more free learning content on the Oracle Learning YouTube channel. Additionally, visit education.oracle.com/learning-explorer to become an Oracle Learning Explorer.
For product documentation, visit Oracle Help Center.