Home

Awesome

<div align="center"> <a href="https://github.com/the-djmaze/snappymail"> <img src="https://snappymail.eu/static/img/logo-256x256-white.png"> </a> <br> <h1>SnappyMail</h1> <br>

github-actions docker-image-size

<p> Simple, modern, lightweight &amp; fast web-based email client. </p> <p> The drastically upgraded &amp; secured fork of <a href="https://github.com/RainLoop/rainloop-webmail">RainLoop Webmail Community edition</a>. </p> <p> We thank the RainLoop Team for making a great PHP 5 product that was good in the past. </p> <p> Up to date system requirements, snappy performance, simple installation and upgrade, no database required - all these make SnappyMail a good choice. </p> <h2></h2> <br> </div>

For more information about the product, check snappymail.eu.

Information about installing the product, check the wiki page.

And don't forget to read the whole Wiki.

License

SnappyMail is released under GNU AFFERO GENERAL PUBLIC LICENSE Version 3 (AGPL). http://www.gnu.org/licenses/agpl-3.0.html

Copyright (c) 2020 - 2024 SnappyMail Copyright (c) 2013 - 2022 RainLoop

Modifications

This fork of RainLoop has the following changes:

Supported browsers

This fork uses downsized/simplified versions of scripts and has no support for Internet Explorer nor Edge Legacy. Supported are:

Removal of old JavaScript

The result is faster and smaller download code (good for mobile networks).

RainLoop 1.17 vs SnappyMail

js/*RainLoopSnappy
admin.js2.170.15384.925
app.js4.207.787447.263
boot.js868.7354.343
libs.js658.812233.728
sieve.js091.418
polyfills.js334.6080
serviceworker.js0285
TOTAL8.240.095861.962
js/min/*RainLoopSnappyRL gzipSM gzipRL brotliSM brotli
admin.min.js256.83141.71973.60614.02260.87712.567
app.min.js515.367202.101139.45668.505110.48558.481
boot.min.js84.6592.23126.9981.27123.6431.067
libs.min.js584.772110.646180.90139.518155.18235.207
sieve.min.js045.504011.13109.917
polyfills.min.js32.837011.406010.1750
TOTAL user1.217.635314.978358.761109.294299.48594.755
TOTAL user+sieve1.217.635360.482358.761120.425299.485104.672
TOTAL admin959.099154.596292.91154.811249.87748.841

For a user it is around 66% smaller and faster than traditional RainLoop.

CSS changes

css/*RainLoopSnappyRL gzipSM gzipSM brotli
app.css340.33185.07346.94617.79215.210
app.min.css274.94768.27239.64715.61513.636
boot.css1.326664545
boot.min.css1.071590474
admin.css30.8807.0456.127
admin.min.css24.9596.3685.615

PGP

RainLoop uses the old OpenPGP.js v2 SnappyMail v2.12 uses OpenPGP.js v5, GnuPG and Mailvelope. SnappyMail is able to use and generate ECDSA and EDDSA keys, where RainLoop does not.

Since SnappyMail tries to achieve the best mobile experience, it forked OpenPGP.js to strip it down.

OpenPGPRainLoopSnappyRL gzipSM gzipRL brotliSM brotli
openpgp.min.js330.742546.165102.388169.20784.241138.688
openpgp.worker1.499824695

Squire vs CKEditor

The Squire implementation is not 100% compatible yet, but it shows the massive overhead of CKEditor.

Still TODO:

normalmingzipmin gzip
squire122.32141.90631.86714.330
ckeditor?520.035?155.916

CKEditor including the 7 asset requests (css,language,plugins,icons) is 633.46 KB / 180.47 KB (gzip).