SnappyMail
Cliente de email baseado na web simples, moderno, leve e rápido.
O fork drasticamente atualizado e seguro da edição RainLoop Webmail Community.
Agradecemos à equipe RainLoop por criar um ótimo produto PHP 5 que era bom no passado.
Requisitos de sistema atualizados, desempenho rápido, instalação e atualização simples, sem necessidade de banco de dados - tudo isso torna o SnappyMail uma boa escolha.
Para obter mais informações sobre o produto, consulte snappymail.eu.
Informações sobre a instalação do produto, consulte a página wiki.
E não se esqueça de ler todo o Wiki.
Licença
SnappyMail é lançado sob GNU AFFERO GENERAL PUBLIC LICENSE versão 3 (AGPL) . http://www.gnu.org/licenses/agpl-3.0.html
Direitos autorais (c) 2020 - 2024 SnappyMail Direitos autorais (c) 2013 - 2022 RainLoop
Modificações
Este fork do RainLoop tem as seguintes alterações:
- Compatível com privacidade/GDPR (não: Social, Gravatar, Facebook, Google, Twitter, DropBox, X-Mailer)
- O administrador usa password_hash/password_verify
- Tentativas falhadas de autenticação gravadas no syslog
- Adicionadas instruções Fail2ban
- ES2020
- PHP 7.4+ necessário
- Extensão PHP mbstring necessária
- PHP substituiu pclZip por PharData e ZipArchive
- Modo escuro
- Adicionada opção para remover cores de fundo/fonte das mensagens para o verdadeiro "modo escuro"
- BackwardCapability removido (classe RainLoopAccount)
- ChangePassword removido (reimplementado como plugin)
- Suporte POP3 removido
- Suporte de vídeo em segundo plano removido
- Sentry removido (software de monitoramento de aplicativos e rastreamento de erros)
- Spyc yaml removido
- OwnCloud removido
- Gulp-uglify substituído por gulp-terser
- CRLF => finais de linha LF
- Incorporar boot.js e boot.css em index.html
- Remoção de código JavaScript antigo (hoje em dia as coisas são nativas)
- Adicionado editor Squire HTML modificado como substituto do CKEditor
- Sabre/VObject atualizado
- Divida o código JavaScript específico do administrador do código do usuário
- Divida o código JavaScript específico do Sieve do código do usuário
- Revivificador JSON
- Melhor gerenciamento de coleta de lixo de memória
- Adicionado serviceworker para notificações
- Adicionado editor avançado de scripts Sieve
- Arquivos de idioma reduzidos
- Webpack substituído por rollup
- Nenhuma detecção de agente de usuário (use a largura do dispositivo)
- Adicionado suporte para carregar plugins como .phar
- Biblioteca antiga do Sabre substituída
- Contatos do AddressBook suportam MySQL/MariaDB utf8mb4
- Adicionadas verificações de cabeçalhos de solicitação de busca de metadados
- Tamanho excessivo do DOM reduzido
- Suporte ao groupware Kolab
- Suporta muitos mais RFCs IMAP
- Suporta Sodium e OpenSSL para criptografia
- Suporte PGP muito melhor
Navegadores suportados
Este fork usa versões reduzidas/simplificadas de scripts e não tem suporte para Internet Explorer nem Edge Legacy. São suportados:
- Cromo 80+
- Borda 80+
- Firefox 78+
- Ópera 67+
- Safári 13.1+
Remoção de JavaScript antigo
O resultado é um código de download mais rápido e menor (bom para redes móveis).
- Adicionado dev/prototype.js para alguns recursos adicionais
- Jua.js modificado para ficar sem jQuery
- Autolinker substituído por detecção simples de https/e-mail
- MomentToNode substituído pelo HTML5
<time>
adequado - Ouvintes de redimensionamento substituídos por ResizeObserver
- Bootstrap.js substituído por substituição imediata nativa
- Dev/Common/ClientStorageDriver/* substituído por polyfill de objetos de armazenamento da Web
- Substituído *Ajax por classes *Fetch porque usamos a API Fetch, não jQuery.ajax
- Substituído knockoutjs 3.4 por um 3.5.1 modificado
- Substituído nocaute classificável por arrastar e soltar HTML5 nativo
- Simplestatemanager substituído por CSS @media
- Inputosaurus substituído por código próprio
- Keymaster substituído por manipulador de atalhos próprio
- OpenPGP.js v2 substituído pelo OpenPGP.js v5
- Removido ifvisible.js
- Pikaday removido
- Sublinhado removido
- Polyfills removidos
- Modernização removida
- Nanoscroll removido
- Galeria de luz removida
- jQuery removido
- Removido jquery-ui
- Removido jquery-scrollstop
- Jquery-mousewheel removido
- Removido matchmedia-polyfill
- Momentjs removido (use Intl)
- Opentip removido (use CSS)
- Código não comunitário (também conhecido como Prem/Premium/License) removido
- ProgressJS removido
RainLoop 1.17 vs SnappyMail
js/* | RainLoop | Rápido |
---|
admin.js | 2.170.153 | 84.925 |
aplicativo.js | 4.207.787 | 447.263 |
inicialização.js | 868.735 | 4.343 |
libs.js | 658.812 | 233.728 |
peneira.js | 0 | 91.418 |
polyfills.js | 334.608 | 0 |
serviceworker.js | 0 | 285 |
TOTAL | 8.240.095 | 861.962 |
js/min/* | RainLoop | Rápido | RL gzip | SM gzip | RL brotli | SM brotli |
---|
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 |
peneira.min.js | 0 | 45.504 | 0 | 11.131 | 0 | 9.917 |
polyfills.min.js | 32.837 | 0 | 11.406 | 0 | 10.175 | 0 |
TOTAL usuário | 1.217.635 | 314.978 | 358.761 | 109.294 | 299.485 | 94.755 |
TOTAL usuário+peneira | 1.217.635 | 360.482 | 358.761 | 120.425 | 299.485 | 104.672 |
Administrador TOTAL | 959.099 | 154.596 | 292.911 | 54.811 | 249.877 | 48.841 |
Para um usuário, é cerca de 66% menor e mais rápido que o RainLoop tradicional.
Mudanças de CSS
- Resolva os "recursos" removidos do jQuery com código CSS nativo
- Os temas funcionam no modo móvel
- Bugfix regras CSS inválidas/conflitantes
- Usar caixa flexível
- Use caixa de borda
- Divida app.css para ter admin.css separado
- Remova o 'float' da velha escola
- Remover CSS não utilizado
- HTML.no-css removido
- Removido dev/Styles/Cmd.less
- Removido dev/Styles/Scroll.less
- Removido o Internet Explorer de normalize.css
- Node_modules/opentip/css/opentip.css removido
- Node_modules/pikaday/css/pikaday.css removido
- Fornecedores não utilizados/bootstrap/less/* removidos
- Fornecedores removidos/jquery-nanoscroller/nanoscroller.css
- Fornecedores removidos/jquery-letterfx/jquery-letterfx.min.css
- Fornecedores removidos/Progress.js/minified/progressjs.min.css
- Removido o autoprefixador gulp
css/* | RainLoop | Rápido | RL gzip | SM gzip | SM brotli |
---|
aplicativo.css | 340.331 | 85.073 | 46.946 | 17.792 | 15.210 |
app.min.css | 274.947 | 68.272 | 39.647 | 15.615 | 13.636 |
inicialização.css | | 1.326 | | 664 | 545 |
inicialização.min.css | | 1.071 | | 590 | 474 |
administrador.css | | 30.880 | | 7.045 | 6.127 |
admin.min.css | | 24.959 | | 6.368 | 5.615 |
PGP
RainLoop usa o antigo OpenPGP.js v2 SnappyMail v2.12 usa OpenPGP.js v5, GnuPG e Mailvelope. SnappyMail é capaz de usar e gerar chaves ECDSA e EDDSA, o que o RainLoop não faz.
Como o SnappyMail tenta obter a melhor experiência móvel, ele bifurcou o OpenPGP.js para eliminá-lo.
- remova todos os Node.js não utilizados
- remova todo o suporte a navegadores antigos. Consulte https://github.com/the-djmaze/openpgpjs para desenvolvimento
OpenPGP | RainLoop | Rápido | RL gzip | SM gzip | RL brotli | SM brotli |
---|
openpgp.min.js | 330.742 | 546.165 | 102.388 | 169.207 | 84.241 | 138.688 |
openpgp.worker | 1.499 | | 824 | | 695 | |
Escudeiro vs CKEditor
A implementação do Squire ainda não é 100% compatível, mas mostra a enorme sobrecarga do CKEditor.
Ainda TODO:
- suporte para tabelas (realmente necessário?!?)
| normal | min | gzip | min gzip |
---|
escudeiro | 122.321 | 41.906 | 31.867 | 14.330 |
editor | ? | 520.035 | ? | 155.916 |
O CKEditor incluindo as 7 solicitações de ativos (css, idioma, plug-ins, ícones) tem 633,46 KB / 180,47 KB (gzip).