2017-05-23 03:16:20 +08:00
|
|
|
<div align="center">
|
2020-09-23 23:23:04 +08:00
|
|
|
<a href="https://github.com/the-djmaze/snappymail">
|
2020-09-24 17:52:24 +08:00
|
|
|
<img width="200" heigth="200" src="https://snappymail.eu/static/img/logo-256x256.png">
|
2017-05-23 03:16:20 +08:00
|
|
|
</a>
|
|
|
|
<br>
|
2020-09-23 23:23:04 +08:00
|
|
|
<h1>SnappyMail</h1>
|
2017-05-23 03:16:20 +08:00
|
|
|
<br>
|
|
|
|
<p>
|
2020-09-26 16:20:24 +08:00
|
|
|
Simple, modern, lightweight & fast web-based email client.
|
2017-05-23 03:16:20 +08:00
|
|
|
</p>
|
|
|
|
<p>
|
2020-09-23 23:23:04 +08:00
|
|
|
The drastically upgraded & secured fork of <a href="https://github.com/RainLoop/rainloop-webmail">RainLoop Webmail Community edition</a>.
|
|
|
|
</p>
|
|
|
|
<p>
|
2020-09-26 18:25:57 +08:00
|
|
|
We thank the RainLoop Team for making a great PHP 5 product that was good in the past.
|
2020-09-23 23:23:04 +08:00
|
|
|
</p>
|
|
|
|
<p>
|
|
|
|
Up to date system requirements, snappy performance, simple installation and upgrade, no database required
|
|
|
|
- all these make SnappyMail a good choice.
|
2017-05-23 03:16:20 +08:00
|
|
|
</p>
|
|
|
|
<h2></h2>
|
|
|
|
<br>
|
|
|
|
</div>
|
2016-08-17 06:01:20 +08:00
|
|
|
|
2020-09-23 23:23:04 +08:00
|
|
|
For more information about the product, check [snappymail.eu](https://snappymail.eu/).
|
2016-08-17 06:01:20 +08:00
|
|
|
|
2020-09-23 23:23:04 +08:00
|
|
|
Information about installing the product, check the [wiki page](https://github.com/the-djmaze/snappymail/wiki/Installation-instructions).
|
2020-08-09 04:52:51 +08:00
|
|
|
|
2020-09-23 23:23:04 +08:00
|
|
|
And don't forget to read the [RainLoop documentation](https://www.rainloop.net/docs/).
|
2016-08-17 06:01:20 +08:00
|
|
|
|
|
|
|
## License
|
|
|
|
|
2020-09-23 23:23:04 +08:00
|
|
|
**SnappyMail** is released under
|
2016-08-17 06:01:20 +08:00
|
|
|
**GNU AFFERO GENERAL PUBLIC LICENSE Version 3 (AGPL)**.
|
|
|
|
http://www.gnu.org/licenses/agpl-3.0.html
|
|
|
|
|
2020-09-23 23:23:04 +08:00
|
|
|
Copyright (c) 2020 SnappyMail
|
2020-03-10 00:04:17 +08:00
|
|
|
|
|
|
|
## Modifications
|
|
|
|
|
2020-09-23 23:23:04 +08:00
|
|
|
This fork of RainLoop has the following changes:
|
2020-03-10 00:04:17 +08:00
|
|
|
|
2020-03-13 22:36:48 +08:00
|
|
|
* Privacy/GDPR friendly (no: Social, Gravatar, Facebook, Google, Twitter, DropBox, OwnCloud, X-Mailer)
|
2020-03-10 00:04:17 +08:00
|
|
|
* Admin uses password_hash/password_verify
|
2020-07-15 20:45:11 +08:00
|
|
|
* Auth failed attempts written to syslog
|
2020-07-29 17:29:59 +08:00
|
|
|
* Added Fail2ban instructions
|
2020-07-31 22:13:38 +08:00
|
|
|
* ES2015
|
2020-03-10 00:04:17 +08:00
|
|
|
* PHP 7.3+ required
|
|
|
|
* PHP mbstring extension required
|
2020-03-13 22:36:48 +08:00
|
|
|
* PHP replaced pclZip with ZipArchive
|
2020-07-08 22:48:35 +08:00
|
|
|
* PHP yaml extension else use the old Spyc
|
2020-07-15 20:45:11 +08:00
|
|
|
* Removed BackwardCapability (class \RainLoop\Account)
|
|
|
|
* Removed ChangePassword (plugins won't work)
|
|
|
|
* Removed OAuth support
|
|
|
|
* Removed POP3 support
|
|
|
|
* Removed background video support
|
|
|
|
* Removed Sentry (Application Monitoring and Error Tracking Software)
|
|
|
|
* Replaced gulp-uglify with gulp-terser
|
2020-03-10 00:04:17 +08:00
|
|
|
* CRLF => LF line endings
|
2020-09-06 17:13:43 +08:00
|
|
|
* Embed boot.js and boot.css into index.html
|
2020-07-27 23:40:00 +08:00
|
|
|
* Ongoing removal of old JavaScript code (things are native these days)
|
2020-09-13 20:13:16 +08:00
|
|
|
* Added modified [Squire](https://github.com/neilj/Squire) HTML editor as replacement for CKEditor
|
2020-09-17 06:02:35 +08:00
|
|
|
* Split Admin specific JavaScript code from User code
|
2020-07-15 20:45:11 +08:00
|
|
|
|
2020-07-27 23:40:00 +08:00
|
|
|
### Removal of old JavaScript
|
|
|
|
|
2020-07-31 22:13:38 +08:00
|
|
|
This fork uses downsized/simplified versions of scripts and has no support for Internet Explorer.
|
2020-07-28 17:23:06 +08:00
|
|
|
|
|
|
|
The result is faster and smaller download code (good for mobile networks).
|
2020-07-23 22:06:16 +08:00
|
|
|
|
2020-08-19 02:24:17 +08:00
|
|
|
Things might work in Edge 18, Firefox 50-62 and Chrome 54-68 due to one polyfill for array.flat().
|
2020-07-24 02:50:20 +08:00
|
|
|
|
2020-08-31 22:33:40 +08:00
|
|
|
* Added dev/prototype-*.js for some additional features
|
2020-09-03 22:34:23 +08:00
|
|
|
* boot.js without webpack overhead
|
2020-09-21 05:15:06 +08:00
|
|
|
* Modified Jua.js to be without jQuery
|
2020-08-10 16:40:25 +08:00
|
|
|
* Replaced ProgressJS with simple native dropin
|
2020-08-31 22:33:40 +08:00
|
|
|
* Replaced Autolinker with simple https/email detection
|
|
|
|
* Replaced ifvisible.js with simple drop-in replacement
|
|
|
|
* Replaced momentToNode with proper HTML5 <time>
|
|
|
|
* Replaced resize listeners with ResizeObserver
|
|
|
|
* Replaced bootstrap.js with native drop-in replacement
|
2020-09-03 18:51:15 +08:00
|
|
|
* Replaced dev/Common/ClientStorageDriver/* with Web Storage Objects polyfill
|
2020-09-21 05:15:06 +08:00
|
|
|
* Replaced *Ajax with *Fetch classes because we use the Fetch API, not jQuery.ajax
|
|
|
|
* Replaced knockoutjs 3.4 with a modified 3.5.1
|
|
|
|
* Replaced knockout-sortable with native HTML5 drag&drop
|
|
|
|
* Replaced simplestatemanager with @media
|
2020-09-21 22:05:04 +08:00
|
|
|
* Replaced inputosaurus to native
|
2020-09-26 16:20:24 +08:00
|
|
|
* Replaced keymaster with own shortcuts handler
|
2020-07-31 22:13:38 +08:00
|
|
|
* Removed pikaday
|
|
|
|
* Removed underscore
|
|
|
|
* Removed polyfills
|
|
|
|
* Removed Modernizr
|
|
|
|
* Removed nanoscroll
|
2020-09-22 00:54:41 +08:00
|
|
|
* Removed lightgallery
|
|
|
|
* Removed jQuery
|
2020-09-21 22:05:04 +08:00
|
|
|
* Removed jquery-ui
|
2020-07-31 22:13:38 +08:00
|
|
|
* Removed jquery-scrollstop
|
|
|
|
* Removed jquery-mousewheel
|
|
|
|
* Removed matchmedia-polyfill
|
2020-08-07 20:44:33 +08:00
|
|
|
* Removed momentjs (localization still used)
|
2020-08-13 19:16:08 +08:00
|
|
|
* Removed opentip (use CSS)
|
2020-08-25 02:56:14 +08:00
|
|
|
* Removed non-community (aka Prem/Premium/License) code
|
2020-07-31 22:13:38 +08:00
|
|
|
|
2020-09-30 22:10:01 +08:00
|
|
|
|
|
|
|
RainLoop 1.14 vs SnappyMail
|
|
|
|
|
|
|
|
|js/* |RainLoop |Snappy |
|
2020-08-15 02:35:39 +08:00
|
|
|
|----------- |--------: |--------: |
|
2020-10-03 05:54:15 +08:00
|
|
|
|admin.js |2.130.942 | 776.615 |
|
|
|
|
|app.js |4.184.455 |2.430.639 |
|
2020-09-23 20:49:43 +08:00
|
|
|
|boot.js | 671.522 | 5.285 |
|
2020-10-03 05:54:15 +08:00
|
|
|
|libs.js | 647.614 | 255.041 |
|
2020-08-15 02:35:39 +08:00
|
|
|
|polyfills.js | 325.834 | 0 |
|
2020-10-03 05:54:15 +08:00
|
|
|
|TOTAL |7.960.367 |3.467.580 |
|
2020-08-24 06:09:54 +08:00
|
|
|
|
2020-09-30 22:10:01 +08:00
|
|
|
|js/min/* |RainLoop |Snappy |Rain gzip |gzip |brotli |
|
2020-08-24 06:09:54 +08:00
|
|
|
|--------------- |--------: |--------: |--------: |--------: |--------: |
|
2020-10-03 05:54:15 +08:00
|
|
|
|admin.min.js | 252.147 | 104.046 | 73.657 | 27.739 | 24.058 |
|
|
|
|
|app.min.js | 511.202 | 329.887 |140.462 | 84.844 | 68.843 |
|
2020-09-23 20:49:43 +08:00
|
|
|
|boot.min.js | 66.007 | 2.935 | 22.567 | 1.510 | 1.285 |
|
2020-10-03 05:54:15 +08:00
|
|
|
|libs.min.js | 572.545 | 149.712 |176.720 | 52.703 | 46.853 |
|
2020-08-24 06:09:54 +08:00
|
|
|
|polyfills.min.js | 32.452 | 0 | 11.312 | 0 | 0 |
|
2020-10-03 05:54:15 +08:00
|
|
|
|TOTAL |1.434.353 | 586.580 |424.718 |166.796 |141.039 |
|
|
|
|
|TOTAL (no admin) |1.182.206 | 482.534 |351.061 |139.057 |116.981 |
|
2020-08-31 22:33:40 +08:00
|
|
|
|
2020-09-30 22:10:01 +08:00
|
|
|
For a user its around 60% smaller and faster than traditional RainLoop.
|
2020-08-31 22:33:40 +08:00
|
|
|
|
|
|
|
### CSS changes
|
|
|
|
|
|
|
|
* Solve jQuery removed "features" with native css code.
|
|
|
|
* Removed html.no-css
|
|
|
|
* Removed dev/Styles/Cmd.less
|
|
|
|
* Removed dev/Styles/Scroll.less
|
|
|
|
* Removed Internet Explorer from normalize.css
|
|
|
|
* Removed node_modules/opentip/css/opentip.css
|
|
|
|
* Removed node_modules/pikaday/css/pikaday.css
|
|
|
|
* Removed vendors/bootstrap/less/breadcrumbs.less
|
|
|
|
* Removed vendors/bootstrap/less/navbar.less
|
|
|
|
* Removed vendors/bootstrap/less/popovers.less
|
|
|
|
* Removed vendors/bootstrap/less/progress-bars.less
|
|
|
|
* Removed vendors/bootstrap/less/scaffolding.less
|
|
|
|
* Removed vendors/bootstrap/less/sprites.less
|
|
|
|
* Removed vendors/bootstrap/less/tooltip.less
|
|
|
|
* Removed vendors/jquery-nanoscroller/nanoscroller.css
|
|
|
|
* Removed vendors/jquery-letterfx/jquery-letterfx.min.css
|
|
|
|
* Removed vendors/Progress.js/minified/progressjs.min.css
|
2020-07-31 22:13:38 +08:00
|
|
|
|
2020-07-30 18:23:11 +08:00
|
|
|
|
2020-09-03 03:30:23 +08:00
|
|
|
|css/* |1.14.0 |native |gzip 1.14 |gzip |brotli |
|
|
|
|
|-------------- |-------: |-------: |------: |------: |------: |
|
2020-10-02 20:44:29 +08:00
|
|
|
|app.css | 340.334 | 186.119 | 46,959 | 28.731 | 24.189 |
|
|
|
|
|app.min.css | 274.791 | 152.283 | 39.618 | 25.276 | 21.801 |
|
2020-09-19 19:53:14 +08:00
|
|
|
|boot.css | | 2.534 | | 837 | 668 |
|
2020-09-06 17:13:43 +08:00
|
|
|
|boot.min.css | | 2.055 | | 732 | 560 |
|
2020-07-28 23:20:14 +08:00
|
|
|
|
2020-07-23 22:06:16 +08:00
|
|
|
|
2020-09-09 23:29:14 +08:00
|
|
|
### Squire vs CKEditor
|
2020-09-13 20:13:16 +08:00
|
|
|
The [Squire](https://github.com/neilj/Squire) implementation is not 100% compatible yet, but is shows the massive overhead of CKEditor.
|
2020-09-10 19:48:25 +08:00
|
|
|
|
|
|
|
Still TODO:
|
|
|
|
|
|
|
|
* support for tables (really needed?!?)
|
2020-09-11 22:58:05 +08:00
|
|
|
* support BIDI (really needed?!?)
|
2020-09-09 23:29:14 +08:00
|
|
|
|
|
|
|
| | normal | min | gzip | min gzip |
|
|
|
|
|-------- |-------: |-------: |------: |--------: |
|
2020-09-11 20:40:13 +08:00
|
|
|
|squire | 128.826 | 47.074 | 33.671 | 15.596 |
|
2020-09-09 23:29:14 +08:00
|
|
|
|ckeditor | ? | 520.035 | ? | 155.916 |
|
|
|
|
|
2020-09-11 20:40:13 +08:00
|
|
|
CKEditor including the 7 asset requests (css,language,plugins,icons) is 633.46 KB / 180.47 KB (gzip).
|
2020-09-09 23:29:14 +08:00
|
|
|
|
2020-09-22 21:24:45 +08:00
|
|
|
To use the old CKEditor, you must enable it in /data/\_data\_/\_default\_/configs/application.ini
|
|
|
|
in the [labs] section add/edit: `use_ck_html_editor = On`
|
2020-09-09 23:29:14 +08:00
|
|
|
|
2020-07-15 20:45:11 +08:00
|
|
|
### PHP73 branch
|
|
|
|
|
2020-09-23 23:23:04 +08:00
|
|
|
There's a RainLoop 1.14.0 branch with only the PHP 7.3 changes at
|
|
|
|
https://github.com/the-djmaze/snappymail/tree/php73
|