mirror of
https://github.com/the-djmaze/snappymail.git
synced 2025-10-24 04:26:09 +08:00
v2.19.6
This commit is contained in:
parent
806f6f3c5e
commit
e7b06496d2
13 changed files with 48 additions and 53 deletions
|
|
@ -290,5 +290,5 @@ dev_email = ""
|
|||
dev_password = ""
|
||||
|
||||
[version]
|
||||
current = "2.19.4"
|
||||
current = "2.19.6"
|
||||
saved = "Fri, 30 Sep 2022 12:34:56 +0000"
|
||||
|
|
|
|||
20
README.md
20
README.md
|
|
@ -140,26 +140,26 @@ RainLoop 1.17 vs SnappyMail
|
|||
|
||||
|js/* |RainLoop |Snappy |
|
||||
|--------------- |--------: |--------: |
|
||||
|admin.js |2.170.153 | 81.500 |
|
||||
|app.js |4.207.787 | 405.783 |
|
||||
|admin.js |2.170.153 | 81.545 |
|
||||
|app.js |4.207.787 | 405.510 |
|
||||
|boot.js | 868.735 | 2.050 |
|
||||
|libs.js | 658.812 | 192.965 |
|
||||
|sieve.js | 0 | 86.172 |
|
||||
|sieve.js | 0 | 86.121 |
|
||||
|polyfills.js | 334.608 | 0 |
|
||||
|serviceworker.js | 0 | 285 |
|
||||
|TOTAL |8.240.095 | 768.755 |
|
||||
|TOTAL |8.240.095 | 768.476 |
|
||||
|
||||
|js/min/* |RainLoop |Snappy |RL gzip |SM gzip |RL brotli |SM brotli |
|
||||
|--------------- |--------: |--------: |------: |------: |--------: |--------: |
|
||||
|admin.min.js | 256.831 | 40.402 | 73.606 | 13.446 | 60.877 | 12.062 |
|
||||
|app.min.js | 515.367 | 188.273 |139.456 | 62.450 |110.485 | 53.536 |
|
||||
|admin.min.js | 256.831 | 40.255 | 73.606 | 13.435 | 60.877 | 12.047 |
|
||||
|app.min.js | 515.367 | 187.781 |139.456 | 62.426 |110.485 | 53.504 |
|
||||
|boot.min.js | 84.659 | 1.252 | 26.998 | 778 | 23.643 | 628 |
|
||||
|libs.min.js | 584.772 | 92.055 |180.901 | 34.113 |155.182 | 30.641 |
|
||||
|sieve.min.js | 0 | 41.952 | 0 | 10.493 | 0 | 9.465 |
|
||||
|sieve.min.js | 0 | 41.926 | 0 | 10.484 | 0 | 9.451 |
|
||||
|polyfills.min.js | 32.837 | 0 | 11.406 | 0 | 10.175 | 0 |
|
||||
|TOTAL user |1.217.635 | 281.580 |358.761 | 97.341 |299.485 | 84.805 |
|
||||
|TOTAL user+sieve |1.217.635 | 323.532 |358.761 |107.834 |299.485 | 94.270 |
|
||||
|TOTAL admin | 959.099 | 133.709 |292.911 | 48.337 |249.877 | 43.331 |
|
||||
|TOTAL user |1.217.635 | 281.088 |358.761 | 97.317 |299.485 | 84.773 |
|
||||
|TOTAL user+sieve |1.217.635 | 323.014 |358.761 |107.801 |299.485 | 94.224 |
|
||||
|TOTAL admin | 959.099 | 133.562 |292.911 | 48.326 |249.877 | 43.316 |
|
||||
|
||||
For a user its around 70% smaller and faster than traditional RainLoop.
|
||||
|
||||
|
|
|
|||
|
|
@ -33,7 +33,7 @@ export const
|
|||
*/
|
||||
serverRequestRaw = (type, hash) =>
|
||||
SERVER_PREFIX + '/Raw/' + SUB_QUERY_PREFIX + '/'
|
||||
+ '0/' // AuthAccountHash ?
|
||||
+ '0/' // Settings.get('AccountHash') ?
|
||||
+ (type
|
||||
? type + '/' + (hash ? SUB_QUERY_PREFIX + '/' + hash : '')
|
||||
: ''),
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
This app packages SnappyMail <upstream>2.19.4</upstream>.
|
||||
This app packages SnappyMail <upstream>2.19.6</upstream>.
|
||||
|
||||
SnappyMail is a simple, modern, lightweight & fast web-based email client.
|
||||
|
||||
|
|
|
|||
|
|
@ -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.19.4
|
||||
VERSION=2.19.6
|
||||
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 && \
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@
|
|||
<id>snappymail</id>
|
||||
<name>SnappyMail</name>
|
||||
<summary>SnappyMail Webmail</summary>
|
||||
<version>2.19.5</version>
|
||||
<version>2.19.6</version>
|
||||
<licence>agpl</licence>
|
||||
<author>SnappyMail, RainLoop Team, Nextgen-Networks, Tab Fitts, Nathan Kinkade, Pierre-Alain Bandinelli</author>
|
||||
<description><![CDATA[**Simple, modern, lightweight & fast web-based email client.**
|
||||
|
|
|
|||
|
|
@ -50,7 +50,7 @@ class SnappyMailHelper
|
|||
$bSave = true;
|
||||
}
|
||||
|
||||
// Pre-configure some domains
|
||||
// Pre-configure domain
|
||||
$ocConfig = \OC::$server->getConfig();
|
||||
if ($ocConfig->getAppValue('snappymail', 'snappymail-autologin', false)
|
||||
|| $ocConfig->getAppValue('snappymail', 'snappymail-autologin-with-email', false)
|
||||
|
|
|
|||
|
|
@ -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.19.4" );
|
||||
return ( "2.19.6" );
|
||||
}
|
||||
|
||||
sub script_snappymail_version_desc
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@
|
|||
"title": "SnappyMail",
|
||||
"description": "Simple, modern & fast web-based email client",
|
||||
"private": true,
|
||||
"version": "2.19.4",
|
||||
"version": "2.19.6",
|
||||
"homepage": "https://snappymail.eu",
|
||||
"author": {
|
||||
"name": "DJ Maze",
|
||||
|
|
|
|||
|
|
@ -202,7 +202,7 @@ $Plugin->addHook('hook.name', 'functionName');
|
|||
|
||||
### filter.domain
|
||||
params:
|
||||
\RainLoop\Model\Domain &$oDomain
|
||||
\RainLoop\Model\Domain $oDomain
|
||||
|
||||
### filter.fabrica
|
||||
params:
|
||||
|
|
|
|||
|
|
@ -44,7 +44,7 @@ abstract class AbstractConfig implements \JsonSerializable
|
|||
$this->sFileHeader = $sFileHeader;
|
||||
$this->aData = $this->defaultValues();
|
||||
|
||||
$this->bUseApcCache = APP_USE_APCU_CACHE &&
|
||||
$this->bUseApcCache = defined('APP_USE_APCU_CACHE') && APP_USE_APCU_CACHE &&
|
||||
\MailSo\Base\Utils::FunctionsCallable(array('apcu_fetch', 'apcu_store'));
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -72,8 +72,6 @@ if (defined('MULTIDOMAIN')) {
|
|||
define('APP_PRIVATE_DATA_NAME', $sPrivateDataFolderInternalName ?: '_default_');
|
||||
unset($sPrivateDataFolderInternalName);
|
||||
|
||||
defined('APP_USE_APCU_CACHE') || define('APP_USE_APCU_CACHE', true);
|
||||
|
||||
if (!defined('APP_DATA_FOLDER_PATH')) {
|
||||
$sCustomDataPath = function_exists('__get_custom_data_full_path') ? rtrim(trim(__get_custom_data_full_path()), '\\/') : $sCustomDataPath;
|
||||
define('APP_DATA_FOLDER_PATH', strlen($sCustomDataPath) ? $sCustomDataPath.'/' : APP_INDEX_ROOT_PATH.'data/');
|
||||
|
|
@ -90,18 +88,38 @@ $sData = is_file(APP_DATA_FOLDER_PATH.'DATA.php') ? file_get_contents(APP_DATA_F
|
|||
define('APP_PRIVATE_DATA', APP_DATA_FOLDER_PATH.'_data_'.($sData ? md5($sData) : '').'/'.APP_PRIVATE_DATA_NAME.'/');
|
||||
define('APP_PLUGINS_PATH', APP_PRIVATE_DATA.'plugins/');
|
||||
|
||||
// installation checking data folder
|
||||
if (APP_VERSION !== (is_file(APP_DATA_FOLDER_PATH.'INSTALLED') ? file_get_contents(APP_DATA_FOLDER_PATH.'INSTALLED') : '')
|
||||
|| !is_dir(APP_PRIVATE_DATA))
|
||||
{
|
||||
include APP_VERSION_ROOT_PATH.'setup.php';
|
||||
}
|
||||
|
||||
ini_set('default_charset', 'UTF-8');
|
||||
ini_set('internal_encoding', 'UTF-8');
|
||||
mb_internal_encoding('UTF-8');
|
||||
mb_language('uni');
|
||||
|
||||
if (!defined('SNAPPYMAIL_LIBRARIES_PATH')) {
|
||||
define('SNAPPYMAIL_LIBRARIES_PATH', rtrim(realpath(__DIR__), '\\/').'/app/libraries/');
|
||||
|
||||
if (false === set_include_path(SNAPPYMAIL_LIBRARIES_PATH . PATH_SEPARATOR . get_include_path())) {
|
||||
exit('set_include_path() failed. Probably due to Apache config using php_admin_value instead of php_value');
|
||||
}
|
||||
|
||||
spl_autoload_extensions('.php');
|
||||
/** lowercase autoloader */
|
||||
spl_autoload_register();
|
||||
/** case-sensitive autoloader */
|
||||
spl_autoload_register(function($sClassName){
|
||||
$file = SNAPPYMAIL_LIBRARIES_PATH . strtr($sClassName, '\\', DIRECTORY_SEPARATOR) . '.php';
|
||||
// if ($file = stream_resolve_include_path(strtr($sClassName, '\\', DIRECTORY_SEPARATOR) . '.php')) {
|
||||
if (is_file($file)) {
|
||||
include_once $file;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
// installation checking data folder
|
||||
if (APP_VERSION !== (is_file(APP_DATA_FOLDER_PATH.'INSTALLED') ? file_get_contents(APP_DATA_FOLDER_PATH.'INSTALLED') : '')
|
||||
|| !is_dir(APP_PRIVATE_DATA))
|
||||
{
|
||||
include __DIR__ . '/setup.php';
|
||||
}
|
||||
|
||||
$sSalt = is_file(APP_DATA_FOLDER_PATH.'SALT.php') ? trim(file_get_contents(APP_DATA_FOLDER_PATH.'SALT.php')) : '';
|
||||
if (!$sSalt) {
|
||||
// random salt
|
||||
|
|
@ -142,26 +160,6 @@ if (!ini_get('zlib.output_compression') && !ini_get('brotli.output_compression')
|
|||
}
|
||||
}
|
||||
|
||||
if (!defined('RAINLOOP_APP_LIBRARIES_PATH')) {
|
||||
define('RAINLOOP_APP_LIBRARIES_PATH', rtrim(realpath(__DIR__), '\\/').'/app/libraries/');
|
||||
|
||||
if (false === set_include_path(RAINLOOP_APP_LIBRARIES_PATH . PATH_SEPARATOR . get_include_path())) {
|
||||
exit('set_include_path() failed. Probably due to Apache config using php_admin_value instead of php_value');
|
||||
}
|
||||
|
||||
spl_autoload_extensions('.php');
|
||||
/** lowercase autoloader */
|
||||
spl_autoload_register();
|
||||
/** case-sensitive autoloader */
|
||||
spl_autoload_register(function($sClassName){
|
||||
$file = RAINLOOP_APP_LIBRARIES_PATH . strtr($sClassName, '\\', DIRECTORY_SEPARATOR) . '.php';
|
||||
// if ($file = stream_resolve_include_path(strtr($sClassName, '\\', DIRECTORY_SEPARATOR) . '.php')) {
|
||||
if (is_file($file)) {
|
||||
include_once $file;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
if (class_exists('RainLoop\\Api')) {
|
||||
RainLoop\Api::Handle();
|
||||
// NextCloud/OwnCloud?
|
||||
|
|
|
|||
|
|
@ -156,10 +156,7 @@ if (defined('APP_VERSION'))
|
|||
}
|
||||
}
|
||||
|
||||
// require __DIR__ . '/app/libraries/snappymail/idn.php';
|
||||
// require __DIR__ . '/app/libraries/snappymail/intl/idn.php';
|
||||
// $sName = \SnappyMail\IDN::toAscii(mb_strtolower(gethostname()));
|
||||
$sName = mb_strtolower(gethostname());
|
||||
$sName = \SnappyMail\IDN::toAscii(mb_strtolower(gethostname()));
|
||||
$sFile = APP_PRIVATE_DATA.'domains/'.$sName.'.json';
|
||||
if (!file_exists($sFile) && !file_exists(APP_PRIVATE_DATA.'domains/'.$sName.'.ini')) {
|
||||
$config = json_decode(file_get_contents(__DIR__ . '/app/domains/default.json'), true);
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue