From 9427b366331eaa2a967fde408e16dea84823ec08 Mon Sep 17 00:00:00 2001 From: the-djmaze <> Date: Sat, 16 Mar 2024 01:00:09 +0100 Subject: [PATCH] v2.35.4 --- CHANGELOG.md | 30 +++++++++++-- README.md | 22 +++++----- integrations/cloudron/DESCRIPTION.md | 2 +- integrations/cloudron/Dockerfile | 2 +- .../nextcloud/snappymail/appinfo/info.xml | 2 +- integrations/virtualmin/snappymail.pl | 2 +- package.json | 2 +- .../libraries/RainLoop/Actions/Contacts.php | 2 + .../v/0.0.0/app/libraries/snappymail/log.php | 44 +++++++++++-------- 9 files changed, 71 insertions(+), 37 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 866cc7c47..08c855b4c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,27 @@ +## 2.35.4 – 2024-03-16 + +### Added +- \SnappyMail\IDN::toAscii() + +### Changed +- OpenPGP.js to v5.11.1 +- punycode.js lowercase domain names +- Nextcloud changed stored password handling +- application.ini `login_lowercase` removed and now configurable per domain JSON `lowerLogin` +- Update Portuguese by @ner00 + +### Fixed +- Raise JS TypeEroor "toLowerCase" after update + [#1491](https://github.com/the-djmaze/snappymail/issues/1491) +- Call to undefined function shell_exec + [#1496](https://github.com/the-djmaze/snappymail/issues/1496) +- Download attachments as ZIP doesn't work for PGP encrypted mail + [#1499](https://github.com/the-djmaze/snappymail/issues/1499) +- Importing or downloading a PGP public key attachment from a PGP encrypted message doesn't work + [#1500](https://github.com/the-djmaze/snappymail/issues/1500) +- VCard PHP Notice: Undefined index: ENCODING + + ## 2.35.3 – 2024-03-12 ### Added @@ -19,9 +43,9 @@ - Improved error handling on PGP and S/MIME decrypt - Improved OpenPGP.js import keys - Use Identity S/MIME key and certificate from server instead of POST -- application.ini `webmail/language_admin` to `admin_panel/language` -- application.ini `security/admin_panel_host` to `admin_panel/host` -- application.ini `security/admin_panel_key` to `admin_panel/key` +- application.ini `[webmail]language_admin` to `[admin_panel]language` +- application.ini `[security]admin_panel_host` to `[admin_panel]host` +- application.ini `[security]admin_panel_key` to `[admin_panel]key` - Drop deprecated Domain::SetConfig() - Internationalized domain names are now handled as punycode - Cacher->Get() can now return NULL diff --git a/README.md b/README.md index cd6db0458..e1f64010e 100644 --- a/README.md +++ b/README.md @@ -140,26 +140,26 @@ RainLoop 1.17 vs SnappyMail |js/* |RainLoop |Snappy | |--------------- |--------: |--------: | -|admin.js |2.170.153 | 82.663 | -|app.js |4.207.787 | 430.135 | +|admin.js |2.170.153 | 82.845 | +|app.js |4.207.787 | 430.201 | |boot.js | 868.735 | 4.147 | -|libs.js | 658.812 | 201.887 | +|libs.js | 658.812 | 201.911 | |sieve.js | 0 | 84.703 | |polyfills.js | 334.608 | 0 | |serviceworker.js | 0 | 285 | -|TOTAL |8.240.095 | 803.820 | +|TOTAL |8.240.095 | 804.092 | |js/min/* |RainLoop |Snappy |RL gzip |SM gzip |RL brotli |SM brotli | |--------------- |--------: |--------: |------: |------: |--------: |--------: | -|admin.min.js | 256.831 | 40.601 | 73.606 | 13.614 | 60.877 | 12.203 | -|app.min.js | 515.367 | 195.213 |139.456 | 66.253 |110.485 | 56.686 | +|admin.min.js | 256.831 | 40.733 | 73.606 | 13.649 | 60.877 | 12.228 | +|app.min.js | 515.367 | 195.260 |139.456 | 66.275 |110.485 | 56.682 | |boot.min.js | 84.659 | 2.087 | 26.998 | 1.204 | 23.643 | 1.002 | -|libs.min.js | 584.772 | 92.460 |180.901 | 34.724 |155.182 | 31.042 | +|libs.min.js | 584.772 | 92.482 |180.901 | 34.729 |155.182 | 31.017 | |sieve.min.js | 0 | 41.164 | 0 | 10.365 | 0 | 9.359 | |polyfills.min.js | 32.837 | 0 | 11.406 | 0 | 10.175 | 0 | -|TOTAL user |1.217.635 | 289.760 |358.761 |102.181 |299.485 | 88.730 | -|TOTAL user+sieve |1.217.635 | 330.924 |358.761 |112.546 |299.485 | 98.089 | -|TOTAL admin | 959.099 | 135.148 |292.911 | 49.542 |249.877 | 44.247 | +|TOTAL user |1.217.635 | 289.829 |358.761 |102.208 |299.485 | 88.701 | +|TOTAL user+sieve |1.217.635 | 330.993 |358.761 |112.573 |299.485 | 98.060 | +|TOTAL admin | 959.099 | 135.302 |292.911 | 49.582 |249.877 | 44.247 | For a user it is around 69% smaller and faster than traditional RainLoop. @@ -207,7 +207,7 @@ See https://github.com/the-djmaze/openpgpjs for development |OpenPGP |RainLoop |Snappy |RL gzip |SM gzip |RL brotli |SM brotli | |--------------- |--------: |--------: |------: |-------: |--------: |--------: | -|openpgp.min.js | 330.742 | 540.792 |102.388 | 167.971 | 84.241 | 138.010 | +|openpgp.min.js | 330.742 | 546.309 |102.388 | 169.249 | 84.241 | 138.751 | |openpgp.worker | 1.499 | | 824 | | 695 | | diff --git a/integrations/cloudron/DESCRIPTION.md b/integrations/cloudron/DESCRIPTION.md index 206c13978..54ddaca71 100644 --- a/integrations/cloudron/DESCRIPTION.md +++ b/integrations/cloudron/DESCRIPTION.md @@ -1,4 +1,4 @@ -This app packages SnappyMail 2.35.3. +This app packages SnappyMail 2.35.4. SnappyMail is a simple, modern, lightweight & fast web-based email client. diff --git a/integrations/cloudron/Dockerfile b/integrations/cloudron/Dockerfile index 3d3fe16a7..15b49d1cb 100644 --- a/integrations/cloudron/Dockerfile +++ b/integrations/cloudron/Dockerfile @@ -4,7 +4,7 @@ RUN mkdir -p /app/code WORKDIR /app/code # If you change the extraction below, be sure to test on scaleway -VERSION=2.35.3 +VERSION=2.35.4 RUN wget https://github.com/the-djmaze/snappymail/releases/download/v${VERSION}/snappymail-${VERSION}.zip -O /tmp/snappymail.zip && \ unzip /tmp/snappymail.zip -d /app/code && \ rm /tmp/snappymail.zip && \ diff --git a/integrations/nextcloud/snappymail/appinfo/info.xml b/integrations/nextcloud/snappymail/appinfo/info.xml index 2c6065655..560564654 100644 --- a/integrations/nextcloud/snappymail/appinfo/info.xml +++ b/integrations/nextcloud/snappymail/appinfo/info.xml @@ -3,7 +3,7 @@ snappymail SnappyMail SnappyMail Webmail - 2.35.3 + 2.35.4 agpl SnappyMail, RainLoop Team, Nextgen-Networks, Tab Fitts, Nathan Kinkade, Pierre-Alain Bandinelli getAccountFromToken(); $oMainAccount = $this->getMainAccountFromToken(); if ($aData['Password']) { $aData['Password'] = \SnappyMail\Crypt::EncryptToJSON($aData['Password'], $oMainAccount->CryptKey()); @@ -218,6 +219,7 @@ trait Contacts protected function getContactsSyncData(\RainLoop\Model\Account $oAccount) : ?array { +// $oAccount = $this->getAccountFromToken(); $sData = $this->StorageProvider()->Get($oAccount, \RainLoop\Providers\Storage\Enumerations\StorageType::CONFIG, 'contacts_sync' diff --git a/snappymail/v/0.0.0/app/libraries/snappymail/log.php b/snappymail/v/0.0.0/app/libraries/snappymail/log.php index 6e87a02be..a3c4db69f 100644 --- a/snappymail/v/0.0.0/app/libraries/snappymail/log.php +++ b/snappymail/v/0.0.0/app/libraries/snappymail/log.php @@ -37,28 +37,36 @@ abstract class Log protected static function log(int $level, string $prefix, string $msg) { - \RainLoop\Api::Logger()->Write($msg, $level, $prefix); + if (\RainLoop\Api::Logger()->IsEnabled()) { + \RainLoop\Api::Logger()->Write($msg, $level, $prefix); + } else { /* - static $log_level; - // Default to level 4, 0 = LOG_EMERG, 7 = LOG_DEBUG - if (!$log_level) { - $log_level = \max(3, \RainLoop\Api::Config()->Get('logs', 'level', \LOG_WARNING)); - } - if ($level <= $log_level) { - if (\RainLoop\Api::Config()->Get('logs', 'syslog') && \openlog('snappymail', \LOG_ODELAY, \LOG_USER)) { - \syslog($level, "{$prefix} {$msg}"); - \closelog(); + static $log_level; + // Default to level 4, 0 = LOG_EMERG, 7 = LOG_DEBUG + if (!$log_level) { + $log_level = \max(3, \RainLoop\Api::Config()->Get('logs', 'level', \LOG_WARNING)); + } + if ($level <= $log_level) { + if (\RainLoop\Api::Config()->Get('logs', 'syslog') && \openlog('snappymail', \LOG_ODELAY, \LOG_USER)) { + \syslog($level, "{$prefix} {$msg}"); + \closelog(); + } + + if (\filter_var(\ini_get('log_errors'), FILTER_VALIDATE_BOOLEAN) + && (($level < \LOG_WARNING && \error_reporting() & \E_ERROR) + || ($level == \LOG_WARNING && \error_reporting() & \E_WARNING) + || ($level > \LOG_WARNING && \error_reporting() & \E_NOTICE) + )) { + \error_log($prefix . ' ' . static::$levels[$level] . ': ' . $msg); +// \error_log($prefix . ' ' . static::$levels[$level] . ': ' . $msg, 3, 'filename'); + } } - if (\filter_var(\ini_get('log_errors'), FILTER_VALIDATE_BOOLEAN) - && (($level < \LOG_WARNING && \error_reporting() & \E_ERROR) - || ($level == \LOG_WARNING && \error_reporting() & \E_WARNING) - || ($level > \LOG_WARNING && \error_reporting() & \E_NOTICE) - )) { - \error_log($prefix . ' ' . static::$levels[$level] . ': ' . $msg); -// \error_log($prefix . ' ' . static::$levels[$level] . ': ' . $msg, 3, 'filename'); + if (\class_exists('OC')) { +// \OCP\Log\logger('snappymail')->log(\intval($level), $msg); + \OCP\Log\logger('snappymail')->{static::$levels[$level]}($msg); } - } */ + } } }