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.203
app.js4.207.787445.359
boot.js868.7354.343
libs.js658.812193.716
sieve.js084.571
polyfills.js334.6080
serviceworker.js0285
TOTAL8.240.095812.477
js/min/*RainLoopSnappyRL gzipSM gzipRL brotliSM brotli
admin.min.js256.83141.25673.60613.94060.87712.493
app.min.js515.367201.270139.45668.096110.48558.078
boot.min.js84.6592.23126.9981.27123.6431.067
libs.min.js584.77292.365180.90134.487155.18230.830
sieve.min.js041.288010.32709.318
polyfills.min.js32.837011.406010.1750
TOTAL user1.217.635295.866358.761103.854299.48589.975
TOTAL user+sieve1.217.635337.154358.761114.181299.48599.293
TOTAL admin959.099135.852292.91149.698249.87744.390

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

CSS changes

css/*RainLoopSnappyRL gzipSM gzipSM brotli
app.css340.33184.69146.94617.69315.157
app.min.css274.94768.05239.64715.58913.610
boot.css1.326664545
boot.min.css1.071590474
admin.css30.6027.0236.112
admin.min.css24.7176.3465.586

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