RainLoop Webmail – A Modern Fast Web Based Email Client for Linux

RainLoop is a free webmail application based on PHP, it’s free and open source, has modern user interface to handle large number of email accounts without the need of any database connectivity, besides non database connectivity it holds both SMTP and IMAP protocols to easily send/receive emails without any trouble.

RainLoop Key Features

  1. Modern : Modern user interface, with drag’n’drop of files, progress bar for file uploading, browser notifications, embed images into messages, keyboard shortcuts, multi-language mails, etc.
  2. Technological : Supports all latest mail server protocols, such as SMTP and IMAP. Multi-level caching engine allows for increasing performance of application and reducing load on mail and server.
  3. Customizable : Highly customization options to customize interface layout using visual themes and support for multi-language interface, with new languages easily added.
  4. Social : Integration with Facebook, Google and Twitter enables users to log-in with their social network credentials.
  5. Simplicity : Provides easy way to installing and upgrading RainLoop application without any technical skills. The built-in upgrade tool allows users to easily obtain new version and plugins from a single click via admin interface.
  6. Security : Built-in protection module clears hazardous HTML entities for preventing several attacks. In addition, token-based security engine is used for protection from CSRF attacks.
  7. Extensibility : Plugin system provides several features like changing password, global address, compose screen, keeping user settings in database, etc are easily integrated into application.
  8. Performance : The application well designed with efficient memory use in mind, so it can work smoothly even on low-end servers. But still in most cases, the performance and speed of application directly depends on performance of server and bandwidth available.

Requirement of RainLoop

In order to install RainLoop application we require:

  1. GNU/Linux operating system
  2. Apache web server
  3. PHP version 5.3 or higher
  4. PHP Extensions
RainLoop Demo and Preview
  1. Watch Demo of application – http://demo.rainloop.net/
RainLoop Webmail
Preview: RainLoop Webmail
Testing Environment
  1. Operating System – CentOS 6.5 & Ubuntu 13.04
  2. Apache – 2.2.15
  3. PHP – 5.5.3
  4. RainLoop –

Installation of RainLoop Webmail in Linux

As I mentioned earlier, that RainLoop Webmail is developed in PHP for Linux with Apache. So, you must have a running Web server with PHP installed on the system along with PHP modules such as cURL, ibxml, dom, openssl, DateTime, PCRE, etc. To install these all required packages, you can use package manager tool called yum or apt-get according to your Linux distribution.

Step 1: Install Apache, PHP and MySQL

Install on Red Hat based systems using yum command.

# yum install httpd
# yum install mysql mysql-server
# yum install php php-mysql php-xml pcre php-common curl 
# service httpd start
# service mysqld start

Install on Debian based systems using apt-get command.

# apt-get install apache2
# apt-get install mysql-server mysql-client
# apt-get install php5 libapache2-mod-auth-mysql libmysqlclient15-dev php5-mysql curl libcurl3 libcurl3-dev php5-curl php5-json
# service apache2 start
# service mysql start

Step 2: Download and Install RainLoop Webmail

Now go the official RainLoop site and download the latest source tarball (i.e version using below link.

  1. http://rainloop.net/downloads/

Alternatively, you may also use following ‘wget‘ command to download the latest source package and extract it to a Apache web root directory. For example, ‘/var/www/rainloop‘ or ‘/var/www/html/rainloop‘.

On Red Hat based Systems
# mkdir /var/www/html/rainloop		
# cd /var/www/html/rainloop
# wget http://repository.rainloop.net/v1/rainloop-
# unzip rainloop-
# rm rainloop-*.zip
On Debian based Systems
# mkdir /var/www/rainloop		
# cd /var/www/webmail
# wget http://repository.rainloop.net/v1/rainloop-
# unzip rainloop-
# rm rainloop-*.zip

Note: You can also download the latest version of RainLoop application without a need to deal with zip archive, just use the following command in your terminal.

# curl -s http://repository.rainloop.net/installer.php | php

Step 3: Configure Permissions

After, extracting the package content, be sure to set correct permissions for the files and directories before installing the product. This is necessary to have running application with its default configuration. This is also mandatory, when dealing manual upgrade or restoring from backup. Please switch to application directory i.e. ‘/var/www/rainloop‘ or ‘/var/www/html/rainloop‘ and execute following commands thereon.

# find . -type d -exec chmod 755 {} \;
# find . -type f -exec chmod 644 {} \;

Now, set owner for the application recursively.

chown -R www-data:www-data .

Note: Depending on specific Linux distribution, user account for web server runs may vary (apache, www, www-data, nobody, nginx, etc.).

Step 4: Configure RainLoop via Admin Interface

There are two ways to configure the RainLoop application – using admin panel, or by modifying ‘application.ini‘ file manually from the terminal. But, most of the basic options are configured via web interface, and that should suffix in most cases. To access admin panel, use the following default login credentials.

  1. URL : http://Your-IP-Address/rainloop/?admin
  2. User : admin
  3. Pass : 12345

Admin Login

RainLoop Webmail Login
RainLoop Webmail Login

Change Admin Password

Once, you logged-in it’s recommended to change the default password to protect the application from the malicious attacks.

Change Default Password
Change Default Password
Set Password
Set Password

You can customize your login screen by adding custom Titles, Descriptions and path to Logo.

Enable Contacts

To enable contacts feature, we need to use supported database. Here, we will be using MySQL as database for enabling contacts. So, create the database manually using the following commands on the terminal.

# mysql -u root -p
mysql> create database rainloop;
mysql> exit;

Now enable the contacts feature from the Admin Panel –> Contacts page.

Enable Contacts
Enable Contacts
Add Domains

You may add or configure your domains at Admin Panel –> Domains –> Add Domain Page. The recommended setting for adding domain is localhost i.e., and Port 143 for IMAP and Port 25 for SMTP. Based on the server configuration, you may also select SSL/TLS for IMAPS/SMTPS and don’t forget to tick ‘Use short login form‘ checkbox.

Add Domain
Add Domain
Plugins – Enable Password Changing

This plugin add functionality to change the email account password. To enable this plugin, you need to install a package called ‘poppassd‘ on the server.

# apt-get install poppassd	[on Debian based Systems]

On Red Hat based systems, you need to download and enable Razor’s Edge Repository for your specific distribution and then install the ‘poppassd’ package using the following command.

# yum install poppassd

Next, go to the Admin Panel –> Package section to install plugin.

Poppasswd Plugin
Poppasswd Plugin

Enable, the poppassd plugin from the Admin Panel > Plugins page and tick the ‘poppassd-change-password‘ box. Add the server details such, Port 106 and enter ‘*‘ for Allowed emails.

Enable Poppasswd Plugin
Enable Poppasswd Plugin

Integration with Facebook, Google and Twitter enables users to log-in using social network credentials. The Dropbox integration enables users to attach files from their dropbox storage.

To enable social integration, go to Admin Panel –> Social tab, and add appropriate fields for specific social networks. For more detailed instructions on social integration can be found at http://rainloop.net/docs/social/.

Reference Links

RainLoop Homepage

Ravi Saive
I am an experienced GNU/Linux expert and a full-stack software developer with over a decade in the field of Linux and Open Source technologies

Each tutorial at TecMint is created by a team of experienced Linux system administrators so that it meets our high-quality standards.

Join the TecMint Weekly Newsletter (More Than 156,129 Linux Enthusiasts Have Subscribed)
Was this article helpful? Please add a comment or buy me a coffee to show your appreciation.


Leave a Reply
  1. I don’t understand why we need to install database service? its not required for RainLoop. as they say on their website.

  2. hi, i did evrything until point 4 when i am trying to conect i get this error : Not Found

    The requested URL /rainloop/ was not found on this server.
    Apache/2.4.10 (Debian) Server at Port 80

  3. Good article. I have used rainloop in the past and it covered a great amount of work for me.
    Personally I love this webmail.
    But bear with me, recently I discovered a great article about an application for a customer-centered workflows and business webmail management. It drastically changed my webmail preferences due to the numerous features it offers. It’s called VTEDDY. It’s official documentation is nice, but i am not so good in the linux cli and luckily for me i found this great article : https://www.rosehosting.com/blog/install-vteddy-on-an-ubuntu-14-04-vps/ so i installed and tried the application. I am very satisfied and can recommend to anyone that wants a complete webmail solution.

  4. I have followed this tutorial and installed it correctly on my server. Also I am running virtualmin on it. I have installed it on http://ip_address/rainloop. The rainloop does not show up. And I Tried installing it on another server without virtualmin, it worked perfectly. Pl tell me how to run both of them on a single server.


  5. Hi, please help me with this problem

    I have a standard debian system, where my users have usernames which are not email addresses.

    For example, if my system’s domain is example.com, and a user on that system is called “andrew”, then they log on to the system with their username “andrew”, not their email address.

    If they try to log in with a login of “[email protected]” this will fail, because that is not their login username.

    I have verified this by running pop3 and imap2 sessions on telnet, and successfully logging in with the username, and not being able to log in with the email address.

    My question is: How can I use rainloop with such a system?

    I am not currently able to log into the system I have, because rainloop insists on using “[email protected]” as my login.

    I have checked this on the rainloop log file.

    Thanks very much for your help with this frustrating problem.

  6. When I try to login with normal user I always get –> “Domain is not allowed”

    I can login with my email account everywhere except RainLoop. Please advise?

    • No any security issues, RainLoop works in secure mode with all mail servers using SSL and STARTTLS protocols.

  7. Is there an example using https port 443 and an option to prevent the admin account from being easily accessed?

    Can you use deny allow for the admin portion?

    • Please install those missing extensions using following command.

      # yum install php-common curl php-curl php-json

Got Something to Say? Join the Discussion...

Thank you for taking the time to share your thoughts with us. We appreciate your decision to leave a comment and value your contribution to the discussion. It's important to note that we moderate all comments in accordance with our comment policy to ensure a respectful and constructive conversation.

Rest assured that your email address will remain private and will not be published or shared with anyone. We prioritize the privacy and security of our users.