How to Install and Configure Postfix as a Send-Only SMTP Server on CentOS 8
Configuring a mail server to send messages only can be very useful when administering servers. For example, to receive notifications from Cron or monitoring systems. In this tutorial we will look at how to install and configure Postfix as a send-only SMTP server on CentOS 8. First, you need to have a domain name from which mail will be sent, as well as authorize on the server as root.
Installing and configuring Postfix
Let's install the required packages. Postfix is the mail server itself, and mailx is the environment for handling email.
dnf install -y postfix mailxActivate the start together with the system and run Postfix.
systemctl enable --now postfixOpen the Postfix configuration file.
nano /etc/postfix/main.cfYou need to find the inet_interfaces parameter and assign it the localhost value if it is different at the moment. In my case, the parameter was listed several times, but with the correct value.
inet_interfaces = localhostSet the myhostname parameter to your domain name.
myhostname = domain-name.comUncomment this line:
myorigin = $myhostnameMake the line look like this and replace the domain name with your own:
mydestination = $myhostname, domain-name.com, localhost.$mydomain, localhostSave and close the file and restart the system.
rebootNow you need to configure the hostname for the server.
hostname domain-name.com
echo "domain-name.com" > /etc/hostnameThese settings are sufficient in many cases, but some mail servers have fairly strict spam filters and will reject mail. In this case, additional steps are required. One of which is setting up a PTR record for a domain. Usually, to do it, you need to contact the support service of the company that provided you with a public IP address.
Postfix testing
To send a test message, use the command:
echo "Mail delivery test" | mail -s "[Server] New e-mail" mail@domain.comThe mail address must be replaced with a real one, and the text in quotation marks represents the body of the letter and its header.
Configuring mail forwarding
Sometimes you need to receive the host's internal mail to an external mailbox. For example, to receive system notifications. There are aliases for these purposes. Let's take a look at setting up mail forwarding for root. Open the file with aliases.
nano /etc/aliasesTo add mail forwarding for root to an external mailbox, add a line with your mailbox:
root: mail@domain.comSave the file and enter the command to apply the changes:
newaliases
700
300
700
300
700
300