快邮邮件
简单、现代、轻量且快速的基于网络的电子邮件客户端。
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)。