SnappyMail
Einfacher, moderner, leichter und schneller webbasierter E-Mail-Client.
Der drastisch verbesserte und gesicherte Zweig der RainLoop Webmail Community Edition.
Wir danken dem RainLoop-Team für die Entwicklung eines großartigen PHP 5-Produkts, das in der Vergangenheit gut war.
Aktuelle Systemanforderungen, schnelle Leistung, einfache Installation und Aktualisierung, keine Datenbank erforderlich – all das macht SnappyMail zu einer guten Wahl.
Weitere Informationen zum Produkt finden Sie unter snappymail.eu.
Informationen zur Installation des Produkts finden Sie auf der Wiki-Seite.
Und vergessen Sie nicht, das gesamte Wiki zu lesen.
Lizenz
SnappyMail wird unter der GNU AFFERO GENERAL PUBLIC LICENSE Version 3 (AGPL) veröffentlicht. http://www.gnu.org/licenses/agpl-3.0.html
Copyright (c) 2020 – 2024 SnappyMail Copyright (c) 2013 – 2022 RainLoop
Änderungen
Dieser Fork von RainLoop weist die folgenden Änderungen auf:
- Datenschutz-/DSGVO-freundlich (Nein: Social, Gravatar, Facebook, Google, Twitter, DropBox, X-Mailer)
- Der Administrator verwendet „password_hash/password_verify“.
- Auth-fehlgeschlagene Versuche wurden ins Syslog geschrieben
- Fail2ban-Anweisungen hinzugefügt
- ES2020
- PHP 7.4+ erforderlich
- PHP-MBString-Erweiterung erforderlich
- PHP ersetzte pclZip durch PharData und ZipArchive
- Dunkler Modus
- Option zum Entfernen von Hintergrund-/Schriftfarben aus Nachrichten für echten „Dunkelmodus“ hinzugefügt
- BackwardCapability (Klasse RainLoopAccount) entfernt
- ChangePassword entfernt (als Plugin neu implementiert)
- POP3-Unterstützung entfernt
- Unterstützung für Hintergrundvideos entfernt
- Sentry (Anwendungsüberwachungs- und Fehlerverfolgungssoftware) entfernt
- Spyc Yaml entfernt
- OwnCloud entfernt
- gulp-uglify durch gulp-terser ersetzt
- CRLF => LF-Zeilenenden
- Betten Sie boot.js und boot.css in index.html ein
- Entfernung des alten JavaScript-Codes (heutzutage sind die Dinge nativ)
- Modifizierter Squire-HTML-Editor als Ersatz für CKEditor hinzugefügt
- Sabre/VObject aktualisiert
- Teilen Sie den admin-spezifischen JavaScript-Code vom Benutzercode
- Teilen Sie Sieve-spezifischen JavaScript-Code vom Benutzercode auf
- JSON-Reviver
- Bessere Verwaltung der Speicherbereinigung
- Servicemitarbeiter für Benachrichtigungen hinzugefügt
- Erweiterter Sieve-Skripteditor hinzugefügt
- Sprachdateien reduziert
- Webpack durch Rollup ersetzt
- Keine User-Agent-Erkennung (Gerätebreite verwenden)
- Unterstützung zum Laden von Plugins als .phar hinzugefügt
- Ersetzte alte Sabre-Bibliothek
- AddressBook Contacts unterstützen MySQL/MariaDB utf8mb4
- Überprüfungen zum Abrufen von Metadaten-Anforderungsheadern hinzugefügt
- Übermäßige DOM-Größe reduziert
- Unterstützt Kolab-Groupware
- Unterstützt viele weitere IMAP-RFCs
- Unterstützt Sodium und OpenSSL für die Verschlüsselung
- Viel bessere PGP-Unterstützung
Unterstützte Browser
Dieser Fork verwendet verkleinerte/vereinfachte Versionen von Skripten und unterstützt weder Internet Explorer noch Edge Legacy. Unterstützt werden:
- Chrom 80+
- Kante 80+
- Firefox 78+
- Oper 67+
- Safari 13.1+
Entfernung von altem JavaScript
Das Ergebnis ist ein schnellerer und kleinerer Download-Code (gut für Mobilfunknetze).
- Für einige zusätzliche Funktionen wurde dev/prototype.js hinzugefügt
- Jua.js wurde so geändert, dass es ohne jQuery ist
- Autolinker durch einfache https/E-Mail-Erkennung ersetzt
- momentToNode durch korrekte HTML5-
<time>
ersetzt - Resize-Listener durch ResizeObserver ersetzt
- Bootstrap.js durch nativen Drop-in-Ersatz ersetzt
- dev/Common/ClientStorageDriver/* durch Web Storage Objects Polyfill ersetzt
- *Ajax wurde durch *Fetch-Klassen ersetzt, da wir die Fetch-API und nicht jQuery.ajax verwenden
- Knockoutjs 3.4 durch eine modifizierte Version 3.5.1 ersetzt
- Knockout-sortierbar durch natives HTML5-Drag&Drop ersetzt
- Simplestatemanager durch CSS @media ersetzt
- Inputosaurus durch eigenen Code ersetzt
- Keymaster durch eigenen Shortcuts-Handler ersetzt
- OpenPGP.js v2 durch OpenPGP.js v5 ersetzt
- ifvisible.js entfernt
- Pikaday entfernt
- Unterstrich entfernt
- Polyfills entfernt
- Modernisierung entfernt
- Nanoscroll entfernt
- Lichtgalerie entfernt
- jQuery entfernt
- jquery-ui entfernt
- Jquery-Scrollstop entfernt
- Jquery-Mousewheel entfernt
- Matchmedia-Polyfill entfernt
- Momentjs entfernt (Intl verwenden)
- Opentip entfernt (CSS verwenden)
- Nicht-Community-Code (auch bekannt als Prem/Premium/License) entfernt
- ProgressJS entfernt
RainLoop 1.17 vs. SnappyMail
js/* | RainLoop | Bissig |
---|
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 |
sieve.js | 0 | 91.418 |
polyfills.js | 334.608 | 0 |
serviceworker.js | 0 | 285 |
GESAMT | 8.240.095 | 861.962 |
js/min/* | RainLoop | Bissig | RL gzip | SM gzip | RL Brotli | SM Brotli |
---|
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 |
sieve.min.js | 0 | 45.504 | 0 | 11.131 | 0 | 9.917 |
polyfills.min.js | 32.837 | 0 | 11.406 | 0 | 10.175 | 0 |
TOTAL Benutzer | 1.217.635 | 314.978 | 358.761 | 109.294 | 299.485 | 94.755 |
TOTAL Benutzer+Sieb | 1.217.635 | 360.482 | 358.761 | 120.425 | 299.485 | 104.672 |
TOTAL Admin | 959.099 | 154.596 | 292.911 | 54.811 | 249.877 | 48.841 |
Für einen Benutzer ist es etwa 66 % kleiner und schneller als herkömmliches RainLoop.
CSS-Änderungen
- Lösen Sie, dass jQuery „Features“ mit nativem CSS-Code entfernt hat
- Themes funktionieren im mobilen Modus
- Bugfix ungültiger/widersprüchlicher CSS-Regeln
- Flexbox verwenden
- Verwenden Sie die Rahmenbox
- Teilen Sie app.css auf, um eine separate admin.css zu haben
- Oldschool-Float entfernen
- Entfernen Sie nicht verwendetes CSS
- html.no-css entfernt
- dev/Styles/Cmd.less entfernt
- dev/Styles/Scroll.less entfernt
- Internet Explorer aus normalize.css entfernt
- node_modules/opentip/css/opentip.css entfernt
- node_modules/pikaday/css/pikaday.css entfernt
- Nicht verwendete Vendors/Bootstrap/less/* entfernt
- Vendors/jquery-nanoscroller/nanoscroller.css entfernt
- Vendors/jquery-letterfx/jquery-letterfx.min.css entfernt
- Vendors/Progress.js/minified/progressjs.min.css entfernt
- gulp-autoprefixer entfernt
css/* | RainLoop | Bissig | RL gzip | SM gzip | SM Brotli |
---|
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 |
boot.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 verwendet das alte OpenPGP.js v2. SnappyMail v2.12 verwendet OpenPGP.js v5, GnuPG und Mailvelope. SnappyMail kann ECDSA- und EDDSA-Schlüssel verwenden und generieren, RainLoop hingegen nicht.
Da SnappyMail versucht, das beste mobile Erlebnis zu erreichen, hat es OpenPGP.js geforkt, um es zu reduzieren.
- Entfernen Sie alle nicht verwendeten Node.js
- Entfernen Sie die gesamte Unterstützung für alte Browser. Informationen zur Entwicklung finden Sie unter https://github.com/the-djmaze/openpgpjs
OpenPGP | RainLoop | Bissig | RL gzip | SM gzip | RL Brotli | SM Brotli |
---|
openpgp.min.js | 330.742 | 546.165 | 102.388 | 169.207 | 84.241 | 138.688 |
openpgp.worker | 1.499 | | 824 | | 695 | |
Squire vs. CKEditor
Die Squire-Implementierung ist noch nicht 100 % kompatibel, zeigt aber den enormen Overhead von CKEditor.
Noch TODO:
- Unterstützung für Tabellen (wirklich benötigt?!?)
| Normal | min | gzip | min gzip |
---|
Knappe | 122.321 | 41.906 | 31.867 | 14.330 |
Redakteur | ? | 520.035 | ? | 155.916 |
CKEditor einschließlich der 7 Asset-Anfragen (CSS, Sprache, Plugins, Symbole) ist 633,46 KB / 180,47 KB (gzip) groß.