快郵郵件
簡單、現代、輕量且快速的基於網路的電子郵件用戶端。
RainLoop Webmail 社群版的大幅升級和安全分支。
我們感謝 RainLoop 團隊製作了一款出色的 PHP 5 產品,它在過去很出色。
最新的系統需求、快速的效能、簡單的安裝和升級、無需資料庫 - 所有這些使 SnappyMail 成為一個不錯的選擇。
有關該產品的更多信息,請查看 snappymail.eu。
有關安裝產品的信息,請查看 wiki 頁面。
並且不要忘記閱讀整個維基百科。
執照
SnappyMail是在GNU AFFERO GENERAL PUBLIC LICENSE Version 3 (AGPL)下發布的。 http://www.gnu.org/licenses/agpl-3.0.html
版權所有 (c) 2020 - 2024 SnappyMail 版權所有 (c) 2013 - 2022 RainLoop
修改
RainLoop 的這個分支有以下變化:
- 隱私/GDPR 友善(否:社交、Gravatar、Facebook、Google、Twitter、DropBox、X-Mailer)
- 管理者使用password_hash/password_verify
- 驗證失敗嘗試寫入系統日誌
- 新增了 Fail2ban 說明
- ES2020
- 需要 PHP 7.4+
- 需要 PHP mbstring 擴充
- PHP 用 PharData 和 ZipArchive 取代了 pclZip
- 深色模式
- 新增了從訊息中刪除背景/字體顏色的選項,以實現真正的“黑暗模式”
- 刪除了 BackwardCapability(類別 RainLoopAccount)
- 刪除了 ChangePassword(作為插件重新實現)
- 刪除了 POP3 支持
- 刪除了背景影片支持
- 刪除了 Sentry(應用程式監控和錯誤追蹤軟體)
- 刪除了 Spyc yaml
- 刪除了自己的雲
- 將 gulp-uglify 替換為 gulp-terser
- CRLF => LF 行結尾
- 將 boot.js 和 boot.css 嵌入到 index.html 中
- 刪除舊的 JavaScript 程式碼(現在都是原生的)
- 新增了修改後的 Squire HTML 編輯器作為 CKEditor 的替代品
- 更新了 Sabre/VObject
- 將管理員特定的 JavaScript 程式碼與使用者程式碼分開
- 從使用者程式碼中分離 Sieve 特定的 JavaScript 程式碼
- JSON 復原器
- 更好的記憶體垃圾收集管理
- 為通知新增了 serviceworker
- 新增了進階 Sieve 腳本編輯器
- 精簡語言文件
- 將 webpack 替換為 rollup
- 無用戶代理檢測(使用設備寬度)
- 新增了將插件加載為 .phar 的支持
- 取代了舊的 Sabre 庫
- 地址簿聯絡人支援 MySQL/MariaDB utf8mb4
- 新增了獲取元資料請求標頭檢查
- 減少了過多的 DOM 大小
- 支援Kolab元件
- 支援更多 IMAP RFC
- 支援Sodium和OpenSSL進行加密
- 更好的 PGP 支持
支援的瀏覽器
此分支使用縮小/簡化版本的腳本,並且不支援 Internet Explorer 或 Edge Legacy。支持的有:
- 鉻80+
- 邊緣80+
- 火狐 78+
- 歌劇 67+
- Safari 13.1+
刪除舊的 JavaScript
結果是下載代碼更快、更小(有利於行動網路)。
- 添加了 dev/prototype.js 以獲得一些附加功能
- 修改 Jua.js 使其不含 jQuery
- 用簡單的 https/電子郵件偵測取代了自動連結器
- 用正確的 HTML5
取代 momentToNode - 將調整大小偵聽器取代為 ResizeObserver
- 將 bootstrap.js 替換為本機直接替換
- 將 dev/Common/ClientStorageDriver/* 替換為 Web 儲存物件 polyfill
- 將 *Ajax 替換為 *Fetch 類,因為我們使用 Fetch API,而不是 jQuery.ajax
- 將 knockoutjs 3.4 替換為修改後的 3.5.1
- 用原生 HTML5 拖放取代了可剔除排序
- 用 CSS @media 替換 simplestatemanager
- 用自己的程式碼替換了 inputosaurus
- 用自己的捷徑處理程序取代了 keymaster
- 將 OpenPGP.js v2 替換為 OpenPGP.js v5
- 刪除了 ifvisible.js
- 刪除了皮卡迪
- 刪除了底線
- 刪除了 Polyfill
- 刪除了現代化
- 移除了奈米捲軸
- 刪除了燈光畫廊
- 刪除了 jQuery
- 刪除了 jquery-ui
- 刪除了 jquery-scrollstop
- 刪除了 jquery-mousewheel
- 刪除了 matchmedia-polyfill
- 刪除了 momentjs(使用 Intl)
- 刪除了 opentip(使用 CSS)
- 刪除了非社群(又稱 Prem/Premium/License)程式碼
- 刪除了 ProgressJS
RainLoop 1.17 與 SnappyMail
js/* | 雨環 | 活潑 |
---|
管理.js | 2.170.153 | 84.925 |
應用程式.js | 4.207.787 | 447.263 |
啟動.js | 868.735 | 4.343 |
庫.js | 658.812 | 233.728 |
篩.js | 0 | 91.418 |
polyfills.js | 334.608 | 0 |
serviceworker.js | 0 | 第285章 |
全部的 | 8.240.095 | 861.962 |
js/分鐘/* | 雨環 | 活潑 | RL gzip | SM gzip | RL布羅特利 | SM布羅特利 |
---|
管理.min.js | 256.831 | 41.719 | 73.606 | 14.022 | 60.877 | 12.567 |
應用程式.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 |
函式庫.min.js | 584.772 | 110.646 | 180.901 | 39.518 | 155.182 | 35.207 |
篩分.js | 0 | 45.504 | 0 | 11.131 | 0 | 9.917 |
polyfills.min.js | 32.837 | 0 | 11.406 | 0 | 10.175 | 0 |
用戶總數 | 1.217.635 | 314.978 | 358.761 | 109.294 | 299.485 | 94.755 |
用戶+篩子總數 | 1.217.635 | 360.482 | 358.761 | 120.425 | 299.485 | 104.672 |
管理員總數 | 959.099 | 154.596 | 292.911 | 54.811 | 249.877 | 48.841 |
對於用戶來說,它比傳統的 RainLoop 體積小約 66%,速度更快。
CSS 更改
- 解決 jQuery 用原生 css 程式碼刪除「功能」的問題
- 主題在移動模式下工作
- 修復無效/衝突的 CSS 規則
- 使用彈性盒
- 使用邊框
- 拆分 app.css 以擁有單獨的 admin.css
- 刪除老式的“浮動”
- 刪除未使用的 CSS
- 刪除了 html.no-css
- 刪除了 dev/Styles/Cmd.less
- 刪除了 dev/Styles/Scroll.less
- 從 normalize.css 中刪除了 Internet Explorer
- 刪除了node_modules/opentip/css/opentip.css
- 刪除了node_modules/pikaday/css/pikaday.css
- 刪除了未使用的供應商/bootstrap/less/*
- 刪除了供應商/jquery-nanoscroller/nanoscroller.css
- 刪除了供應商/jquery-letterfx/jquery-letterfx.min.css
- 刪除了供應商/Progress.js/minified/progressjs.min.css
- 刪除了 gulp-autoprefixer
CSS/* | 雨環 | 活潑 | RL gzip | SM gzip | SM布羅特利 |
---|
應用程式.css | 340.331 | 85.073 | 46.946 | 17.792 | 15.210 |
應用程式.min.css | 274.947 | 68.272 | 39.647 | 15.615 | 13.636 |
啟動文件 | | 1.326 | | 第664章 | 第545章 |
boot.min.css | | 1.071 | | 590 | 第474章 |
管理文件 | | 30.880 | | 7.045 | 6.127 |
管理.min.css | | 24.959 | | 6.368 | 5.615 |
前列腺素
RainLoop 使用舊的 OpenPGP.js v2 SnappyMail v2.12 使用 OpenPGP.js v5、GnuPG 和 Mailvelope。 SnappyMail 能夠使用和產生 ECDSA 和 EDDSA 金鑰,而 RainLoop 則不能。
由於 SnappyMail 試圖實現最佳的行動體驗,因此它分叉了 OpenPGP.js 來剝離它。
- 刪除所有未使用的 Node.js
- 刪除所有舊瀏覽器支援請參閱 https://github.com/the-djmaze/openpgpjs 進行開發
開放PGP | 雨環 | 活潑 | RL gzip | SM gzip | RL布羅特利 | SM布羅特利 |
---|
openpgp.min.js | 330.742 | 546.165 | 102.388 | 169.207 | 84.241 | 138.688 |
openpgp.worker | 1.499 | | 第824章 | | 695 | |
Squire 與 CKEditor
Squire 實作尚未 100% 相容,但它顯示了 CKEditor 的巨大開銷。
仍然待辦事項:
| 普通的 | 分分鐘 | 壓縮包 | 最小gzip |
---|
鄉紳 | 122.321 | 41.906 | 31.867 | 14.330 |
CK編輯器 | ? | 520.035 | ? | 155.916 |
CKEditor 包含 7 個資源請求(css、語言、外掛程式、圖示),大小為 633.46 KB / 180.47 KB (gzip)。