SnappyMail
Client de messagerie Web simple, moderne, léger et rapide.
Le fork considérablement amélioré et sécurisé de l'édition RainLoop Webmail Community.
Nous remercions l'équipe RainLoop d'avoir créé un excellent produit PHP 5 qui était bon dans le passé.
Configuration système requise à jour, performances rapides, installation et mise à niveau simples, aucune base de données requise - tout cela fait de SnappyMail un bon choix.
Pour plus d'informations sur le produit, consultez snappymail.eu.
Informations sur l'installation du produit, consultez la page wiki.
Et n'oubliez pas de lire l'intégralité du Wiki.
Licence
SnappyMail est publié sous 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
Ce fork de RainLoop présente les changements suivants :
- Respect de la vie privée/RGPD (non : Social, Gravatar, Facebook, Google, Twitter, DropBox, X-Mailer)
- L'administrateur utilise password_hash/password_verify
- Échec des tentatives d'authentification écrites dans Syslog
- Ajout des instructions Fail2ban
- ES2020
- PHP 7.4+ requis
- Extension PHP mbstring requise
- PHP a remplacé pclZip par PharData et ZipArchive
- Mode sombre
- Ajout d'une option pour supprimer les couleurs d'arrière-plan/de police des messages pour un véritable « mode sombre »
- BackwardCapability supprimé (classe RainLoopAccount)
- ChangePassword supprimé (réimplémenté en tant que plugin)
- Prise en charge POP3 supprimée
- Suppression de la prise en charge de la vidéo d'arrière-plan
- Sentry supprimé (logiciel de surveillance des applications et de suivi des erreurs)
- Spyc yaml supprimé
- OwnCloud supprimé
- Remplacement de gulp-uglify par gulp-terser
- CRLF => Fins de lignes LF
- Intégrez boot.js et boot.css dans index.html
- Suppression de l'ancien code JavaScript (les choses sont natives de nos jours)
- Ajout de l'éditeur HTML Squire modifié en remplacement de CKEditor
- Sabre/VObject mis à jour
- Diviser le code JavaScript spécifique à l'administrateur du code utilisateur
- Diviser le code JavaScript spécifique à Sieve du code utilisateur
- Raviveur JSON
- Meilleure gestion du garbage collection mémoire
- Serviceworker ajouté pour les notifications
- Ajout d'un éditeur de scripts Sieve avancé
- Fichiers de langue allégés
- Webpack remplacé par un rollup
- Aucune détection d'agent utilisateur (utiliser la largeur de l'appareil)
- Ajout du support pour charger des plugins en tant que .phar
- Remplacement de l'ancienne bibliothèque Sabre
- Les contacts du carnet d'adresses prennent en charge MySQL/MariaDB utf8mb4
- Ajout des vérifications des en-têtes de requête de récupération de métadonnées
- Réduction de la taille excessive du DOM
- Prise en charge du groupware Kolab
- Prend en charge de nombreux autres RFC IMAP
- Prise en charge de Sodium et OpenSSL pour le cryptage
- Bien meilleur support PGP
Navigateurs pris en charge
Ce fork utilise des versions réduites/simplifiées de scripts et ne prend en charge ni Internet Explorer ni Edge Legacy. Sont pris en charge :
- Chrome 80+
- Bord 80+
- Firefox 78+
- Opéra 67+
- Safari 13.1+
Suppression de l'ancien JavaScript
Le résultat est un code de téléchargement plus rapide et plus petit (bon pour les réseaux mobiles).
- Ajout de dev/prototype.js pour certaines fonctionnalités supplémentaires
- Jua.js modifié pour être sans jQuery
- Autolinker remplacé par une simple détection https/e-mail
- Remplacement de momentToNode par
<time>
HTML5 approprié - Remplacement des écouteurs de redimensionnement par ResizeObserver
- Bootstrap.js remplacé par un remplacement instantané natif
- Remplacement dev/Common/ClientStorageDriver/* par le polyfill des objets de stockage Web
- Remplacement de *Ajax par les classes *Fetch car nous utilisons l'API Fetch, pas jQuery.ajax
- Remplacement de knockoutjs 3.4 par un 3.5.1 modifié
- Remplacement du tri par élimination directe par glisser-déposer HTML5 natif
- Remplacement de simplestatemanager par CSS @media
- Remplacement de l'inputosaurus par son propre code
- Keymaster remplacé par son propre gestionnaire de raccourcis
- Remplacement d'OpenPGP.js v2 par OpenPGP.js v5
- Supprimé ifvisible.js
- Pikaday supprimé
- Soulignement supprimé
- Polyfills supprimés
- Modernisation supprimée
- Nanoscroll supprimé
- Galerie de lumière supprimée
- jQuery supprimé
- jquery-ui supprimé
- jquery-scrollstop supprimé
- Jquery-mousewheel supprimé
- Matchmedia-polyfill supprimé
- Momentjs supprimé (utiliser Intl)
- opentip supprimé (utiliser CSS)
- Suppression du code non communautaire (alias Prem/Premium/License)
- ProgressJS supprimé
RainLoop 1.17 et SnappyMail
js/* | Boucle de pluie | Vif |
---|
admin.js | 2.170.153 | 84.925 |
app.js | 4.207.787 | 447.263 |
boot.js | 868.735 | 4.343 |
libs.js | 658.812 | 233.728 |
tamis.js | 0 | 91.418 |
polyfills.js | 334.608 | 0 |
serviceworker.js | 0 | 285 |
TOTAL | 8.240.095 | 861.962 |
js/min/* | Boucle de pluie | Vif | RL gzip | SM gzip | RL Brotli | Brotli SM |
---|
admin.min.js | 256.831 | 41.719 | 73.606 | 14.022 | 60.877 | 12.567 |
app.min.js | 515.367 | 202.101 | 139.456 | 68.505 | 110.485 | 58.481 |
boot.min.js | 84.659 | 2.231 | 26.998 | 1.271 | 23.643 | 1.067 |
libs.min.js | 584.772 | 110.646 | 180.901 | 39.518 | 155.182 | 35.207 |
tamis.min.js | 0 | 45.504 | 0 | 11.131 | 0 | 9.917 |
polyfills.min.js | 32.837 | 0 | 11.406 | 0 | 10.175 | 0 |
Utilisateur TOTAL | 1.217.635 | 314.978 | 358.761 | 109.294 | 299.485 | 94.755 |
TOTAL utilisateur+tamis | 1.217.635 | 360.482 | 358.761 | 120.425 | 299.485 | 104.672 |
Administrateur TOTAL | 959.099 | 154.596 | 292.911 | 54.811 | 249.877 | 48.841 |
Pour un utilisateur, il est environ 66 % plus petit et plus rapide que le RainLoop traditionnel.
Modifications CSS
- Résoudre les "fonctionnalités" supprimées de jQuery avec du code CSS natif
- Les thèmes fonctionnent en mode mobile
- Correction d'un bug : règles CSS invalides/conflits
- Utiliser la boîte flexible
- Utiliser la bordure-box
- Diviser app.css pour avoir admin.css séparé
- Supprimer le « flotteur » oldschool
- Supprimer les CSS inutilisés
- HTML.no-css supprimé
- Dev/Styles/Cmd.less supprimé
- Dev/Styles/Scroll.less supprimé
- Internet Explorer supprimé de normalize.css
- Node_modules/opentip/css/opentip.css supprimé
- Node_modules/pikaday/css/pikaday.css supprimé
- Suppression des fournisseurs/bootstrap/less/* inutilisés
- Suppression des fournisseurs/jquery-nanoscroller/nanoscroller.css
- Suppression des fournisseurs/jquery-letterfx/jquery-letterfx.min.css
- Suppression des fournisseurs/Progress.js/minified/progressjs.min.css
- Suppression du préfixe automatique gulp
css/* | Boucle de pluie | Vif | RL gzip | SM gzip | Brotli SM |
---|
app.css | 340.331 | 85.073 | 46.946 | 17.792 | 15.210 |
app.min.css | 274.947 | 68.272 | 39.647 | 15.615 | 13.636 |
démarrage.css | | 1.326 | | 664 | 545 |
boot.min.css | | 1.071 | | 590 | 474 |
admin.css | | 30.880 | | 7.045 | 6.127 |
admin.min.css | | 24.959 | | 6.368 | 5,615 |
PGP
RainLoop utilise l'ancien OpenPGP.js v2. SnappyMail v2.12 utilise OpenPGP.js v5, GnuPG et Mailvelope. SnappyMail est capable d'utiliser et de générer des clés ECDSA et EDDSA, contrairement à RainLoop.
Puisque SnappyMail essaie d’obtenir la meilleure expérience mobile, il a créé OpenPGP.js pour le supprimer.
- supprimer tous les Node.js inutilisés
- supprimer tous les anciens navigateurs pris en charge Voir https://github.com/the-djmaze/openpgpjs pour le développement
OpenPGP | Boucle de pluie | Vif | RL gzip | SM gzip | RL Brotli | Brotli SM |
---|
openpgp.min.js | 330.742 | 546.165 | 102.388 | 169.207 | 84.241 | 138.688 |
openpgp.worker | 1.499 | | 824 | | 695 | |
Squire et CKEditor
L'implémentation de Squire n'est pas encore compatible à 100 %, mais elle montre la surcharge énorme de CKEditor.
Encore À FAIRE :
- support des tables (vraiment nécessaire ?!?)
| normale | min | gzip | min gzip |
---|
écuyer | 122.321 | 41.906 | 31.867 | 14.330 |
éditeur de code | ? | 520.035 | ? | 155.916 |
CKEditor incluant les 7 requêtes d'actifs (css, langage, plugins, icônes) fait 633,46 Ko / 180,47 Ko (gzip).