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);
}
- }
*/
+ }
}
}