User Tools

Snappy Mail

Snappy Mail is a simple, modern, lightweight & fast web-based email client. It is the successor of the long defunct RainLoop webmail client.

Note: i installed SnappyMail on my external server, together with the mail server, and not on the home server. The unusual approach you might note here are due to that noticeable differences.

Installation

Get your release here

will install under /home/web/snappymail. Replace, in the following instruction, the URL and filename with the latest release:

mkdir -p /home/web/snappymail/frontend
cd /home/web/snappymail/frontend
wget https://github.com/the-djmaze/snappymail/releases/download/v2.38.2/snappymail-2.38.2.tar.gz
tar xvf snappymail-2.38.2.tar.gz 
find ./  -type d -exec chmod 755 {} \;
find ./ -type f -exec chmod 644 {} \;
chown -R web:web data

Secure the data folder

Move the data folder outside the document root can be a good idea. First of all, move it physically:

cd /home/web/snappymail
mv frontend/data .
mv frontend/_include.php frontend/include.php

Now edit the file frontend/include.php and add setup the following line:

define('APP_DATA_FOLDER_PATH', '/home/web/snappymail/data/');

The trailing “/” is very important.

Reverse Proxy

webmail.conf
server {
        server_name webmail.mydomain.com;
        listen 443 ssl;

        index index.php;

        root /home/web/snappymail/frontend;

        access_log /var/log/nginx/webmail.mydomain.com_access_log main;
        error_log /var/log/nginx/webmail.mydomain.com_error_log info;

        location ~ /.*\.php$ {
                try_files $uri =404;
                fastcgi_split_path_info ^(.+\.php)(/.+)$;
                include fastcgi_params;
                fastcgi_param SCRIPT_FILENAME $request_filename;
                fastcgi_param   SCRIPT_NAME        $fastcgi_script_name;
                fastcgi_pass 127.0.0.1:9000;
        }

        # Security headers
        add_header Strict-Transport-Security "max-age=15768000; includeSubDomains; preload;" always;
        add_header X-Content-Type-Options "nosniff" always;
        add_header X-XSS-Protection "1; mode=block" always;
        add_header X-Robots-Tag "none" always;
        add_header X-Download-Options "noopen" always;
        add_header X-Permitted-Cross-Domain-Policies "none" always;
        add_header Referrer-Policy "no-referrer" always;
        add_header X-Frame-Options "SAMEORIGIN" always;
        fastcgi_hide_header X-Powered-By;

        index index.php;

        location ~ (^|/)\. {
                return 403;
        }

        location ~ ^/data/ {
            deny all;
        }
}

Configuration

After restarting NGINX, go to https://webmail.mydomain.com/?admin, you need to login as user admin with the password found in the file: data/_data_/_default_/admin_password.txt.

Immediately change the password, and that file will be deleted.

You need to setup the domains you want to use in SnappyMail to allow users to login.

Upgrade

To upgrade the installation, you simply need to upload files from the new package overwriting existing files. Directory structure is organized to have each new version installed to a different directory. Only a few files will be actually overwritten (/index.php and /data/VERSION).

All the additional reconfiguration will be done by the product on next run.

Then when everything works, you may remove any old version that resides in /snappymail/v/.

This website uses technical cookies only. No information is shared with anybody or used in any way but provide the website in your browser.

More information