Basic Postfix Configuration in Linux

Postfix is a Mail Transfer Agent (MTA) which is used to route mails between various mail accounts/servers. It is designed to be highly secure and easy to configure. This MTA is also compatible with sendmail.

In this tutorial, we will go through the basic configuration of postfix on a linux machine, so that you will be able to send and receive mails using this MTA.

Postfix Basic Configuration

Now, we can go through the basic configuration for setting up a mail server for a single domain. Here, the mail server will provide email accounts via system user accounts. Advanced postfix configuration will include virtual domain hosting to accomplish multiple email accounts on multiple domains.

The main configuration file of postfix is at “/etc/postfix/”. By default, Postfix does not accept network connections from any host other than the local host. We need to modify the configuration file to enable mail delivery for other hosts on the network.

1. mydomain

This is the domain name for the mail server which we are configuring, say

mydomain =

2. myhostname

This is the hostname of the server in which we are configuring the postfix MTA.

myhostname =

3. myorigin

This specifies the domain that appears in mail that is posted on this machine. The default is to use the local machine name, $myhostname, which defaults to the name of the machine.

myorigin = $mydomain

4. mydestination

This parameter specifies what domains this machine will deliver locally, instead of forwarding to another machine. The default is to receive mail for the machine itself.

mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain

5. mynetworks

This parameter specifies what clients to relay mail from. The default is to authorize all clients in the IP subnetworks that the local machine is attached to:

mynetworks =,

6. relay_domains

This specifies what destinations to relay mail to. The default is to authorize all domains (and subdomains) of the domains listed with the mydestination parameter. But, the safest method is to keep it empty so that it will never forward mail from strangers.

relay_domains =

7. inet_interfaces

This parameter specifies all network interface addresses that the postfix system should listen on; mail addressed to "user@[network address]" will be delivered locally, as if it is addressed to a domain listed in $mydestination.

inet_interfaces = all

8. home_mailbox

This sets the path of the mailbox relative to the users home directory and also specifies the style of mailbox to be used. Postfix supports both Maildir and mbox formats and readers are encouraged to read up on the merits of each for themselves. However, in this article we have chosen to use Maildir format (a trailing slash indicates Maildir format.

home_mailbox = Maildir/

Here, the mailbox should be available under ‘/home/user/Maildir’ so that mails to those accounts will be delivered properly. You need to create the mail folder as follows:

mkdir /home/user/Maildir
chown user:user /home/user/Maildir
chmod -R 700 /home/user/Maildir

Creating the Alias Database

Postfix uses a Sendmail-compatible aliases table to redirect mail for local recipients. Typically, this information is kept in two files: in a text file /etc/aliases and in an indexed file /etc/aliases.db.

For example, if you want to receive all root mails and mails to on, you need to modify the file /etc/aliases as follows:

# root's mail forwarding
root: user
# User aliases
otheruser: user

If you edit the aliases file, you must rebuild the aliases database by running the newaliases command.

Starting Postfix

You need to add postfix service to chkconfig for automatic restart on system reboot.

chkconfig postfix on

You can restart postfix service as follows:

service postfix restart

Read also:

Bobbin Zachariah 1:52 pm


Your email address will not be published. Required fields are marked *