Mail+Rainloop

----

set up local mail server in CentOS 7 with Rainloop

Local Mail Server

This tutorial is a guide to teach you how to set up a local mail server in your Linux System. The local mail server here means you will be able to send and receive mails within the private network but not outside of the network.

Local  mail server can be beneficial in many ways. You can set the alert to send mail directly to your local mail.

You can mail anyone within the network by the local mail.

Let me make you familiar with the protocols that are used to set up a mail server

Note: SMTP is used for transferring mails, POP3 and IMAP are used to access and receive  mails. The two packages that we need here to set up a mail server are the followings

Note: POSTFIX supports SMTP, Dovecot supports both POP3 and IMAP.

Necessary Port Numbers for Mail server

By default if you have a sendmail application installed on your Linux system, you just need to remove it, because it can create trouble while you set up mail server with POSTFIX and DOVECOT. So, it's better to remove it. Go to the terminal and type the following command to remove send mail.

# yum remove sendmail  

Set up the local domain name(DNS) with your private IP

As this a set up for the local mail server, so you don't need a public IP right now. You need the static private IP of your Linux computer. To check what is your private IP type the following command on the terminal. # ifconfig Now you know the IP address. Open the "hosts" file and configure it as given below. Run the below command on the terminal and edit the hosts file. I have added here my computer static IP address 192.168.0.8  and the hosts name of my computerin the hosts file.

# vi /etc/hosts

Local mail server

           

 

 

 

 

 

Install and configure POSTFIX

# yum install postfix

Now edit the postfix configuration file "main.cf"

# vi /etc/postfix/main.cf

Edit and add the following lines inside the "main.cf" file.

Line 77: Uncomment add the host name to myhostname.

myhostname = server.techsakh.local

Line 83:  Uncomment and add the domain to mydomain.

mydomain = techsakh.local

Line 99: Uncomment the line.

myorigin = $mydomain

Line 113: Uncomment and set inet_interfaces to all.

inet_interfaces = all

Line 119: Set inet_protocols to all.

inet_protocols = all

Line 164: Comment the line.

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

Line 165: Uncomment it.

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

Line 264: Add the IP.

mynetworks = 192.168.0.8/24, 127.0.0.0/8

Line 419: Uncomment it.

home_mailbox = Maildir/  

 

Now save the file with  :wq  

Install and configure DOVECOT

  At first install dovecot by the following command.

# yum install dovecot  

When the installation is done edit the dovecot configuration file.

# vi /etc/dovecot/dovecot.conf

Line 24: Uncomment the line

protocols = imap pop3 lmtp  

Now edit the 10-mail.conf file of dovecot.

# vi /etc/dovecot/conf.d/10-mail.conf  

Line 24: Uncomment the line mail_location = maildir:~/Maildir  

Edit 10-master.conf file.

vi /etc/dovecot/conf.d/10-master.conf  

Line 91 and 92: Uncomment the line and edit as give below.

user = postfix group = postfix

 Edit 10-auth.conf file

# vi /etc/dovecot/conf.d/10-auth.conf

Line 10: Uncomment it.

disable_plaintext_auth = yes  

Line 100: Uncomment the line.

auth_mechanisms = plain login  

Restart the server

# systemctl restart postfix # systemctl restart dovecot

Allow port 80 through firewall

# firewall-cmd  --permanent  --add-port=80/tcp

Test POSTFIX and DOVECOT

 Now as the Postfix and Dovecot is installed and configured you need to test if its working?

At first test the status of SELINUX. The full form of SELINUX is Security Enhanced Linux. As the name suggest it is a security enhancement in Linux. You can define rules for the access control in SELINUX. To check the proper testing of POSTFIX and DOVECOT you have to disable SELINUX. Type the following command to display the status of SELINUX.

# getenforce

If the out put of the above command is "Disabled" then its OK, otherwise you have to edit the configuration file. To configure the SELINUX open the file in the vi editor.

# vi /etc/sysconfig/selinux

change SELINUX = disabled

Local mail server

 

Add a new user for your local mail server.

# useradd techsakh

Now add a password for techsakh

# passwd techsakh

Test Postfix

Postfix uses the protocol smtp to transfer the mail. So we will test if we able to send the local mail by smtp.

# telnet localhost smtp

Trying ::1...

Connected to localhost.

Escape character is '^]'.

220 server1.unixmen.local ESMTP Postfix

ehlo localhost                                [Type this line]

250-server.techsakh.local 

250-PIPELINING

250-SIZE 10240000 

250-VRFY 

250-ETRN 

250-ENHANCEDSTATUSCODES

250-8BITMIME 

250 DSN mail from:<techsakh>        [Type this line, this is sender address] 

250 2.1.0 Ok 

rcpt to:<rocky>                                                [This is sender receiver address] 

250 2.1.5 Ok

data                                                                           [Type this line] 

354 End data with <CR><LF>.<CR><LF>

This is testing time                        [ Body of your mail]

.                                                       [Put a dot (.) in this line] 

.250 2.0.0 Ok:  queued as 441C2A36A8 

quit                                              [Type this line to quit] 

221 2.0.0 Bye

Connection closed by foreign host.

  Postfix is working absolutely fine.

Test Dovecot

Dovecot uses the POP3 protocol to receive mails. You need to test here POP3 is working or not?

# telnet localhost pop3

Trying ::1... 

Connected to localhost.

Escape character is '^]'. 

+OK Dovecot ready.

user rocky                        [Write the user name]

+OK 

pass 1234                         [Write the password]

+OK Logged in. 

retr 1                                 [Write this line]

+OK 417 octets

Return-Path: <techsakh@techsakh.local> 

X-Original-To: rocky

Delivered-To: rocky@techsakh.local 

Received: from localhost (localhost [IPv6:::1])

by server.techsakh.local (Postfix) with ESMTP id 0451CA34C8

for <rocky>; Wed,  6 Jan 2016 01:44:12 +0530 (IST) Message-Id: <20160105201454.0451CA34C8@server.techsakh.local>

Date: Wed,  6 Jan 2016 01:44:12 +0530 (IST) 

From: techsakh@techsakh.local 

This is testing time .

quit                                  [Write this line to log out]

+OK Logging out.

Connection closed by foreign host.

 

Dovecot is also working fine.  

Install and configure RAINLOOP

Rainloop is a an open source web based mail application. It supports SMTP to transfer mails and IMAP to receive mail. Unfortunately POP3 is not supported in Rainloop right now.

How to download and install Rainloop to use it in your local server

--Download repository--

# curl -O http://repository.rainloop.net/v2/webmail/rainloop-latest.zip

--Create a directory "rainloop" under html directory--

# mkdir /var/www/html/rainloop

 

--Unzip rainloop zip file in rainloop directory--

 

# unzip rainloop-latest.zip -d /var/www/html/rainloop

 

--Change mode and change the ownership--

 

# find /var/www/html/rainloop -type d -exec chmod 755 {} \; # find /var/www/html/rainloop -type f -exec chmod 644 {} \; # chown -R apache. /var/www/html/rainloop

How to configure Rainloop to use it in your local server

 

Now as everything is set, restart network and apache by the following command.

 

# systemctl restart network # systemctl restart httpd

 

 Create database

 

You need to create a database to enable contacts in Rainloop. Lets create a database first.

 

# mysql -u  root  -p

mysql>  create database rainloop;

mysql>  exit

 

Connect admin panel of rainloop

To configure Rainloop you have to go to the admin panel of rainloop. Type http://192.168.0.8/rainloop/?admin in your URL. The default user name is "admin" and password is "12345" to login into the admin panle of rainloop.

 

 

Local mail server with Rainloop

 

 Now to change the  password, go to Security option and change the admin panel default password.

 

Local mail server with Rainloop

 

Configure Rainloop. Add your local domain to Rainloop. Give the server IP address and port number as given below in the image. Check Use short login  and Use authentication.

 

 

Local mail server with Rainloop

 

 

 Now go to contacts, check Enable contacts and Allow contacts sync. Select storage type as MySQL.

Give your root password.

 

Local mail server with Rainloop

 

Configuring the Admin panel is all done. Now you can login to your user panel by providing the login credentials.

 

Connect user panel

 

For user login Type the URL  http://192.168.0.8/rainloop/  and provide the login credentials. Login compose and  send the local mail to the recipient  Give the recipient mail id as  username@domain name 

For example: techsakh@techsakh.local

 

Local mail server with Rainloop

 

 Thats all for installing and configuring local mail server with Rainloop in CentOS 7.

 

-----------

----------------------------------------------------------------------------------------------------------------------------