From 843b69bfa8f29e60f62df4fb8e0b3b978bc218aa Mon Sep 17 00:00:00 2001
From: the-djmaze <>
Date: Thu, 22 Oct 2026 22:29:04 +0200
Subject: [PATCH 1/3] Send `Accept-Encoding` header in integrity test?
---
snappymail/v/0.0.0/app/libraries/snappymail/integrity.php | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/snappymail/v/0.0.0/app/libraries/snappymail/integrity.php b/snappymail/v/0.0.0/app/libraries/snappymail/integrity.php
index e6d25e6bd..145c21929 100644
--- a/snappymail/v/0.0.0/app/libraries/snappymail/integrity.php
+++ b/snappymail/v/0.0.0/app/libraries/snappymail/integrity.php
@@ -57,6 +57,7 @@ abstract class Integrity
*/
echo "
gzip encoded
";
$response = $HTTP->doRequest('HEAD', $uri . $file . '.gz');
+// $response = $HTTP->doRequest('HEAD', $uri . $file, null, ['Accept-Encoding: gzip']);
echo 'Status: ' . $response->status . '
' . \print_r($response->headers, 1) . '
';
$size = \filesize(APP_VERSION_ROOT_PATH.$file . '.gz');
if ($size == intval($response->getHeader('content-length'))) {
@@ -71,7 +72,8 @@ abstract class Integrity
}
echo "brotli encoded
";
- $response = $HTTP->doRequest('HEAD', $uri . $file . '.br');
+ $response = $HTTP->doRequest('HEAD', $uri . $file, null, ['Accept-Encoding: br']);
+// $response = $HTTP->doRequest('HEAD', $uri . $file . '.br');
echo 'Status: ' . $response->status . '
' . \print_r($response->headers, 1) . '
';
$size = \filesize(APP_VERSION_ROOT_PATH.$file . '.br');
if ($size == intval($response->getHeader('content-length'))) {
From c9f7d27551ed48979f7861fc3f5107f38f14d9d8 Mon Sep 17 00:00:00 2001
From: the-djmaze <>
Date: Thu, 22 Oct 2026 22:29:45 +0200
Subject: [PATCH 2/3] Proxy requires mainaccount
---
snappymail/v/0.0.0/app/libraries/RainLoop/ServiceActions.php | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/snappymail/v/0.0.0/app/libraries/RainLoop/ServiceActions.php b/snappymail/v/0.0.0/app/libraries/RainLoop/ServiceActions.php
index 372c0b462..26ab6e6a0 100644
--- a/snappymail/v/0.0.0/app/libraries/RainLoop/ServiceActions.php
+++ b/snappymail/v/0.0.0/app/libraries/RainLoop/ServiceActions.php
@@ -281,7 +281,7 @@ class ServiceActions
$sData = empty($this->aPaths[1]) ? '' : $this->aPaths[1];
if ($sData
&& $this->Config()->Get('labs', 'use_local_proxy_for_external_images', false)
- && $this->oActions->getAccountFromToken()
+ && $this->oActions->getMainAccountFromToken()
) {
$this->oActions->verifyCacheByKey($sData);
$sUrl = \MailSo\Base\Utils::UrlSafeBase64Decode($sData);
From e1e94c815d84a7630b03bd435f7d60499ad070bd Mon Sep 17 00:00:00 2001
From: the-djmaze <>
Date: Thu, 22 Oct 2026 23:02:00 +0200
Subject: [PATCH 3/3] The backtick (`) operator is deprecated, use shell_exec()
instead
---
cli/release.php | 10 +++++-----
.../v/0.0.0/app/libraries/snappymail/gpg/base.php | 4 ++--
.../v/0.0.0/app/libraries/snappymail/gpg/smime.php | 2 +-
.../v/0.0.0/app/libraries/snappymail/smime/openssl.php | 2 +-
4 files changed, 9 insertions(+), 9 deletions(-)
diff --git a/cli/release.php b/cli/release.php
index aac915b02..fe406f7f3 100755
--- a/cli/release.php
+++ b/cli/release.php
@@ -9,7 +9,7 @@ if (isset($options['plugins'])) {
require(ROOT_DIR . '/build/plugins.php');
}
-$gulp = trim(`which gulp`);
+$gulp = trim(shell_exec('which gulp'));
if (!$gulp) {
exit('gulp not installed, run as root: npm install --global gulp-cli');
}
@@ -34,7 +34,7 @@ $options['aur'] = isset($options['aur']);
// Docker build
$options['docker'] = isset($options['docker']);
-if ($options['docker'] && !($docker = trim(`which docker`))) {
+if ($options['docker'] && !($docker = trim(shell_exec('which docker')))) {
exit('docker not found');
}
if ($options['docker'] && $options['aur']) {
@@ -60,7 +60,7 @@ if (!isset($options['skip-gulp'])) {
$cmddir = escapeshellcmd(ROOT_DIR) . '/snappymail/v/0.0.0/static';
- if ($gzip = trim(`which gzip`)) {
+ if ($gzip = trim(shell_exec('which gzip'))) {
echo "\x1b[33;1m === Gzip *.js and *.css === \x1b[0m\n";
passthru("{$gzip} -k --best {$cmddir}/js/*.js");
passthru("{$gzip} -k --best {$cmddir}/js/min/*.js");
@@ -70,7 +70,7 @@ if (!isset($options['skip-gulp'])) {
unlink(ROOT_DIR . '/snappymail/v/0.0.0/static/js/min/boot.min.js.gz');
}
- if ($brotli = trim(`which brotli`)) {
+ if ($brotli = trim(shell_exec('which brotli'))) {
echo "\x1b[33;1m === Brotli *.js and *.css === \x1b[0m\n";
passthru("{$brotli} -k --best {$cmddir}/js/*.js");
passthru("{$brotli} -k --best {$cmddir}/js/min/*.js");
@@ -188,7 +188,7 @@ file_put_contents("{$destPath}core.json", '{
// Arch User Repository
if ($options['aur']) {
// extension_loaded('blake2')
- if (!function_exists('b2sum') && $b2sum = trim(`which b2sum`)) {
+ if (!function_exists('b2sum') && $b2sum = trim(shell_exec('which b2sum'))) {
function b2sum($file) {
$file = escapeshellarg($file);
exec("b2sum --binary {$file} 2>&1", $output, $exitcode);
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 122d51ae6..64dd7f63d 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
@@ -434,7 +434,7 @@ abstract class Base
public function agent()
{
// $home = \escapeshellarg($this->options['homedir']);
-// echo `gpg-agent --daemon --homedir $home 2>&1`;
+// echo \shell_exec('gpg-agent --daemon --homedir $home 2>&1');
}
protected function getPassphrase($key)
@@ -487,7 +487,7 @@ abstract class Base
protected static function findBinary($name) : ?string
{
- $binary = \function_exists('shell_exec') ? \trim((string) `which $name`) : '';
+ $binary = \function_exists('shell_exec') ? \trim((string) \shell_exec('which $name')) : '';
if ($binary && \RainLoop\Utils::inOpenBasedir($binary) && \is_executable($binary)) {
return $binary;
}
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 bc66c7291..55a40301b 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
@@ -43,7 +43,7 @@ class SMIME extends Base
// How to use gpgme-json ?
$this->binary = static::findBinary('gpgsm');
- $info = \preg_replace('/\R +/', ' ', `$this->binary --version`);
+ $info = \preg_replace('/\R +/', ' ', \shell_exec("{$this->binary} --version"));
if (\preg_match('/gpgsm.+([0-9]+\\.[0-9]+\\.[0-9]+)/', $info, $match)) {
$this->version = $match[1];
}
diff --git a/snappymail/v/0.0.0/app/libraries/snappymail/smime/openssl.php b/snappymail/v/0.0.0/app/libraries/snappymail/smime/openssl.php
index 3af3b7f25..242dcc3b8 100644
--- a/snappymail/v/0.0.0/app/libraries/snappymail/smime/openssl.php
+++ b/snappymail/v/0.0.0/app/libraries/snappymail/smime/openssl.php
@@ -180,7 +180,7 @@ class OpenSSL
}
$input = $tmp;
}
- `openssl asn1parse -in $input->filename()`
+ \shell_exec('openssl asn1parse -in $input->filename()');
}
*/
public function decrypt(/*string|Temporary*/ $input) : ?string