From 1ad946d013bfb661340c7a9720b2dc90aa9a0d7f Mon Sep 17 00:00:00 2001
From: the-djmaze <>
Date: Tue, 27 Aug 2024 16:47:44 +0200
Subject: [PATCH] v2.37.3
---
CHANGELOG.md | 17 ++++++++++++-
README.md | 24 +++++++++----------
integrations/cloudron/DESCRIPTION.md | 2 +-
integrations/cloudron/Dockerfile | 2 +-
.../nextcloud/snappymail/appinfo/info.xml | 2 +-
integrations/virtualmin/snappymail.pl | 2 +-
package.json | 2 +-
plugins/avatars/index.php | 8 +++++--
.../libraries/RainLoop/Actions/Accounts.php | 1 +
.../app/libraries/snappymail/gpg/base.php | 8 +++++--
.../app/libraries/snappymail/gpg/smime.php | 14 -----------
vendors/knockout/src/utils.js | 1 +
12 files changed, 47 insertions(+), 36 deletions(-)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 2b9bcd2cf9..cf59a52bb0 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,8 +1,14 @@
-## 2.37.3 – 2024-08-13
+## 2.37.3 – 2024-08-27
### Added
+- Mark images with width=1 as tracking pixel
+- Show warning in Admin -> About when PHP runs in 32bit
- Edit ACL rules
[#157](https://github.com/the-djmaze/snappymail/issues/157)
+- Show GnuPG version for
+ [#1560](https://github.com/the-djmaze/snappymail/issues/1560)
+- Make sure only scalar values are allowed in $_ENV for
+ [#1560](https://github.com/the-djmaze/snappymail/issues/1560)
- Change minimum new mail check interval
[#1678](https://github.com/the-djmaze/snappymail/issues/1678)
- Sieve editor does not support "index" extension
@@ -10,17 +16,26 @@
### Changed
- Improved domain autoconfig interaction
+- MS autodiscover priorities DNS over subdomain
- Simplify sieve scripts list
[#1675](https://github.com/the-djmaze/snappymail/issues/1675)
- Handling of (token) errors due to
[#1706](https://github.com/the-djmaze/snappymail/issues/1706)
+- Sabre/Xml to v4.0.5
- Update Chinese by @Artoria2e5
+- Update French by @hguilbert
### Fixed
- Thread sorting visible after disabling the imap capability
[#1574](https://github.com/the-djmaze/snappymail/issues/1574)
- Creating new message impossible as long as a draft exists?
[#1710](https://github.com/the-djmaze/snappymail/issues/1710)
+- InvalidToken error at login
+ [#1706](https://github.com/the-djmaze/snappymail/issues/1706)
+
+### Nextcloud
+- Force Nextcloud personal language by default
+ [#1428](https://github.com/the-djmaze/snappymail/issues/1428)
## 2.37.2 – 2024-08-13
diff --git a/README.md b/README.md
index 1a517101a4..cf28becf05 100644
--- a/README.md
+++ b/README.md
@@ -140,26 +140,26 @@ RainLoop 1.17 vs SnappyMail
|js/* |RainLoop |Snappy |
|--------------- |--------: |--------: |
-|admin.js |2.170.153 | 84.054 |
-|app.js |4.207.787 | 441.754 |
-|boot.js | 868.735 | 4.147 |
+|admin.js |2.170.153 | 84.203 |
+|app.js |4.207.787 | 445.359 |
+|boot.js | 868.735 | 4.343 |
|libs.js | 658.812 | 193.716 |
-|sieve.js | 0 | 84.598 |
+|sieve.js | 0 | 84.571 |
|polyfills.js | 334.608 | 0 |
|serviceworker.js | 0 | 285 |
-|TOTAL |8.240.095 | 808.554 |
+|TOTAL |8.240.095 | 812.477 |
|js/min/* |RainLoop |Snappy |RL gzip |SM gzip |RL brotli |SM brotli |
|--------------- |--------: |--------: |------: |------: |--------: |--------: |
-|admin.min.js | 256.831 | 41.162 | 73.606 | 13.885 | 60.877 | 12.434 |
-|app.min.js | 515.367 | 199.730 |139.456 | 67.669 |110.485 | 57.672 |
-|boot.min.js | 84.659 | 2.087 | 26.998 | 1.204 | 23.643 | 1.002 |
+|admin.min.js | 256.831 | 41.256 | 73.606 | 13.940 | 60.877 | 12.493 |
+|app.min.js | 515.367 | 201.270 |139.456 | 68.096 |110.485 | 58.078 |
+|boot.min.js | 84.659 | 2.231 | 26.998 | 1.271 | 23.643 | 1.067 |
|libs.min.js | 584.772 | 92.365 |180.901 | 34.487 |155.182 | 30.830 |
-|sieve.min.js | 0 | 41.093 | 0 | 10.325 | 0 | 9.327 |
+|sieve.min.js | 0 | 41.288 | 0 | 10.327 | 0 | 9.318 |
|polyfills.min.js | 32.837 | 0 | 11.406 | 0 | 10.175 | 0 |
-|TOTAL user |1.217.635 | 294.182 |358.761 |103.360 |299.485 | 89.504 |
-|TOTAL user+sieve |1.217.635 | 335.275 |358.761 |113.685 |299.485 | 98.831 |
-|TOTAL admin | 959.099 | 135.614 |292.911 | 49.576 |249.877 | 44.266 |
+|TOTAL user |1.217.635 | 295.866 |358.761 |103.854 |299.485 | 89.975 |
+|TOTAL user+sieve |1.217.635 | 337.154 |358.761 |114.181 |299.485 | 99.293 |
+|TOTAL admin | 959.099 | 135.852 |292.911 | 49.698 |249.877 | 44.390 |
For a user it is around 68% smaller and faster than traditional RainLoop.
diff --git a/integrations/cloudron/DESCRIPTION.md b/integrations/cloudron/DESCRIPTION.md
index f4a440cd39..5f4778d977 100644
--- a/integrations/cloudron/DESCRIPTION.md
+++ b/integrations/cloudron/DESCRIPTION.md
@@ -1,4 +1,4 @@
-This app packages SnappyMail 2.37.2.
+This app packages SnappyMail 2.37.3.
SnappyMail is a simple, modern, lightweight & fast web-based email client.
diff --git a/integrations/cloudron/Dockerfile b/integrations/cloudron/Dockerfile
index 7c8c457074..7d0b642000 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.37.2
+VERSION=2.37.3
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 84d90a8808..de7367d973 100644
--- a/integrations/nextcloud/snappymail/appinfo/info.xml
+++ b/integrations/nextcloud/snappymail/appinfo/info.xml
@@ -3,7 +3,7 @@
snappymail
SnappyMail
SnappyMail Webmail
- 2.37.2
+ 2.37.3
agpl
SnappyMail, RainLoop Team, Nextgen-Networks, Tab Fitts, Nathan Kinkade, Pierre-Alain Bandinelli
getAvatar($sEmail, !empty($aBimi[0]), $sBimiSelector))) {
+ \header("Cache-Control: max-age={$maxAge}, private");
+ \header('Expires: '.\gmdate('D, j M Y H:i:s', $maxAge + \time()).' UTC');
\header('Content-Type: '.$aResult[0]);
echo $aResult[1];
} else {
diff --git a/snappymail/v/0.0.0/app/libraries/RainLoop/Actions/Accounts.php b/snappymail/v/0.0.0/app/libraries/RainLoop/Actions/Accounts.php
index 4ad8d20d06..da6b9e1993 100644
--- a/snappymail/v/0.0.0/app/libraries/RainLoop/Actions/Accounts.php
+++ b/snappymail/v/0.0.0/app/libraries/RainLoop/Actions/Accounts.php
@@ -184,6 +184,7 @@ public function DoAccountDelete(): array
$bReload = false;
$oAccount = $this->getAccountFromToken();
if ($oAccount instanceof AdditionalAccount && $oAccount->Email() === $sEmailToDelete) {
+// $this->SetAdditionalAuthToken(null);
\SnappyMail\Cookies::clear(self::AUTH_ADDITIONAL_TOKEN_KEY);
$bReload = true;
}
diff --git a/snappymail/v/0.0.0/app/libraries/snappymail/gpg/base.php b/snappymail/v/0.0.0/app/libraries/snappymail/gpg/base.php
index 74c474a7dc..d94de5454b 100644
--- a/snappymail/v/0.0.0/app/libraries/snappymail/gpg/base.php
+++ b/snappymail/v/0.0.0/app/libraries/snappymail/gpg/base.php
@@ -76,12 +76,16 @@ function __construct(string $homedir)
function __destruct()
{
$this->proc_close();
-
$gpgconf = static::findBinary('gpgconf');
if ($gpgconf) {
+ $cmd = $gpgconf . ' --kill gpg-agent';
+ // https://github.com/the-djmaze/snappymail/issues/1560#issuecomment-2144817883
+// if (\version_compare($this->version, '2.4.0', '<')) {
+ $cmd .= ' ' . \escapeshellarg($this->options['homedir']);
+// }
$env = ['GNUPGHOME' => $this->options['homedir']];
$pipes = [];
- if ($process = \proc_open($gpgconf . ' --kill gpg-agent --homedir ' . \escapeshellarg($this->options['homedir']), [], $pipes, null, $env)) {
+ if ($process = \proc_open($cmd, [], $pipes, null, $env)) {
\proc_close($process);
}
}
diff --git a/snappymail/v/0.0.0/app/libraries/snappymail/gpg/smime.php b/snappymail/v/0.0.0/app/libraries/snappymail/gpg/smime.php
index aaa1c839e7..203a180b01 100644
--- a/snappymail/v/0.0.0/app/libraries/snappymail/gpg/smime.php
+++ b/snappymail/v/0.0.0/app/libraries/snappymail/gpg/smime.php
@@ -58,20 +58,6 @@ function __construct(string $homedir)
}
}
- function __destruct()
- {
- $this->proc_close();
-
- $gpgconf = static::findBinary('gpgconf');
- if ($gpgconf) {
- $env = ['GNUPGHOME' => $this->options['homedir']];
- $pipes = [];
- if ($process = \proc_open($gpgconf . ' --kill gpg-agent --homedir ' . \escapeshellarg($this->options['homedir']), [], $pipes, null, $env)) {
- \proc_close($process);
- }
- }
- }
-
public static function isSupported() : bool
{
return parent::isSupported() && static::findBinary('gpgsm');
diff --git a/vendors/knockout/src/utils.js b/vendors/knockout/src/utils.js
index e47cbabf95..a2129c2e30 100644
--- a/vendors/knockout/src/utils.js
+++ b/vendors/knockout/src/utils.js
@@ -25,6 +25,7 @@ ko.utils = {
: node => node.cloneNode(true)),
setDomNodeChildren: (domNode, childNodes) => {
+// domNode.replaceChildren(...childNodes);
ko.utils.emptyDomNode(domNode);
childNodes && domNode.append(...childNodes);
},