Introduction
Postfix is an open source Mail Transfer Agent that is used to route and deliver electronic email. It attempts to be fast, easy in administering and more secure.
In this tutorial, you will learn how to install Postfix on Ubuntu 14.04. Before we get down to install postfix, make sure you have a qualified domain name pointing to the server that you are going to use.
Installing Postfix
The installation of postfix on to your virtual private server can be done using the apt-get installer. Here is how it is done:
sudo apt-get update sudo apt-get install postfix
Before installing postfix, it’s better to update the local package index.
While installation is at progress, you will be asked to choose the type of installation. Select Internet Site from the options. After that you will have to enter the domain name too.
Configuring Postfix
Now that you have it installed, we will get down to configuring.
Open up the Postfix mail configuration file main.cf:
sudo nano /etc/postfix/main.cf
Below are the changes that have to be incorporated to the main configuration file:
- Give your domain name to ‘myhostname’
myhostname = example.com
- Replace alias_maps with virtual_alias_maps in case if you want to have mail forwarded to other domains. Make sure you have pointed it to /etc/postfix/virtual.
virtual_alias_maps = hash:/etc/postfix/virtual
Here, I have used example.com, myhostname and mail.example.com for domain name and hostname. You have to replace them with actual values.
Once you update the required fields, your configuration file will almost look similar to this:
soft_bounce = no queue_directory = /var/spool/postfix command_directory = /usr/sbin daemon_directory = /usr/libexec/postfix mail_owner = postfix # The default_privs parameter specifies the default rights used by # the local delivery agent for delivery to external file or command. # These rights are used in the absence of a recipient user context. # DO NOT SPECIFY A PRIVILEGED USER OR THE POSTFIX OWNER. # #default_privs = nobody myhostname = mail.example.com mydomain = example.com mydestination = $myhostname, localhost unknown_local_recipient_reject_code = 550 mynetworks_style = host mailbox_transport = lmtp:unix:/var/lib/imap/socket/lmtp local_destination_recipient_limit = 300 local_destination_concurrency_limit = 5 recipient_delimiter=+ virtual_alias_maps = hash:/etc/postfix/virtual header_checks = regexp:/etc/postfix/header_checks mime_header_checks = pcre:/etc/postfix/body_checks smtpd_banner = $myhostname debug_peer_level = 2 debugger_command = PATH=/bin:/usr/bin:/usr/bin:/usr/X11R6/bin xxgdb $daemon_directory/$process_name $process_id & sleep 5 sendmail_path = /usr/sbin/sendmail.postfix newaliases_path = /usr/bin/newaliases.postfix mailq_path = /usr/bin/mailq.postfix setgid_group = postdrop html_directory = no manpage_directory = /usr/share/man sample_directory = /usr/share/doc/postfix-2.3.3/samples readme_directory = /usr/share/doc/postfix-2.3.3/README_FILES smtpd_sasl_auth_enable = yes smtpd_sasl_application_name = smtpd smtpd_recipient_restrictions = permit_sasl_authenticated, permit_mynetworks, reject_unauth_destination, reject_invalid_hostname, reject_non_fqdn_hostname, reject_non_fqdn_sender, reject_non_fqdn_recipient, reject_unknown_sender_domain, reject_unknown_recipient_domain, reject_unauth_pipelining, reject_rbl_client zen.spamhaus.org, reject_rbl_client bl.spamcop.net, reject_rbl_client dnsbl.njabl.org, reject_rbl_client dnsbl.sorbs.net, permit smtpd_sasl_security_options = no anonymoussmtpd_sasl_local_domain = broken_sasl_auth_clients = yes smtpd_helo_required = yes
Configuration of Additional Emails
Each user on the server can read emails directed to their [email protected] by default. Suppose if you want to redirect emails to particular email, you may add users to alias file.
Open the alias database:
sudo nano /etc/postfix/virtual
Update the names of the users in that file:
[email protected] username1 [email protected] username2
You should substitute the actual user name and domain name in the above mentioned lines.
Save and exit the file.
Now, we are going to set up a database for the postfix to work.
Type in the following command at your terminal:
postmap /etc/postfix/virtual
This command will turn that virtual file into a look-up table and the database will be created for postfix.
Now, reload the postfix:
sudo service postfix restart
Verifying Set Up
You can verify the changes by sending mail from a regular email address to one of your user accounts on server or aliases.
The mail will be delivered to a file with matching username in /var/mail directory.
In case if you want to install friendly helper programs for your emails, you can do that using the following commands:
sudo apt-get install mailutils
This command will give access to the mail program that you can use to check inbox. An interface will be provided for accessing your mails.