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.
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.