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.