Saturday, February 25, 2017

Basic Email server in Ubuntu

Here we will see about the installation of a basic SMTP server on Ubuntu
$ sudo apt-get update
# apt-get update –fix-missing
# apt-get install bind9 dnsutils apache2 php5 postfix dovecot-common dovecot-imapd dovecot-pop3d squirrelmail 
Click okay for Internet Site
Let us cd /etc/bind
# vim named.conf.local  be very careful about the style of quotes it is a normal double quote msword will put curly quotes which will not get interpreted correctly.
zone “” {
                   type master;
                   file “/etc/bind/db.mark”;
zone “” {
                   type master;
                   file “/etc/bind/db.192”;
# cp db.local db.mark
# cp db.127 db.192
# vim db.mark
$TTL 604800
@   IN   SOA (
                                               2     ; Serial
                                    604800     ; Refresh
                                      86400     ; Retry
                                  2419200    ; Expire  
                                     604800 ) ; Negative Cache TTL
@         IN    NS 
@         IN    A   
ns         IN    A   
             IN    MX 10
www   IN    CNAME   ns
mail     IN    CNAME   ns
# vim db.192
$TTL 604800
@   IN   SOA (
                                               1     ; Serial
                                    604800     ; Refresh
                                      86400     ; Retry
                                  2419200    ; Expire  
                                     604800 ) ; Negative Cache TTL
@         IN    NS 
1         IN    PTR

Now we will restart bind9
# invoke-rc.d bind9 restart
Now when we do nslookup we should get the IP of our mail server.
When we do a dig we should get answers from mark.db file of bind9 conf.
Now let us work on the configuration of apache2 configuration file.
# cd /etc/apache2/sites-available/
# ls -l
# cp default mail.conf
# vim mail.conf
Now under VirutalHost directive under ServerAdmin let add the first line and update DocumentRoot
                         ServerAdmin   webmaster@localhost
                         DocumentRoot  /usr/share/squirrelmail
# Change the next Directory line as shown below.

Next we should try to enable that site with # a2ensite mail
Then try to reload apache2 service.
 service apache2 reload
Now let us try to reconfigure postfix
# dpkg-reconfigure postfix
Select Localonly and press Okay
Then for System mail name: “” and press OK.
Then for Root and postmaster don’t give anything and press OK.
Then for other destination to accept mail for change the line to, mark-virtual-machine, localhost.localdomain, , localhost,
Then for “Force synchronous updates on mail queue” press No
Then in Local networks append network
Then leave the mailox size limit at 0 bytes.
Then leave the * for Local address extension character and press Ok.
Then for Internet Protocols to use press all and press OK.

Now let us edit the squirrelmail’s apache configuration file.
# vim /etc/squirrelmail/apache.conf
Go down and uncomment
DocumentRoot /usr/share/squirrelmail
Edit the next line to this
vim.tiny /etc/squirrelmail/config.php
$imapServerAddress      = '';
$smtpServerAddress      = '';
Now let us start editing the Dovecot configuration file.
# vim /etc/dovecot/dovecot.conf
Go to the very bottom of the file and start typing
protocols = imap pop3
#disable_plaintext_auth = no
mail_location = mbox:~/mail:INBOX=/var/mail/%u
#mail_location = maildir: ~/Maildir

Change this line alone in  /etc/postfix/
inet_interfaces =,
Now that all configuration is over let us restart all the processes.
# killall named
# killall apache2
# killall dovecot
# invoke-rc.d bind9 restart
# invoke-rc.d apache2 restart
# invoke-rc.d postfix restart
# invoke-rc.d dovecot restart

Now let us create a couple of users to try logging in as them for email transaction.
# adduser bala1
# adduser bala2

Then the important piece of information is to head to

No comments:

Post a Comment