FreeKB - Postfix (Email) Install Postfix on Linux
Postfix (Email) - Install Postfix on Linux

Use apt-get or yum to install Postfix.

~]# yum install postfix


Sendmail should not be installed. However, just to be certain, uninstall sendmail.

~]# yum erase sendmail


The hostname of your Linux server can be something unique, such as mail1. Ensure your DNS server is able to resolve the hostname of your mail server to the IP address of your mail server. It is farily common for the DNS to resolve a variety of hostnames to the Postfix server, such as in the example below.

In the /etc/postfix/ file, set mydestination to contain your domain name. This is how Postfix knows that is a valid email address.

mydestination =


For the initial setup, configure Postfix to use user accounts listed in the /etc/passwd file on the Linux system. 

In the /etc/postfix/ file, set home_mailbox to Maildir/, so that emails are stored at /home/username/Maildir/. Also ensure that mailbox_command has no value. This will ensure that when a new user account is created, the new users home directory will contain the mail directory, such as /home/jane.doe/Maildir/.

home_mailbox = Maildir/
mailbox_command =


In the /etc/postfix/ file, ensure local_recipient_maps is not commented out, as this line is needed in order for Postfix to locate the accounts listed in the /etc/passwd file.

local_recipient_maps = unix:passwd:byname $alias_maps


In the /etc/postfix/ file, set mynetwork_styles to host, for security.

mynetwork_styles = host


In the /etc/postfix/ file, set inet_interfaces to all, to allow remote hosts to be able to connect to your Postfix server.

inet_interfaces = all


In the /etc/postfix/ file, set smtpd_recipient_restrictions, for security.

smtpd_recipient_restrictions = permit_mynetworks,


The ps command can be used to determine if your system is using init or systemd. If PID 1 is init, then you will use the service command. If PID 1 is systemd, then you will use the systemctl command.

If your system is using systemd, use the systemctl command to start and enable postfix.

systemctl enable postfix
systemctl start postfix
systemctl status postfix


If your system is using init, use the service command to start and enable postfix.

service postfix enable
service postfix start
service postfix status


Open port 25 (smtp), 110 (pop3), and 143 (imap) in iptables or firewalld.

It is not a good idea to open ports 25, 110, and 143 in your Internet facing router, as Postfix has not been secured with authentication, encryption, and a spam filter. Opening up an unsecured mail server to the Internet creates the possibility for your email server to become a spam relay, which is something you want to prevent.

You can now create and read emails using the mailx command on the Linux system.

Add a Comment

We will never share your name or email with anyone. Enter your email if you would like to be notified when we respond to your comment.

Please enter 9a159 in the box below so that we can be sure you are a human.


Web design by yours truely - me, myself, and I   |   |