SnappyMail
Простой, современный, легкий и быстрый почтовый веб-клиент.
Существенно обновленная и защищенная версия RainLoop Webmail Community.
Мы благодарим команду RainLoop за создание отличного продукта PHP 5, который был хорош в прошлом.
Актуальные системные требования, высокая производительность, простая установка и обновление, отсутствие необходимости в базе данных — все это делает SnappyMail хорошим выбором.
Для получения дополнительной информации о продукте посетите snappymail.eu.
Информацию об установке продукта смотрите на вики-странице.
И не забудьте прочитать всю Wiki.
Лицензия
SnappyMail выпускается на условиях ГЕНЕРАЛЬНОЙ ПУБЛИЧНОЙ ЛИЦЕНЗИИ GNU AFFERO версии 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)
- Администратор использует пароль_hash/password_verify
- Неудачные попытки аутентификации записываются в системный журнал
- Добавлена инструкция 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 (в наши дни все нативно)
- Добавлен модифицированный HTML-редактор Squire в качестве замены CKEditor.
- Обновлен Sabre/VObject
- Разделить код JavaScript, специфичный для администратора, от кода пользователя
- Разделить код JavaScript, специфичный для Sieve, из кода пользователя
- Восстановитель JSON
- Улучшенное управление сборкой мусора в памяти
- Добавлен сервис-воркер для уведомлений.
- Добавлен расширенный редактор скриптов Sieve.
- Уменьшены языковые файлы
- Заменен вебпак на накопительный пакет
- Нет обнаружения пользовательского агента (используйте ширину устройства)
- Добавлена поддержка загрузки плагинов в формате .phar.
- Заменена старая библиотека Sabre.
- Контакты адресной книги поддерживают MySQL/MariaDB utf8mb4
- Добавлены проверки заголовков запросов на получение метаданных.
- Уменьшен чрезмерный размер DOM.
- Поддержка программного обеспечения Kolab для групповой работы
- Поддержка многих других IMAP RFC.
- Поддержка Sodium и OpenSSL для шифрования.
- Гораздо лучшая поддержка PGP
Поддерживаемые браузеры
Этот форк использует уменьшенные/упрощенные версии скриптов и не поддерживает Internet Explorer и Edge Legacy. Поддерживаются:
- Хром 80+
- Край 80+
- Фаерфокс 78+
- Опера 67+
- Сафари 13.1+
Удаление старого JavaScript
В результате код загрузки становится быстрее и меньше (хорошо для мобильных сетей).
- Добавлен dev/prototype.js для некоторых дополнительных функций.
- Изменен Jua.js без jQuery.
- Заменен Autolinker на простое обнаружение https/email.
- Заменен momentToNode на правильный HTML5
<time>
- Заменены прослушиватели изменения размера на ResizeObserver.
- Заменен bootstrap.js на встроенную замену.
- Заменен dev/Common/ClientStorageDriver/* на полифилл Web Storage Objects.
- Заменены классы *Ajax на *Fetch, поскольку мы используем Fetch API, а не jQuery.ajax.
- Заменен Knockoutjs 3.4 на модифицированный 3.5.1.
- Сортировка нокаутом заменена на встроенную функцию перетаскивания HTML5.
- Заменен simplestatemanager на CSS @media.
- Заменен интозавр на собственный код.
- Заменен мастер клавиш на собственный обработчик сочетаний клавиш.
- OpenPGP.js v2 заменен на OpenPGP.js v5.
- Удален ifvisible.js.
- Удален пикадей
- Убрано подчеркивание
- Удалены полифилы
- Удален Модернизр
- Удален наносролл
- Удалена световая галерея
- Удален jQuery
- Удален jquery-ui
- Удален jquery-scrollstop
- Удален jquery-mousewheel
- Удален matchmedia-polyfill.
- Удалены моменты (используйте Intl)
- Удалена открытая подсказка (используйте CSS).
- Удален код, не являющийся сообществом (он же Prem/Premium/License).
- Удален прогрессJS
RainLoop 1.17 против SnappyMail
js/* | Дождевая петля | шустрый |
---|
admin.js | 2.170.153 | 84,925 |
приложение.js | 4.207.787 | 447,263 |
boot.js | 868,735 | 4.343 |
libs.js | 658,812 | 233,728 |
sieve.js | 0 | 91.418 |
полифиллы.js | 334,608 | 0 |
сервисворкер.js | 0 | 285 |
ОБЩИЙ | 8.240.095 | 861,962 |
Джс/мин/* | Дождевая петля | шустрый | RL gzip | СМ gzip | РЛ бротли | СМ бротли |
---|
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 |
полифиллы.мин.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 |
Для пользователя он примерно на 66% меньше и быстрее, чем традиционный RainLoop.
Изменения CSS
- Решить удаленные «функции» jQuery с помощью собственного кода CSS
- Темы работают в мобильном режиме
- Исправление неверных/конфликтующих правил CSS.
- Используйте флексбокс
- Используйте рамку
- Разделите app.css, чтобы создать отдельный admin.css.
- Удалить олдскульный «float»
- Удалить неиспользуемый 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-nanosroller/nanoscroller.css.
- Удалены поставщики/jquery-letterfx/jquery-letterfx.min.css.
- Удалены поставщики/Progress.js/minified/progressjs.min.css.
- Удален gulp-autoprefixer.
CSS/* | Дождевая петля | шустрый | RL gzip | СМ gzip | СМ бротли |
---|
приложение.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 |
ПГП
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 | СМ gzip | РЛ бротли | СМ бротли |
---|
openpgp.min.js | 330,742 | 546,165 | 102,388 | 169,207 | 84.241 | 138,688 |
openpgp.worker | 1.499 | | 824 | | 695 | |
Сквайр против CKEditor
Реализация Squire еще не на 100% совместима, но она демонстрирует огромные накладные расходы, связанные с CKEditor.
Еще TODO:
- поддержка таблиц (действительно нужна?!?)
| нормальный | мин | gzip | минута gzip |
---|
оруженосец | 122,321 | 41,906 | 31,867 | 14.330 |
редактор | ? | 520.035 | ? | 155,916 |
CKEditor, включая 7 запросов ресурсов (css, язык, плагины, значки), занимает 633,46 КБ / 180,47 КБ (gzip).