SnappyMail
Klien email berbasis web yang sederhana, modern, ringan & cepat.
Fork edisi Komunitas Webmail RainLoop yang ditingkatkan secara drastis & diamankan.
Kami berterima kasih kepada Tim RainLoop karena telah membuat produk PHP 5 hebat yang dulunya bagus.
Persyaratan sistem terkini, kinerja cepat, instalasi dan peningkatan sederhana, tidak memerlukan basis data - semua ini menjadikan SnappyMail pilihan yang baik.
Untuk informasi lebih lanjut tentang produk, periksa snappymail.eu.
Informasi tentang menginstal produk, periksa halaman wiki.
Dan jangan lupa membaca keseluruhan Wiki.
Lisensi
SnappyMail dirilis di bawah GNU AFFERO GENERAL PUBLIC LICENSE Version 3 (AGPL) . http://www.gnu.org/licenses/agpl-3.0.html
Hak Cipta (c) 2020 - 2024 SnappyMail Hak Cipta (c) 2013 - 2022 RainLoop
Modifikasi
Garpu RainLoop ini memiliki perubahan berikut:
- Ramah privasi/GDPR (tidak ada: Sosial, Gravatar, Facebook, Google, Twitter, DropBox, X-Mailer)
- Admin menggunakan password_hash/password_verify
- Upaya autentikasi gagal ditulis ke syslog
- Menambahkan instruksi Fail2ban
- ES2020
- Dibutuhkan PHP 7.4+
- Ekstensi PHP mbstring diperlukan
- PHP menggantikan pclZip dengan PharData dan ZipArchive
- Mode gelap
- Opsi tambahan untuk menghapus warna latar belakang/font dari pesan untuk "mode gelap" yang sebenarnya
- Menghapus Kemampuan Mundur (kelas RainLoopAkun)
- ChangePassword dihapus (diimplementasikan kembali sebagai plugin)
- Menghapus dukungan POP3
- Dukungan video latar belakang dihapus
- Penjaga yang Dihapus (Perangkat Lunak Pemantauan Aplikasi dan Pelacakan Kesalahan)
- Menghapus Spyc yaml
- Menghapus OwnCloud
- Mengganti gulp-uglify dengan gulp-terser
- CRLF => Akhiran baris LF
- Sematkan boot.js dan boot.css ke dalam index.html
- Penghapusan kode JavaScript lama (saat ini semuanya sudah asli)
- Menambahkan editor HTML Squire yang dimodifikasi sebagai pengganti CKEditor
- Sabre/VObject yang diperbarui
- Pisahkan kode JavaScript khusus Admin dari kode Pengguna
- Pisahkan kode JavaScript khusus Saringan dari kode Pengguna
- Penghidupan kembali JSON
- Manajemen pengumpulan sampah memori yang lebih baik
- Menambahkan pekerja layanan untuk Notifikasi
- Menambahkan editor skrip Saringan tingkat lanjut
- Memperkecil file bahasa
- Mengganti webpack dengan rollup
- Tidak ada deteksi agen pengguna (gunakan lebar perangkat)
- Menambahkan dukungan untuk memuat plugin sebagai .phar
- Mengganti perpustakaan Sabre lama
- Kontak Buku Alamat mendukung MySQL/MariaDB utf8mb4
- Menambahkan pemeriksaan Ambil Header Permintaan Metadata
- Mengurangi ukuran DOM yang berlebihan
- Mendukung perangkat lunak grup Kolab
- Mendukung lebih banyak IMAP RFC
- Mendukung Sodium dan OpenSSL untuk enkripsi
- Dukungan PGP jauh lebih baik
Browser yang didukung
Fork ini menggunakan versi skrip yang diperkecil/disederhanakan dan tidak mendukung Internet Explorer atau Edge Legacy. Yang didukung adalah:
- Chrome 80+
- Tepi 80+
- Firefox 78+
- Opera 67+
- Safari 13.1+
Penghapusan JavaScript lama
Hasilnya adalah kode pengunduhan yang lebih cepat dan lebih kecil (bagus untuk jaringan seluler).
- Menambahkan dev/prototype.js untuk beberapa fitur tambahan
- Memodifikasi Jua.js menjadi tanpa jQuery
- Mengganti Autolinker dengan deteksi https/email sederhana
- Mengganti momentToNode dengan
<time>
HTML5 yang tepat - Mengganti pendengar pengubahan ukuran dengan ResizeObserver
- Mengganti bootstrap.js dengan pengganti drop-in asli
- Mengganti dev/Common/ClientStorageDriver/* dengan polyfill Objek Penyimpanan Web
- Mengganti *Ajax dengan kelas *Fetch karena kami menggunakan Fetch API, bukan jQuery.ajax
- Mengganti knockoutjs 3.4 dengan 3.5.1 yang dimodifikasi
- Menggantikan knockout-sortable dengan drag&drop HTML5 asli
- Mengganti simplestatemanager dengan CSS @media
- Mengganti inputosaurus dengan kode sendiri
- Mengganti keymaster dengan pengendali pintasannya sendiri
- Mengganti OpenPGP.js v2 dengan OpenPGP.js v5
- Menghapus ifvisible.js
- Menghapus pikaday
- Garis bawah dihapus
- Polyfill dihapus
- Menghapus Modernizr
- Menghapus nanoscroll
- Galeri cahaya dihapus
- Menghapus jQuery
- Menghapus jquery-ui
- Menghapus jquery-scrollstop
- Menghapus jquery-mousewheel
- Menghapus matchmedia-polyfill
- Momentjs dihapus (gunakan Intl)
- Opentip dihapus (gunakan CSS)
- Menghapus kode non-komunitas (alias Prem/Premium/Lisensi).
- Menghapus ProgressJS
RainLoop 1.17 vs SnappyMail
js/* | Lingkaran Hujan | Tajam |
---|
admin.js | 2.170.153 | 84.925 |
aplikasi.js | 4.207.787 | 447.263 |
boot.js | 868.735 | 4.343 |
libs.js | 658.812 | 233.728 |
saringan.js | 0 | 91.418 |
polyfills.js | 334.608 | 0 |
pekerja layanan.js | 0 | 285 |
TOTAL | 8.240.095 | 861.962 |
js/menit/* | Lingkaran Hujan | Tajam | RL gzip | SM gzip | RL brotli | SM brotli |
---|
admin.min.js | 256.831 | 41.719 | 73.606 | 14.022 | 60.877 | 12.567 |
aplikasi.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 |
saringan.min.js | 0 | 45.504 | 0 | 11.131 | 0 | 9.917 |
polifills.min.js | 32.837 | 0 | 11.406 | 0 | 10.175 | 0 |
TOTAL pengguna | 1.217.635 | 314.978 | 358.761 | 109.294 | 299.485 | 94.755 |
TOTAL pengguna+saringan | 1.217.635 | 360.482 | 358.761 | 120.425 | 299.485 | 104.672 |
JUMLAH admin | 959.099 | 154.596 | 292.911 | 54.811 | 249.877 | 48.841 |
Bagi pengguna, ukurannya sekitar 66% lebih kecil dan lebih cepat dibandingkan RainLoop tradisional.
perubahan CSS
- Selesaikan jQuery yang menghapus "fitur" dengan kode css asli
- Tema berfungsi dalam mode seluler
- Perbaikan bug aturan css tidak valid/bertentangan
- Gunakan kotak fleksibel
- Gunakan kotak perbatasan
- Pisahkan app.css untuk memiliki admin.css terpisah
- Hapus 'float' sekolah lama
- Hapus css yang tidak digunakan
- Menghapus html.no-css
- Menghapus dev/Styles/Cmd.less
- Menghapus dev/Styles/Scroll.less
- Menghapus Internet Explorer dari normalize.css
- Menghapus node_modules/opentip/css/opentip.css
- Menghapus node_modules/pikaday/css/pikaday.css
- Menghapus vendor/bootstrap/less/* yang tidak digunakan
- Menghapus vendor/jquery-nanoscroller/nanoscroller.css
- Menghapus vendor/jquery-letterfx/jquery-letterfx.min.css
- Menghapus vendor/Progress.js/minified/progressjs.min.css
- Menghapus gulp-autoprefixer
css/* | Lingkaran Hujan | Tajam | RL gzip | SM gzip | SM brotli |
---|
app.css | 340.331 | 85.073 | 46.946 | 17.792 | 15.210 |
aplikasi.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 menggunakan OpenPGP.js v2 lama. SnappyMail v2.12 menggunakan OpenPGP.js v5, GnuPG dan Mailvelope. SnappyMail dapat menggunakan dan menghasilkan kunci ECDSA dan EDDSA, sedangkan RainLoop tidak.
Karena SnappyMail mencoba untuk mencapai pengalaman seluler terbaik, OpenPGP.js terpaksa menghapusnya.
- hapus semua Node.js yang tidak digunakan
- hapus semua dukungan browser lama Lihat https://github.com/the-djmaze/openpgpjs untuk pengembangan
BukaPGP | Lingkaran Hujan | Tajam | RL gzip | SM gzip | RL brotli | SM brotli |
---|
bukapgp.min.js | 330.742 | 546.165 | 102.388 | 169.207 | 84.241 | 138.688 |
openpgp.pekerja | 1.499 | | 824 | | 695 | |
Pengawal vs CKEditor
Implementasi Squire belum 100% kompatibel, tetapi ini menunjukkan overhead CKEditor yang sangat besar.
Masih TODO:
- dukungan untuk tabel (sangat dibutuhkan?!?)
| normal | menit | gzip | min gzip |
---|
mengantarkan | 122.321 | 41.906 | 31.867 | 14.330 |
ckeditor | ? | 520.035 | ? | 155.916 |
CKEditor termasuk 7 permintaan aset (css, bahasa, plugin, ikon) berukuran 633,46 KB / 180,47 KB (gzip).