User Tools

This is an old revision of the document!


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.

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