This commit is contained in:
the-djmaze 2024-03-16 01:00:09 +01:00
parent 5657af7238
commit 9427b36633
9 changed files with 71 additions and 37 deletions

View file

@ -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

View file

@ -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 | |

View file

@ -1,4 +1,4 @@
This app packages SnappyMail <upstream>2.35.3</upstream>.
This app packages SnappyMail <upstream>2.35.4</upstream>.
SnappyMail is a simple, modern, lightweight & fast web-based email client.

View file

@ -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 && \

View file

@ -3,7 +3,7 @@
<id>snappymail</id>
<name>SnappyMail</name>
<summary>SnappyMail Webmail</summary>
<version>2.35.3</version>
<version>2.35.4</version>
<licence>agpl</licence>
<author>SnappyMail, RainLoop Team, Nextgen-Networks, Tab Fitts, Nathan Kinkade, Pierre-Alain Bandinelli</author>
<description><![CDATA[**Lightweight & fast email client.**

View file

@ -20,7 +20,7 @@ return "SnappyMail Webmail is a browser-based multilingual IMAP client with an a
# script_snappymail_versions()
sub script_snappymail_versions
{
return ( "2.35.3" );
return ( "2.35.4" );
}
sub script_snappymail_version_desc

View file

@ -3,7 +3,7 @@
"title": "SnappyMail",
"description": "Simple, modern & fast web-based email client",
"private": true,
"version": "2.35.3",
"version": "2.35.4",
"homepage": "https://snappymail.eu",
"author": {
"name": "DJ Maze",

View file

@ -203,6 +203,7 @@ trait Contacts
if (!isset($aData['Mode'])) {
$aData['Mode'] = empty($aData['Enable']) ? 0 : 1;
}
// $oAccount = $this->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'

View file

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