スナッピーメール
シンプル、モダン、軽量、高速な Web ベースの電子メール クライアント。
大幅にアップグレードされ、安全な RainLoop Webmail Community エディションのフォーク。
過去に優れた PHP 5 製品を作成してくれた RainLoop チームに感謝します。
最新のシステム要件、迅速なパフォーマンス、簡単なインストールとアップグレード、データベース不要 - これらすべてにより、SnappyMail は優れた選択肢となります。
製品の詳細については、snappymail.eu を確認してください。
製品のインストールに関する情報については、wiki ページを確認してください。
Wiki 全体を読むことを忘れないでください。
ライセンス
SnappyMailは、GNU AFFERO GENERAL PUBLIC LICENSE バージョン 3 (AGPL)に基づいてリリースされています。 http://www.gnu.org/licenses/agpl-3.0.html
著作権 (c) 2020 - 2024 SnappyMail 著作権 (c) 2013 - 2022 RainLoop
修正
RainLoop のこのフォークには次の変更があります。
- プライバシー/GDPR フレンドリー (いいえ: Social、Gravatar、Facebook、Google、Twitter、DropBox、X-Mailer)
- 管理者はpassword_hash/password_verifyを使用します
- 失敗した認証試行が syslog に書き込まれる
- Fail2ban の手順を追加しました
- ES2020
- PHP 7.4 以降が必要
- PHP mbstring 拡張子が必要です
- PHP は、pclZip を PharData および ZipArchive に置き換えました。
- ダークモード
- 実際の「ダークモード」のメッセージから背景/フォントの色を削除するオプションを追加しました
- BackwardCapability を削除しました (クラス RainLoopAccount)
- ChangePassword を削除 (プラグインとして再実装)
- POP3 サポートを削除
- 背景ビデオのサポートを削除
- Sentry (アプリケーション監視およびエラー追跡ソフトウェア) を削除しました
- Spyc yaml を削除しました
- OwnCloud を削除しました
- gulp-uglify を gulp-terser に置き換えました。
- CRLF => LF 行末
- boot.jsとboot.cssをindex.htmlに埋め込む
- 古い JavaScript コードの削除 (最近のものはネイティブです)
- CKEditor の代わりに、修正された Squire HTML エディタを追加しました
- セイバー/VObject を更新
- 管理者固有の JavaScript コードをユーザー コードから分割する
- Sieve 固有の JavaScript コードをユーザー コードから分割する
- JSON リバイバー
- メモリのガベージ コレクション管理の改善
- 通知用のサービスワーカーを追加しました
- 高度な Sieve スクリプト エディタを追加しました
- 言語ファイルをスリム化
- Webpack をロールアップに置き換えました
- ユーザー エージェント検出なし (デバイス幅を使用)
- プラグインを .phar としてロードするためのサポートを追加しました
- 古い Sabre ライブラリを置き換えました
- AddressBook 連絡先は MySQL/MariaDB utf8mb4 をサポートします
- メタデータ リクエスト ヘッダーのフェッチ チェックを追加しました
- 過剰な DOM サイズの削減
- Kolab グループウェアをサポートする
- さらに多くの IMAP RFC をサポート
- 暗号化のために Sodium と OpenSSL をサポート
- はるかに優れた PGP サポート
サポートされているブラウザ
このフォークは、縮小/簡素化されたバージョンのスクリプトを使用しており、Internet Explorer や Edge Legacy はサポートされていません。サポートされているものは次のとおりです。
- クロム80以上
- エッジ80+
- Firefox 78+
- オペラ 67+
- サファリ13.1以降
古いJavaScriptの削除
その結果、ダウンロード コードが高速かつ小さくなります (モバイル ネットワークに適しています)。
- いくつかの追加機能のために dev/prototype.js を追加しました
- jQuery を使用しないように Jua.js を変更しました
- オートリンカーを単純な https/電子メール検出に置き換えました
- momentToNode を適切な HTML5
に置き換えました。 - サイズ変更リスナーを ResizeObserver に置き換えました
- bootstrap.js をネイティブのドロップイン置換に置き換えました
- dev/Common/ClientStorageDriver/* を Web Storage オブジェクトのポリフィルに置き換えました。
- jQuery.ajax ではなく Fetch API を使用するため、*Ajax を *Fetch クラスに置き換えました。
- knockoutjs 3.4 を修正された 3.5.1 に置き換えました。
- ノックアウトソート可能をネイティブ HTML5 ドラッグ&ドロップに置き換えました
- simplestatemanager を CSS @media に置き換えました。
- inputosaurus を独自のコードに置き換えました
- キーマスターを独自のショートカット ハンドラーに置き換えました
- OpenPGP.js v2 を OpenPGP.js v5 に置き換えました。
- ifvisible.js を削除しました
- ピカデーを削除しました
- アンダースコアを削除しました
- 削除されたポリフィル
- Modernizr を削除しました
- ナノスクロールを削除しました
- ライトギャラリーを削除しました
- 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 |
boot.js | 868.735 | 4.343 |
libs.js | 658.812 | 233.728 |
ふるい.js | 0 | 91.418 |
ポリフィル.js | 334.608 | 0 |
サービスワーカー.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 |
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 |
ポリフィル.min.js | 32.837 | 0 | 11.406 | 0 | 10.175 | 0 |
合計ユーザー | 1.217.635 | 314.978 | 358.761 | 109.294 | 299.485 | 94.755 |
TOTAL ユーザー+ふるい | 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 を削除しました
- Internet Explorer をnormalize.css から削除しました
- 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 |
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 |
管理者.css | | 30.880 | | 7.045 | 6.127 |
管理者.min.css | | 24.959 | | 6.368 | 5.615 |
PGP
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 を参照してください。
OpenPGP | レインループ | キビキビ | 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 vs CKEditor
Squire の実装はまだ 100% 互換性はありませんが、CKEditor のオーバーヘッドが大きいことがわかります。
まだTODO:
| 普通 | 分 | gzip | 最小gzip |
---|
大地主 | 122.321 | 41.906 | 31.867 | 14.330 |
編集者 | ? | 520.035 | ? | 155.916 |
7 つのアセット リクエスト (CSS、言語、プラグイン、アイコン) を含む CKEditor は、633.46 KB / 180.47 KB (gzip) です。