From 1ec4930dfa9dd2c0228605ea0b487e5579681965 Mon Sep 17 00:00:00 2001 From: cm-schl <63400209+cm-schl@users.noreply.github.com> Date: Mon, 29 Apr 2024 17:48:47 +0200 Subject: [PATCH 01/24] resolved problems arised from changes in v2.36 --- .../ldap-mail-accounts/LdapMailAccounts.php | 30 ++++++++++++++----- plugins/ldap-mail-accounts/index.php | 12 ++++---- 2 files changed, 29 insertions(+), 13 deletions(-) diff --git a/plugins/ldap-mail-accounts/LdapMailAccounts.php b/plugins/ldap-mail-accounts/LdapMailAccounts.php index 2f93dbd140..06ba15d28c 100644 --- a/plugins/ldap-mail-accounts/LdapMailAccounts.php +++ b/plugins/ldap-mail-accounts/LdapMailAccounts.php @@ -3,6 +3,7 @@ use RainLoop\Enumerations\Capa; use MailSo\Log\Logger; use RainLoop\Actions; +use RainLoop\Model\AdditionalAccount; use RainLoop\Model\MainAccount; class LdapMailAccounts @@ -50,14 +51,13 @@ public function __construct(LdapMailAccountsConfig $config, Logger $logger) /** * @inheritDoc * - * AOverwrite the MainAccount mail address by looking up the new one in the ldap directory + * Overwrite the MainAccount mail address by looking up the new one in the ldap directory * * The ldap search string has to be configured in the plugin configuration of the extension (in the SnappyMail Admin Panel) * * @param string &$sEmail - * @param string &$sLogin */ - public function overwriteEmail(&$sEmail, &$sLogin) + public function overwriteEmail(&$sEmail) { try { $this->EnsureBound(); @@ -105,10 +105,12 @@ public function overwriteEmail(&$sEmail, &$sLogin) foreach($mailAddressResults as $mailAddressResult) { + $this->logger->Write("AAAAAAA: $mailAddressResult->username , $username , $mailAddressResult->mailMainAccount , $sEmail", \LOG_NOTICE, self::LOG_KEY); if($mailAddressResult->username === $username) { - //$sLogin is already set to be the same as $sEmail by function "resolveLoginCredentials" in /RainLoop/Actions/UserAuth.php + //$sImapUser and $sSmtpUser are already set to be the same as $sEmail by function "resolveLoginCredentials" in /RainLoop/Actions/UserAuth.php //that called this hook, so we just have to overwrite the mail address $sEmail = $mailAddressResult->mailMainAccount; + $this->logger->Write("BBBBBBB: $mailAddressResult->username , $username , $mailAddressResult->mailMainAccount , $sEmail", \LOG_NOTICE, self::LOG_KEY); } } } @@ -131,10 +133,10 @@ public function AddLdapMailAccounts(MainAccount $oAccount): bool return false; // exceptions are only thrown from the handle error function that does logging already } - // Try to get account information. IncLogin() returns the username of the user + // Try to get account information. ImapUser() returns the username of the user // and removes the domainname if this was configured inside the domain config. - $username = @ldap_escape($oAccount->IncLogin(), "", LDAP_ESCAPE_FILTER); - + $username = @ldap_escape($oAccount->ImapUser(), "", LDAP_ESCAPE_FILTER); + $searchString = $this->config->search_string; // Replace placeholders inside the ldap search string with actual values @@ -210,7 +212,19 @@ public function AddLdapMailAccounts(MainAccount $oAccount): bool //if this fails the user will see the new mail addresses but will be asked for the correct password $sPass = new \SnappyMail\SensitiveString($oAccount->IncPassword()); //After creating the accounts here $sUsername is used as username to login to the IMAP server (see Account.php) - $oNewAccount = RainLoop\Model\AdditionalAccount::NewInstanceFromCredentials($oActions, $sEmail, $sUsername, $sPass); + //$oNewAccount = RainLoop\Model\AdditionalAccount::NewInstanceFromCredentials($oActions, $sEmail, $sUsername, $sPass); + + $oDomain = $oActions->DomainProvider()->Load($sDomain, false); + + $oNewAccount = new AdditionalAccount; + $oNewAccount->setCredentials( + $oDomain, + $sEmail, + $sUsername, + $sPass, + $sUsername, + $sPass + ); $aAccounts[$sEmail] = $oNewAccount->asTokenArray($oAccount); } diff --git a/plugins/ldap-mail-accounts/index.php b/plugins/ldap-mail-accounts/index.php index a6063c640e..7947f58bb7 100644 --- a/plugins/ldap-mail-accounts/index.php +++ b/plugins/ldap-mail-accounts/index.php @@ -40,11 +40,13 @@ public function Init(): void * Overwrite the MainAccount mail address by looking up the new one in the ldap directory * * @param string &$sEmail - * @param string &$sLogin + * @param string &$sImapUser + * @param string &$sPassword + * @param string &$sSmtpUser */ - public function overwriteMainAccountEmail(&$sEmail, &$sLogin) + public function overwriteMainAccountEmail(&$sEmail, &$sImapUser, &$sPassword, &$sSmtpUser) { - $this->Manager()->Actions()->Logger()->Write("Login DATA: login: $sLogin email: $sEmail", \LOG_WARNING, "LDAP MAIL ACCOUNTS PLUGIN"); + $this->Manager()->Actions()->Logger()->Write("Login DATA: login: $sImapUser email: $sEmail", \LOG_WARNING, "LDAP MAIL ACCOUNTS PLUGIN"); // Set up config $config = LdapMailAccountsConfig::MakeConfig($this->Config()); @@ -52,10 +54,10 @@ public function overwriteMainAccountEmail(&$sEmail, &$sLogin) if ($config->bool_overwrite_mail_address_main_account) { $oldapMailAccounts = new LdapMailAccounts($config, $this->Manager()->Actions()->Logger()); - $oldapMailAccounts->overwriteEmail($sEmail, $sLogin); + $oldapMailAccounts->overwriteEmail($sEmail); } - $this->Manager()->Actions()->Logger()->Write("Login DATA: login: $sLogin email: $sEmail", \LOG_WARNING, "LDAP MAIL ACCOUNTS PLUGIN"); + $this->Manager()->Actions()->Logger()->Write("Login DATA: login: $sImapUser email: $sEmail", \LOG_WARNING, "LDAP MAIL ACCOUNTS PLUGIN"); } // Function gets called by RainLoop/Actions/User.php From 1d8ed48666da1c25c7f40cb4b14c210c73485693 Mon Sep 17 00:00:00 2001 From: cm-schl <63400209+cm-schl@users.noreply.github.com> Date: Tue, 30 Apr 2024 08:58:29 +0200 Subject: [PATCH 02/24] remove debug messages --- plugins/ldap-mail-accounts/LdapMailAccounts.php | 2 -- 1 file changed, 2 deletions(-) diff --git a/plugins/ldap-mail-accounts/LdapMailAccounts.php b/plugins/ldap-mail-accounts/LdapMailAccounts.php index 06ba15d28c..4f380c2f53 100644 --- a/plugins/ldap-mail-accounts/LdapMailAccounts.php +++ b/plugins/ldap-mail-accounts/LdapMailAccounts.php @@ -105,12 +105,10 @@ public function overwriteEmail(&$sEmail) foreach($mailAddressResults as $mailAddressResult) { - $this->logger->Write("AAAAAAA: $mailAddressResult->username , $username , $mailAddressResult->mailMainAccount , $sEmail", \LOG_NOTICE, self::LOG_KEY); if($mailAddressResult->username === $username) { //$sImapUser and $sSmtpUser are already set to be the same as $sEmail by function "resolveLoginCredentials" in /RainLoop/Actions/UserAuth.php //that called this hook, so we just have to overwrite the mail address $sEmail = $mailAddressResult->mailMainAccount; - $this->logger->Write("BBBBBBB: $mailAddressResult->username , $username , $mailAddressResult->mailMainAccount , $sEmail", \LOG_NOTICE, self::LOG_KEY); } } } From cda2aad98d19b692ad50eb6d10c7067281330f20 Mon Sep 17 00:00:00 2001 From: cm-schl <63400209+cm-schl@users.noreply.github.com> Date: Tue, 30 Apr 2024 11:31:13 +0200 Subject: [PATCH 03/24] small cleanup --- plugins/ldap-mail-accounts/LdapMailAccounts.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/ldap-mail-accounts/LdapMailAccounts.php b/plugins/ldap-mail-accounts/LdapMailAccounts.php index 4f380c2f53..9a2d670a45 100644 --- a/plugins/ldap-mail-accounts/LdapMailAccounts.php +++ b/plugins/ldap-mail-accounts/LdapMailAccounts.php @@ -223,7 +223,7 @@ public function AddLdapMailAccounts(MainAccount $oAccount): bool $sUsername, $sPass ); - + $aAccounts[$sEmail] = $oNewAccount->asTokenArray($oAccount); } From 2786485de208db91554165bcb9341cfdf38c11da Mon Sep 17 00:00:00 2001 From: cm-schl <63400209+cm-schl@users.noreply.github.com> Date: Mon, 13 May 2024 17:25:46 +0200 Subject: [PATCH 04/24] don't pass a smtp password to setCredentials Password is not needed at the moment and passing it seams to create problems when sending mails --- plugins/ldap-mail-accounts/LdapMailAccounts.php | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/plugins/ldap-mail-accounts/LdapMailAccounts.php b/plugins/ldap-mail-accounts/LdapMailAccounts.php index 9a2d670a45..35d110f245 100644 --- a/plugins/ldap-mail-accounts/LdapMailAccounts.php +++ b/plugins/ldap-mail-accounts/LdapMailAccounts.php @@ -220,10 +220,9 @@ public function AddLdapMailAccounts(MainAccount $oAccount): bool $sEmail, $sUsername, $sPass, - $sUsername, - $sPass + $sUsername ); - + $aAccounts[$sEmail] = $oNewAccount->asTokenArray($oAccount); } From 23fe3a946be629ff55a565ff2c88a7958a2ba676 Mon Sep 17 00:00:00 2001 From: cm-schl <63400209+cm-schl@users.noreply.github.com> Date: Tue, 14 May 2024 17:24:26 +0200 Subject: [PATCH 05/24] Add new function to overwrite the cryptkey This is needed to prevent SnappyMail to ask the user for the old (maybe forgotten) ldap password --- plugins/ldap-mail-accounts/LdapMailAccounts.php | 13 +++++++++++++ .../ldap-mail-accounts/LdapMailAccountsConfig.php | 3 +++ plugins/ldap-mail-accounts/index.php | 14 +++++++++++++- 3 files changed, 29 insertions(+), 1 deletion(-) diff --git a/plugins/ldap-mail-accounts/LdapMailAccounts.php b/plugins/ldap-mail-accounts/LdapMailAccounts.php index 35d110f245..fbeb33dcc1 100644 --- a/plugins/ldap-mail-accounts/LdapMailAccounts.php +++ b/plugins/ldap-mail-accounts/LdapMailAccounts.php @@ -5,6 +5,7 @@ use RainLoop\Actions; use RainLoop\Model\AdditionalAccount; use RainLoop\Model\MainAccount; +use RainLoop\Providers\Storage\Enumerations\StorageType; class LdapMailAccounts { @@ -176,6 +177,18 @@ public function AddLdapMailAccounts(MainAccount $oAccount): bool return $oActions->FalseResponse(__FUNCTION__); } + //SnappyMail saves the passwords of the additional accounts by encrypting them using a cryptkey that is saved in the file .cryptkey + //When the password of the main account changes, SnappyMail asks the user for the old password to reencrypt the keys with the new userpassword. + //On a password change using ldap (or when the password has been forgotten by the user) this makes us some problems. Therefore overwrite + //the .cryptkey file in order to always accept the actual ldap password of the user. This has side effects on pgp keys! + //See https://github.com/the-djmaze/snappymail/issues/1570#issuecomment-2085528061 + if ($this->config->bool_overwrite_cryptkey) { + if (!$oActions->StorageProvider()->Put($oAccount, StorageType::ROOT, '.cryptkey', "")) { + $this->logger->Write("Could not overwrite the .cryptkey file!", \LOG_WARNING, self::LOG_KEY); + return $oActions->FalseResponse(__FUNCTION__); + } + } + $aAccounts = $oActions->GetAccounts($oAccount); //Search for accounts with suffix " (LDAP)" at the end of the name that were created by this plugin and initially remove them from the diff --git a/plugins/ldap-mail-accounts/LdapMailAccountsConfig.php b/plugins/ldap-mail-accounts/LdapMailAccountsConfig.php index ab62ed58da..8b674e4f25 100644 --- a/plugins/ldap-mail-accounts/LdapMailAccountsConfig.php +++ b/plugins/ldap-mail-accounts/LdapMailAccountsConfig.php @@ -21,6 +21,7 @@ class LdapMailAccountsConfig public const CONFIG_FIELD_MAIL_ADDRESS_ADDITIONAL_ACCOUNT = "field_mail_address_additional_account"; public const CONFIG_BOOL_OVERWRITE_MAIL_ADDRESS_MAIN_ACCOUNT = "bool_overwrite_mail_address_main_account"; public const CONFIG_FIELD_MAIL_ADDRESS_MAIN_ACCOUNT = "field_mail_address_main_account"; + public const CONFIG_BOOL_OVERWRITE_CRYPTKEY = "bool_overwrite_cryptkey"; public $server; public $protocol; @@ -36,6 +37,7 @@ class LdapMailAccountsConfig public $field_mail_address_main_account; public $field_mail_address_additional_account; public $bool_overwrite_mail_address_main_account; + public $bool_overwrite_cryptkey; public static function MakeConfig(Plugin $config): LdapMailAccountsConfig { @@ -54,6 +56,7 @@ public static function MakeConfig(Plugin $config): LdapMailAccountsConfig $ldap->field_mail_address_additional_account = trim($config->Get("plugin", self::CONFIG_FIELD_MAIL_ADDRESS_ADDITIONAL_ACCOUNT)); $ldap->bool_overwrite_mail_address_main_account = $config->Get("plugin", self::CONFIG_BOOL_OVERWRITE_MAIL_ADDRESS_MAIN_ACCOUNT); $ldap->field_mail_address_main_account = trim($config->Get("plugin", self::CONFIG_FIELD_MAIL_ADDRESS_MAIN_ACCOUNT)); + $ldap->bool_overwrite_cryptkey = $config->Get("plugin", self::CONFIG_BOOL_OVERWRITE_CRYPTKEY); return $ldap; } diff --git a/plugins/ldap-mail-accounts/index.php b/plugins/ldap-mail-accounts/index.php index 7947f58bb7..2abfedf04f 100644 --- a/plugins/ldap-mail-accounts/index.php +++ b/plugins/ldap-mail-accounts/index.php @@ -94,6 +94,17 @@ protected function configMapping(): array ->SetDefaultValue("mail"), ]); + $groupAdditionalSettings = new \RainLoop\Plugins\PropertyCollection('Additional settings'); + $groupAdditionalSettings->exchangeArray([ + \RainLoop\Plugins\Property::NewInstance(LdapMailAccountsConfig::CONFIG_BOOL_OVERWRITE_CRYPTKEY)->SetLabel('Overwrite user cryptkey') + ->SetType(\RainLoop\Enumerations\PluginPropertyType::BOOL) + ->SetDescription("SnappyMail saves the passwords of the additional accounts by encrypting them using a cryptkey that is saved in the file \".cryptkey\". When the password of the main account changes, SnappyMail asks the user for the old password to reencrypt the keys with the new userpassword. + \nOn a password change using ldap (or when the password has been forgotten by the user) this makes problems and asks the user to insert the old password. Therefore activating this option overwrites the .cryptkey file on login in order to always accept the actual ldap password of the user. + \nATTENTION: This has side effects on pgp keys because these are also secured by the cryptkey and could therefore not be accessible anymore! + \nSee https://github.com/the-djmaze/snappymail/issues/1570#issuecomment-2085528061") + ->SetDefaultValue(false), + ]); + return [ \RainLoop\Plugins\Property::NewInstance(LdapMailAccountsConfig::CONFIG_SERVER) ->SetLabel("LDAP Server URL") @@ -173,8 +184,9 @@ protected function configMapping(): array ->SetDescription("The field containing the default sender name of the found additional mail account.") ->SetDefaultValue("displayName"), - $groupOverwriteMainAccount + $groupOverwriteMainAccount, + $groupAdditionalSettings ]; } } From e81cf80ac9d700498df51826ffa5799d922e6042 Mon Sep 17 00:00:00 2001 From: cm-schl <63400209+cm-schl@users.noreply.github.com> Date: Wed, 15 May 2024 14:19:31 +0200 Subject: [PATCH 06/24] update readme --- plugins/ldap-mail-accounts/README.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/plugins/ldap-mail-accounts/README.md b/plugins/ldap-mail-accounts/README.md index 8f7417e8bb..752e6e8006 100644 --- a/plugins/ldap-mail-accounts/README.md +++ b/plugins/ldap-mail-accounts/README.md @@ -20,4 +20,8 @@ The plugin now can be configured to overwrite the username or mail address used Section `Overwrite mail address of main account` can be used to overwrite the username or mail address used at login with a value found in ldap. If activated, the username or mail address used at login will be looked up inside the `Username field` in ldap (for details see how a search for additional accounts is made). If the username is found, the value of the field `Mail address field for main account` will be used to overwrite the mail address of the main account. + `Overwrite user cryptkey` can be activated to prevent SnappyMail from asking the user for his old LDAP password when this password was changed or reseted. SnappyMail saves the passwords of the additional accounts by encrypting them using a cryptkey that is saved in the file `.cryptkey`. When the password of the main account changes, SnappyMail asks the user for the old password to reencrypt the keys with the new userpassword. + On a password change using ldap (or when the password has been forgotten by the user) this makes problems and asks the user to insert the old password. Therefore activating this option overwrites the .cryptkey file on login in order to always accept the actual ldap password of the user. + **ATTENTION:** This has side effects on pgp keys because these are also secured by the cryptkey and could therefore not be accessible anymore! See https://github.com/the-djmaze/snappymail/issues/1570#issuecomment-2085528061 + **Important:** SnappyMail normally needs a mail address as username. This plugin handles some special circumstances (login with an ldap username, not a mail address) so that you can login to your IMAP server with the ldap username but send mails with a mail address connected to this ldap user. From 0cbeba29d1af96cf6110d7b5f6d9b2583e8854d9 Mon Sep 17 00:00:00 2001 From: cm-schl <63400209+cm-schl@users.noreply.github.com> Date: Wed, 15 May 2024 14:32:29 +0200 Subject: [PATCH 07/24] update readme --- plugins/ldap-mail-accounts/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/ldap-mail-accounts/README.md b/plugins/ldap-mail-accounts/README.md index 752e6e8006..e0be1ba3a3 100644 --- a/plugins/ldap-mail-accounts/README.md +++ b/plugins/ldap-mail-accounts/README.md @@ -22,6 +22,6 @@ The plugin now can be configured to overwrite the username or mail address used `Overwrite user cryptkey` can be activated to prevent SnappyMail from asking the user for his old LDAP password when this password was changed or reseted. SnappyMail saves the passwords of the additional accounts by encrypting them using a cryptkey that is saved in the file `.cryptkey`. When the password of the main account changes, SnappyMail asks the user for the old password to reencrypt the keys with the new userpassword. On a password change using ldap (or when the password has been forgotten by the user) this makes problems and asks the user to insert the old password. Therefore activating this option overwrites the .cryptkey file on login in order to always accept the actual ldap password of the user. - **ATTENTION:** This has side effects on pgp keys because these are also secured by the cryptkey and could therefore not be accessible anymore! See https://github.com/the-djmaze/snappymail/issues/1570#issuecomment-2085528061 + **ATTENTION:** This has side effects on pgp keys because these are also secured by the cryptkey and could therefore not be accessible anymore! See https://github.com/the-djmaze/snappymail/issues/1570#issuecomment-2085528061 . This has also an impact on additional mail accounts that aren't created by this plugin because without the cryptkey saved passwords of additional mail accounts can not be decrypted anymore. **Important:** SnappyMail normally needs a mail address as username. This plugin handles some special circumstances (login with an ldap username, not a mail address) so that you can login to your IMAP server with the ldap username but send mails with a mail address connected to this ldap user. From 263dbab22a28063fc896bb8ebeb7372cf298cec4 Mon Sep 17 00:00:00 2001 From: cm-schl <63400209+cm-schl@users.noreply.github.com> Date: Tue, 21 May 2024 15:28:07 +0200 Subject: [PATCH 08/24] reorder steps to speed up the process and make sure that removed additional accounts are deleted even if the user now has no additional account --- .../ldap-mail-accounts/LdapMailAccounts.php | 45 ++++++++++--------- 1 file changed, 25 insertions(+), 20 deletions(-) diff --git a/plugins/ldap-mail-accounts/LdapMailAccounts.php b/plugins/ldap-mail-accounts/LdapMailAccounts.php index fbeb33dcc1..5dc0c4eb6a 100644 --- a/plugins/ldap-mail-accounts/LdapMailAccounts.php +++ b/plugins/ldap-mail-accounts/LdapMailAccounts.php @@ -132,6 +132,15 @@ public function AddLdapMailAccounts(MainAccount $oAccount): bool return false; // exceptions are only thrown from the handle error function that does logging already } + //Basing on https://github.com/the-djmaze/snappymail/issues/616 + + $oActions = \RainLoop\Api::Actions(); + + //Check if SnappyMail is configured to allow additional accounts + if (!$oActions->GetCapa(Capa::ADDITIONAL_ACCOUNTS)) { + return $oActions->FalseResponse(__FUNCTION__); + } + // Try to get account information. ImapUser() returns the username of the user // and removes the domainname if this was configured inside the domain config. $username = @ldap_escape($oAccount->ImapUser(), "", LDAP_ESCAPE_FILTER); @@ -160,21 +169,23 @@ public function AddLdapMailAccounts(MainAccount $oAccount): bool catch (LdapMailAccountsException $e) { return false; // exceptions are only thrown from the handle error function that does logging already } + if (count($mailAddressResults) < 1) { $this->logger->Write("Could not find user $username", \LOG_NOTICE, self::LOG_KEY); return false; - } else if (count($mailAddressResults) == 1) { - $this->logger->Write("Found only one match for user $username, no additional mail adresses found", \LOG_NOTICE, self::LOG_KEY); - return true; } - //Basing on https://github.com/the-djmaze/snappymail/issues/616 - - $oActions = \RainLoop\Api::Actions(); + $aAccounts = $oActions->GetAccounts($oAccount); - //Check if SnappyMail is configured to allow additional accounts - if (!$oActions->GetCapa(Capa::ADDITIONAL_ACCOUNTS)) { - return $oActions->FalseResponse(__FUNCTION__); + //Search for accounts with suffix " (LDAP)" at the end of the name that were created by this plugin and initially remove them from the + //account array. This only removes the visibility but does not delete the config done by the user. So if a user looses access to a + //mailbox the user will not see the account anymore but the configuration can be restored when the user regains access to it + foreach($aAccounts as $key => $aAccount) + { + if (preg_match("/\s\(LDAP\)$/", $aAccount['name'])) + { + unset($aAccounts[$key]); + } } //SnappyMail saves the passwords of the additional accounts by encrypting them using a cryptkey that is saved in the file .cryptkey @@ -189,17 +200,11 @@ public function AddLdapMailAccounts(MainAccount $oAccount): bool } } - $aAccounts = $oActions->GetAccounts($oAccount); - - //Search for accounts with suffix " (LDAP)" at the end of the name that were created by this plugin and initially remove them from the - //account array. This only removes the visibility but does not delete the config done by the user. So if a user looses access to a - //mailbox the user will not see the account anymore but the configuration can be restored when the user regains access to it - foreach($aAccounts as $key => $aAccount) - { - if (preg_match("/\s\(LDAP\)$/", $aAccount['name'])) - { - unset($aAccounts[$key]); - } + if (count($mailAddressResults) == 1) { + $this->logger->Write("Found only one match for user $username, no additional mail adresses found", \LOG_NOTICE, self::LOG_KEY); + //Write back the accounts even if no additional account was found. This ensures, that previous additional accounts are always removed + $oActions->SetAccounts($oAccount, $aAccounts); + return true; } foreach($mailAddressResults as $mailAddressResult) From 99c79a8fa867dba3ad08d31a6f343cfc2f76cf00 Mon Sep 17 00:00:00 2001 From: ner00 <2269603+ner00@users.noreply.github.com> Date: Mon, 27 May 2024 12:52:13 +0100 Subject: [PATCH 09/24] Update Portuguese --- .../v/0.0.0/app/localization/pt/admin.json | 2 +- .../v/0.0.0/app/localization/pt/user.json | 20 +++++++++---------- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/snappymail/v/0.0.0/app/localization/pt/admin.json b/snappymail/v/0.0.0/app/localization/pt/admin.json index b69536a937..a1dd257604 100644 --- a/snappymail/v/0.0.0/app/localization/pt/admin.json +++ b/snappymail/v/0.0.0/app/localization/pt/admin.json @@ -38,7 +38,7 @@ "LABEL_ALLOW_THEMES_ON_SETTINGS": "Permitir personalização da interface nas definições", "LABEL_ALLOW_BACKGROUND_ON_SETTINGS": "Permitir alterar a imagem de fundo nas definições", "LABEL_SHOW_THUMBNAILS": "Mostrar miniaturas (anexos)", - "LEGEND_MAIN": "Prinicpal", + "LEGEND_MAIN": "Principal", "LABEL_ATTACHMENT_SIZE_LIMIT": "Tamanho limite dos anexos", "LABEL_ALLOW_ADDITIONAL_ACCOUNTS": "Permitir contas adicionais", "LABEL_ALLOW_IDENTITIES": "Permitir múltiplas identidades", diff --git a/snappymail/v/0.0.0/app/localization/pt/user.json b/snappymail/v/0.0.0/app/localization/pt/user.json index ae0665c5e5..6128107b29 100644 --- a/snappymail/v/0.0.0/app/localization/pt/user.json +++ b/snappymail/v/0.0.0/app/localization/pt/user.json @@ -140,7 +140,7 @@ "MENU_VIEW_ORIGINAL": "Mostrar original", "HTML_VIEW": "Ver mensagem em HTML", "PLAIN_VIEW": "Ver mensagem em texto simples", - "SWAP_COLORS": "Swap default (background)color", + "SWAP_COLORS": "Trocar a cor (de fundo) predefinida", "MENU_DOWNLOAD_ORIGINAL": "Transferir como ficheiro .eml", "MENU_FILTER_SIMILAR": "Filtrar mensagens semelhantes a esta", "MENU_PRINT": "Imprimir", @@ -283,7 +283,7 @@ "VERIFY": "Validar", "GOOD_SIGNATURE": "Boa assinatura de %USER%", "ERROR": "Erro %TYPE%: %ERROR%", - "CREATE_SELF_SIGNED": "Criar auto-assinado", + "CREATE_SELF_SIGNED": "Criar autoassinado", "VALID_UNTIL": "Válido até", "PRIVATE_KEY": "Chave privada", "CHANGE_PASS": "Alterar frase secreta", @@ -328,13 +328,13 @@ "SELECT_ACTION_VACATION_MESSAGE": "Mensagem de férias", "SELECT_ACTION_DISCARD": "Descartar", "SELECT_FIELD_RECIPIENTS": "Destinatários (Para ou Cc)", - "SELECT_FIELD_HEADER": "Cebeçalho", + "SELECT_FIELD_HEADER": "Cabeçalho", "SELECT_FIELD_BODY": "Corpo", "SELECT_FIELD_SIZE": "Tamanho", "SELECT_TYPE_CONTAINS": "Contém", "SELECT_TYPE_NOT_CONTAINS": "Não contém", "SELECT_TYPE_MATCHES": "Corresponde (* e ? suportados)", - "SELECT_TYPE_NOT_MATCHES": "Não correponde (* e ? suportados)", + "SELECT_TYPE_NOT_MATCHES": "Não corresponde (* e ? suportados)", "SELECT_TYPE_REGEXP": "RegExp", "SELECT_TYPE_NOT_REGEXP": "Diferente de RegExp", "SELECT_TYPE_EQUAL_TO": "Igual a", @@ -358,10 +358,10 @@ "POPUPS_SIEVE_SCRIPT": { "TITLE_CREATE": "Criar script", "TITLE_EDIT": "Editar script", - "BUTTON_ADD_FILTER": "Adiscionar um filtro", + "BUTTON_ADD_FILTER": "Adicionar um filtro", "BUTTON_RAW_SCRIPT": "Usar um script de utilizador personalizado", "CAPABILITY_LABEL": "Capacidades", - "CHANGES_NEED_TO_BE_SAVED_DESC": "Estas alterações têm que ser guardadas no sevidor." + "CHANGES_NEED_TO_BE_SAVED_DESC": "Estas alterações têm que ser guardadas no servidor." }, "POPUPS_SYSTEM_FOLDERS": { "TITLE_SYSTEM_FOLDERS": "Escolha as pastas de sistema", @@ -426,7 +426,7 @@ }, "SETTINGS_FILTERS": { "SIMPLE": "Simples", - "ADVANCED": "Advançado", + "ADVANCED": "Avançado", "BUTTON_ADD_SCRIPT": "Adicionar um script", "SUBNAME_MOVE_TO": "Mover para \"%FOLDER%\"", "SUBNAME_FORWARD_TO": "Encaminhar para \"%EMAIL%\"", @@ -449,7 +449,7 @@ "LAYOUT_HORIZONTAL_SPLIT": "Separação horizontal", "SHOW_NEXT_MESSAGE": "Mostrar a próxima mensagem quando (re)mover a mensagem atual", "EDITOR": "Editor de texto padrão", - "EDITOR_HTML": "Html", + "EDITOR_HTML": "HTML", "EDITOR_PLAIN": "Texto simples", "VIEW_OPTIONS": "Ver opções", "USE_PREVIEW_PANE": "Use o painel de pré-visualização", @@ -591,7 +591,7 @@ "DomainAlreadyExists": "O domínio já existe", "DomainNotAllowed": "Este domínio não é permitido", "AccountNotAllowed": "Esta conta não é permitida", - "CryptKeyError": "Your login passphrase has changed", + "CryptKeyError": "A sua palavra-passe de autenticação foi alterada", "ContactsSyncError": "Erro na sincronização de contactos", "CantGetMessageList": "Não é possível obter a lista de mensagens", "CantGetMessage": "Não é possível obter a mensagem", @@ -611,7 +611,7 @@ "CantDeleteFolder": "Não é possível eliminar a pasta", "CantDeleteNonEmptyFolder": "Não é possível eliminar pastas com conteúdos", "CantSubscribeFolder": "Não é possível subscrever a esta pasta", - "CantUnsubscribeFolder": "Não é possível anular a subsrição desta pasta", + "CantUnsubscribeFolder": "Não é possível anular a subscrição desta pasta", "DemoSendMessageError": "Por motivos de segurança, esta conta de demonstração não tem permissão para enviar mensagens para endereços de e-mail externos!", "DemoAccountError": "Por motivos de segurança, esta conta não tem permissão de executar esta ação!", "AccountAlreadyExists": "Esta conta já existe", From 998eb8c4bbbc4122198dd67f7ee2e0a1021a5a7c Mon Sep 17 00:00:00 2001 From: the-djmaze <> Date: Tue, 28 May 2024 11:53:15 +0200 Subject: [PATCH 10/24] Bugfix: default language error https://github.com/the-djmaze/snappymail/issues/1579#issuecomment-2134782450 --- .../app/libraries/RainLoop/Config/Application.php | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/snappymail/v/0.0.0/app/libraries/RainLoop/Config/Application.php b/snappymail/v/0.0.0/app/libraries/RainLoop/Config/Application.php index aa479feaa5..1d2c6489f5 100644 --- a/snappymail/v/0.0.0/app/libraries/RainLoop/Config/Application.php +++ b/snappymail/v/0.0.0/app/libraries/RainLoop/Config/Application.php @@ -96,7 +96,7 @@ public function Set(string $sSectionKey, string $sParamKey, $mParamValue) : void { // Workarounds for the changed application structure if ('webmail' === $sSectionKey) { - if ('language_admin' === $sSectionKey) { + if ('language_admin' === $sParamKey) { $sSectionKey = 'admin_panel'; $sParamKey = 'language'; } @@ -137,6 +137,16 @@ public function Set(string $sSectionKey, string $sParamKey, $mParamValue) : void $sParamKey = 'json_response_write_limit'; } } + if ('language' === $sParamKey) { + $aLang = \SnappyMail\L10n::getLanguages('admin_panel' === $sSectionKey); + $sLanguage = \strtr($mParamValue, '_', '-'); + if (!\in_array($sLanguage, $aLang)) { + if (\str_contains($sLanguage, '-')) { + $sLanguage = \strtok($sLanguage, '-'); + } + } + $mParamValue = \in_array($sLanguage, $aLang) ? $sLanguage : 'en'; + } parent::Set($sSectionKey, $sParamKey, $mParamValue); } From 82fb6fe7e638a056537fed435c73443f744b233d Mon Sep 17 00:00:00 2001 From: cm-schl <63400209+cm-schl@users.noreply.github.com> Date: Tue, 28 May 2024 16:31:09 +0200 Subject: [PATCH 11/24] update readme and version number to 2.2.0 --- plugins/ldap-mail-accounts/README.md | 2 ++ plugins/ldap-mail-accounts/index.php | 6 +++--- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/plugins/ldap-mail-accounts/README.md b/plugins/ldap-mail-accounts/README.md index e0be1ba3a3..d26d6302dc 100644 --- a/plugins/ldap-mail-accounts/README.md +++ b/plugins/ldap-mail-accounts/README.md @@ -8,6 +8,8 @@ Version 2.0.0 changes the way additional mail accounts get their e-mail address: Now it is also possible to overwrite the mail address of the main account: if a user logs into SnappyMail with a username and SnappyMail added the configured default domain the mail address of the main account could have been some not existing address like "username@default-domain.com". This could have happend when using the Nextcloud SnappyMail integration that offers an automatic login using the Nextcloud username. The plugin now can be configured to overwrite the username or mail address used at login with a mail address found inside ldap. +Version 2.2.0 adds compatibility with SnappyMail 2.36.1 and later where some changes were introduced that made the plugin unusable. This version also adds the possibility to delete the .cryptkey file on evere login. For more information see the `Configuration` section below. + ### Configuration - Install and activate the plugin using the SnappyMail Admin Panel -> menu Extensions. - Click on the gear symbol beside the plugin to open the configration dialog. diff --git a/plugins/ldap-mail-accounts/index.php b/plugins/ldap-mail-accounts/index.php index 2abfedf04f..68d8025034 100644 --- a/plugins/ldap-mail-accounts/index.php +++ b/plugins/ldap-mail-accounts/index.php @@ -12,11 +12,11 @@ class LdapMailAccountsPlugin extends AbstractPlugin { const NAME = 'LDAP Mail Accounts', - VERSION = '2.1.1', + VERSION = '2.2.0', AUTHOR = 'cm-schl', URL = 'https://github.com/cm-sch', - RELEASE = '2024-03-16', - REQUIRED = '2.35.3', + RELEASE = '2024-05-28', + REQUIRED = '2.36.1', CATEGORY = 'Accounts', DESCRIPTION = 'Add additional mail accounts the SnappyMail user has access to by a LDAP query. Basing on the work of FWest98 (https://github.com/FWest98).'; From c6b9f2276b229f73ed69adf529f5319d7333449f Mon Sep 17 00:00:00 2001 From: the-djmaze <> Date: Tue, 28 May 2024 16:43:49 +0200 Subject: [PATCH 12/24] Small change to report bug template --- .github/ISSUE_TEMPLATE/bug_report.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md index d53d388edc..9986929649 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.md +++ b/.github/ISSUE_TEMPLATE/bug_report.md @@ -30,8 +30,9 @@ If applicable, add screenshots to help explain your problem. - SnappyMail Version: - Mode: [e.g. standalone, nextcloud, cyberpanel, docker] -**[Debug/logging information](https://github.com/the-djmaze/snappymail/wiki/FAQ#how-do-i-enable-logging)** -Place them here (few lines) or as attachments (many lines) +**Debug/logging information** +[Read here how to log](https://github.com/the-djmaze/snappymail/wiki/FAQ#how-do-i-enable-logging) +- [ ] I've placed them here (few lines) or as attachments (many lines) **Additional context** Add any other context about the problem here. From c2e558c9b1d2f7a2a10d11ef81f2e474de63f046 Mon Sep 17 00:00:00 2001 From: the-djmaze <> Date: Tue, 28 May 2024 17:45:47 +0200 Subject: [PATCH 13/24] Resolve #1611 --- dev/View/Popup/Compose.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dev/View/Popup/Compose.js b/dev/View/Popup/Compose.js index fbb7611a8f..467a3636fd 100644 --- a/dev/View/Popup/Compose.js +++ b/dev/View/Popup/Compose.js @@ -1601,7 +1601,7 @@ export class ComposePopupView extends AbstractViewPopup { ); if (null != pass) { params.signPassphrase = pass.password; -// pass.remember && Passphrases.handle(identity, pass.password); + pass.remember && Passphrases.handle(identity, pass.password); } else { sign = false; } From 6d15cabfe53df4102191097256fd307ac4809f86 Mon Sep 17 00:00:00 2001 From: the-djmaze <> Date: Tue, 28 May 2024 17:50:56 +0200 Subject: [PATCH 14/24] Improved signing messages by allowing to choose between the options --- dev/View/Popup/Compose.js | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/dev/View/Popup/Compose.js b/dev/View/Popup/Compose.js index 467a3636fd..b8f953ccda 100644 --- a/dev/View/Popup/Compose.js +++ b/dev/View/Popup/Compose.js @@ -500,7 +500,7 @@ export class ComposePopupView extends AbstractViewPopup { this.sendError(true); this.sendErrorDesc( getNotification(iError, data?.ErrorMessage, Notifications.CantSendMessage) - + "\n" + data?.ErrorMessageAdditional + + "\n" + (data?.ErrorMessageAdditional || data?.ErrorMessage) ); }; try { @@ -535,9 +535,13 @@ export class ComposePopupView extends AbstractViewPopup { } this.savedErrorDesc(msg); } else { - params.signPassphrase && Passphrases.delete(identity); this.sendError(true); sendFailed(iError, data); + // Remove remembered passphrase as it could be wrong + let key = ('S/MIME' === params.sign) ? identity : null; + params.signFingerprint + && this.signOptions.forEach(option => ('GnuPG' === option[0]) && (key = option[1])); + key && Passphrases.delete(key); } } else { if (arrayLength(this.aDraftInfo) > 0) { @@ -1546,12 +1550,11 @@ export class ComposePopupView extends AbstractViewPopup { alternative.children.push(data); data = alternative; } - let sign = true; + let isSigned = false; for (let i = 0; i < signOptions.length; ++i) { if ('OpenPGP' == signOptions[i][0]) { try { // Doesn't sign attachments - params.html = params.plain = ''; let signed = new MimePart; signed.headers['Content-Type'] = 'multipart/signed; micalg="pgp-sha256"; protocol="application/pgp-signature"'; @@ -1562,6 +1565,8 @@ export class ComposePopupView extends AbstractViewPopup { signature.headers['Content-Transfer-Encoding'] = '7Bit'; signature.body = await OpenPGPUserStore.sign(data.toString(), signOptions[i][1], 1); signed.children.push(signature); + isSigned = true; + params.html = params.plain = ''; params.signed = signed.toString(); params.boundary = signed.boundary; data = signed; @@ -1569,13 +1574,11 @@ export class ComposePopupView extends AbstractViewPopup { Object.entries(PgpUserStore.getPublicKeyOfEmails([getEmail(this.from())]) || {}) .forEach(([k,v]) => params.publicKey = v); */ + break; } catch (e) { - sign = false; console.error(e); } - break; - } - if ('GnuPG' == signOptions[i][0]) { + } else if ('GnuPG' == signOptions[i][0]) { // TODO: sign in PHP fails let pass = await GnuPGUserStore.sign(signOptions[i][1]); if (null != pass) { @@ -1583,12 +1586,10 @@ export class ComposePopupView extends AbstractViewPopup { params.signFingerprint = signOptions[i][1].fingerprint; params.signPassphrase = pass; // params.attachPublicKey = false; - } else { - sign = false; + isSigned = true; + break; } - break; - } - if ('S/MIME' == signOptions[i][0]) { + } else if ('S/MIME' == signOptions[i][0]) { // TODO: sign in PHP fails params.sign = 'S/MIME'; // params.signCertificate = identity.smimeCertificate(); @@ -1602,13 +1603,12 @@ export class ComposePopupView extends AbstractViewPopup { if (null != pass) { params.signPassphrase = pass.password; pass.remember && Passphrases.handle(identity, pass.password); - } else { - sign = false; + isSigned = true; } } } } - if (signOptions.length && !sign) { + if (signOptions.length && !isSigned) { throw 'Signing failed'; } From 44c040707cfee922dec65bd82d874ecb2253639a Mon Sep 17 00:00:00 2001 From: Avinash Gusain Date: Fri, 31 May 2024 11:40:31 +0530 Subject: [PATCH 15/24] access token updated listener --- .../snappymail/lib/AppInfo/Application.php | 3 ++ .../Listeners/AccessTokenUpdatedListener.php | 45 +++++++++++++++++++ 2 files changed, 48 insertions(+) create mode 100644 integrations/nextcloud/snappymail/lib/Listeners/AccessTokenUpdatedListener.php diff --git a/integrations/nextcloud/snappymail/lib/AppInfo/Application.php b/integrations/nextcloud/snappymail/lib/AppInfo/Application.php index df40033cf1..d764520ca1 100644 --- a/integrations/nextcloud/snappymail/lib/AppInfo/Application.php +++ b/integrations/nextcloud/snappymail/lib/AppInfo/Application.php @@ -7,6 +7,7 @@ use OCA\SnappyMail\Controller\PageController; use OCA\SnappyMail\Dashboard\UnreadMailWidget; use OCA\SnappyMail\Search\Provider; +use OCA\SnappyMail\Listeners\AccessTokenUpdatedListener; use OCP\AppFramework\App; use OCP\AppFramework\Bootstrap\IBootstrap; @@ -16,6 +17,7 @@ use OCP\IUser; use OCP\User\Events\PostLoginEvent; use OCP\User\Events\BeforeUserLoggedOutEvent; +use OCA\OIDCLogin\Events\AccessTokenUpdatedEvent; class Application extends App implements IBootstrap { @@ -62,6 +64,7 @@ public function register(IRegistrationContext $context): void ); $context->registerSearchProvider(Provider::class); + $context->registerEventListener(AccessTokenUpdatedEvent::class, AccessTokenUpdatedListener::class); // TODO: Not working yet, needs a Vue UI // $context->registerDashboardWidget(UnreadMailWidget::class); diff --git a/integrations/nextcloud/snappymail/lib/Listeners/AccessTokenUpdatedListener.php b/integrations/nextcloud/snappymail/lib/Listeners/AccessTokenUpdatedListener.php new file mode 100644 index 0000000000..7b94359a72 --- /dev/null +++ b/integrations/nextcloud/snappymail/lib/Listeners/AccessTokenUpdatedListener.php @@ -0,0 +1,45 @@ +userSession = $userSession; + $this->session = $session; + $this->appManager = $appManager; + } + + public function handle(Event $event): void { + if (!($event instanceof AccessTokenUpdatedEvent) || !$this->userSession->isLoggedIn() || !$this->session->exists('is_oidc')) { + return; + } + // just-in-case checks(also maybe useful for selfhosters) + if (!$this->appManager->isEnabledForUser(self::SNAPPYMAIL_APP_ID) || !$this->appManager->isEnabledForUser(self::OIDC_LOGIN_APP_ID)) { + return; + } + $accessToken = $event->getAccessToken(); + if (!$accessToken) { + return; + } + + $username = $this->userSession->getUser()->getUID(); + $this->session->set('snappymail-nc-uid', $username); + } +} From 1acaa5d542a688c39337c3e547fed85a2d38bdf0 Mon Sep 17 00:00:00 2001 From: the-djmaze <> Date: Mon, 3 Jun 2024 12:41:29 +0200 Subject: [PATCH 16/24] Prepare for #1606 --- dev/View/Popup/AdvancedSearch.js | 11 +++++------ snappymail/v/0.0.0/app/localization/ar/user.json | 12 ++++++------ snappymail/v/0.0.0/app/localization/be/user.json | 12 ++++++------ snappymail/v/0.0.0/app/localization/bg/user.json | 12 ++++++------ snappymail/v/0.0.0/app/localization/cs/user.json | 12 ++++++------ snappymail/v/0.0.0/app/localization/da/user.json | 12 ++++++------ snappymail/v/0.0.0/app/localization/de/user.json | 12 ++++++------ snappymail/v/0.0.0/app/localization/el/user.json | 12 ++++++------ snappymail/v/0.0.0/app/localization/en/user.json | 12 ++++++------ snappymail/v/0.0.0/app/localization/es/user.json | 12 ++++++------ snappymail/v/0.0.0/app/localization/et/user.json | 12 ++++++------ snappymail/v/0.0.0/app/localization/eu/user.json | 12 ++++++------ snappymail/v/0.0.0/app/localization/fa/user.json | 12 ++++++------ snappymail/v/0.0.0/app/localization/fi/user.json | 12 ++++++------ snappymail/v/0.0.0/app/localization/fr/user.json | 12 ++++++------ snappymail/v/0.0.0/app/localization/hu/user.json | 12 ++++++------ snappymail/v/0.0.0/app/localization/id/user.json | 12 ++++++------ snappymail/v/0.0.0/app/localization/is/user.json | 12 ++++++------ snappymail/v/0.0.0/app/localization/it/user.json | 12 ++++++------ snappymail/v/0.0.0/app/localization/ja/user.json | 12 ++++++------ snappymail/v/0.0.0/app/localization/ko/user.json | 12 ++++++------ snappymail/v/0.0.0/app/localization/lt/user.json | 12 ++++++------ snappymail/v/0.0.0/app/localization/lv/user.json | 12 ++++++------ snappymail/v/0.0.0/app/localization/nb/user.json | 12 ++++++------ snappymail/v/0.0.0/app/localization/nl/user.json | 12 ++++++------ snappymail/v/0.0.0/app/localization/pl/user.json | 12 ++++++------ snappymail/v/0.0.0/app/localization/pt-BR/user.json | 12 ++++++------ snappymail/v/0.0.0/app/localization/pt/user.json | 12 ++++++------ snappymail/v/0.0.0/app/localization/ro/user.json | 12 ++++++------ snappymail/v/0.0.0/app/localization/ru/user.json | 12 ++++++------ snappymail/v/0.0.0/app/localization/sk/user.json | 12 ++++++------ snappymail/v/0.0.0/app/localization/sl/user.json | 12 ++++++------ snappymail/v/0.0.0/app/localization/sv/user.json | 12 ++++++------ snappymail/v/0.0.0/app/localization/tr/user.json | 12 ++++++------ snappymail/v/0.0.0/app/localization/uk/user.json | 12 ++++++------ snappymail/v/0.0.0/app/localization/vi/user.json | 12 ++++++------ snappymail/v/0.0.0/app/localization/zh-TW/user.json | 12 ++++++------ snappymail/v/0.0.0/app/localization/zh/user.json | 12 ++++++------ 38 files changed, 227 insertions(+), 228 deletions(-) diff --git a/dev/View/Popup/AdvancedSearch.js b/dev/View/Popup/AdvancedSearch.js index d3b084bbee..64dc6bf9a3 100644 --- a/dev/View/Popup/AdvancedSearch.js +++ b/dev/View/Popup/AdvancedSearch.js @@ -18,7 +18,7 @@ export class AdvancedSearchPopupView extends AbstractViewPopup { text: '', keyword: '', repliedValue: -1, - selectedDateValue: -1, + selectedDateValue: 0, selectedTreeValue: '', hasAttachment: false, @@ -55,9 +55,9 @@ export class AdvancedSearchPopupView extends AbstractViewPopup { selectedDates: () => { translateTrigger(); - let prefix = 'SEARCH/DATE_'; + let prefix = 'SEARCH/SINCE_'; return [ - { id: -1, name: i18n(prefix + 'ALL') }, + { id: 0, name: i18n('SEARCH/DATE_ALL') }, { id: 3, name: i18n(prefix + '3_DAYS') }, { id: 7, name: i18n(prefix + '7_DAYS') }, { id: 30, name: i18n(prefix + 'MONTH') }, @@ -100,7 +100,7 @@ export class AdvancedSearchPopupView extends AbstractViewPopup { append('text', self.text().trim()); append('keyword', self.keyword()); append('in', self.selectedTreeValue()); - if (-1 < self.selectedDateValue()) { + if (0 < self.selectedDateValue()) { let d = new Date(); d.setDate(d.getDate() - self.selectedDateValue()); append('since', d.toISOString().split('T')[0]); @@ -136,8 +136,7 @@ export class AdvancedSearchPopupView extends AbstractViewPopup { self.text(pString(params.get('text'))); self.keyword(pString(params.get('keyword'))); self.selectedTreeValue(pString(params.get('in'))); -// self.selectedDateValue(params.get('since')); - self.selectedDateValue(-1); + self.selectedDateValue(0); self.hasAttachment(params.has('attachment')); self.starred(params.has('flagged')); self.unseen(params.has('unseen')); diff --git a/snappymail/v/0.0.0/app/localization/ar/user.json b/snappymail/v/0.0.0/app/localization/ar/user.json index 3380bc39bb..04cc8a0109 100644 --- a/snappymail/v/0.0.0/app/localization/ar/user.json +++ b/snappymail/v/0.0.0/app/localization/ar/user.json @@ -59,12 +59,12 @@ "UNSEEN": "لم يقرأ", "DATE": "التاريخ", "DATE_ALL": "الكل", - "DATE_3_DAYS": "منذ 3 أيام", - "DATE_7_DAYS": "منذ أسبوع", - "DATE_MONTH": "منذ شهر", - "DATE_3_MONTHS": "منذ 3 أشهر", - "DATE_6_MONTHS": "منذ 6 أشهر", - "DATE_YEAR": "منذ سنة", + "SINCE_3_DAYS": "منذ 3 أيام", + "SINCE_7_DAYS": "منذ أسبوع", + "SINCE_MONTH": "منذ شهر", + "SINCE_3_MONTHS": "منذ 3 أشهر", + "SINCE_6_MONTHS": "منذ 6 أشهر", + "SINCE_YEAR": "منذ سنة", "SUBFOLDERS": "Subfolders", "SUBFOLDERS_NONE": "None", "SUBFOLDERS_SUBTREE": "All", diff --git a/snappymail/v/0.0.0/app/localization/be/user.json b/snappymail/v/0.0.0/app/localization/be/user.json index 80de124877..ef91525b8d 100644 --- a/snappymail/v/0.0.0/app/localization/be/user.json +++ b/snappymail/v/0.0.0/app/localization/be/user.json @@ -59,12 +59,12 @@ "UNSEEN": "Непрачытаныя", "DATE": "Дата", "DATE_ALL": "За ўвесь час", - "DATE_3_DAYS": "За тры дні", - "DATE_7_DAYS": "За тыдзень", - "DATE_MONTH": "За месяц", - "DATE_3_MONTHS": "За 3 месяцы", - "DATE_6_MONTHS": "За паўгода", - "DATE_YEAR": "За год", + "SINCE_3_DAYS": "За тры дні", + "SINCE_7_DAYS": "За тыдзень", + "SINCE_MONTH": "За месяц", + "SINCE_3_MONTHS": "За 3 месяцы", + "SINCE_6_MONTHS": "За паўгода", + "SINCE_YEAR": "За год", "SUBFOLDERS": "Падкаталогі", "SUBFOLDERS_NONE": "Нічога", "SUBFOLDERS_SUBTREE": "Усе", diff --git a/snappymail/v/0.0.0/app/localization/bg/user.json b/snappymail/v/0.0.0/app/localization/bg/user.json index eda2431bd5..732cd817ff 100644 --- a/snappymail/v/0.0.0/app/localization/bg/user.json +++ b/snappymail/v/0.0.0/app/localization/bg/user.json @@ -59,12 +59,12 @@ "UNSEEN": "Невидяно", "DATE": "Дата", "DATE_ALL": "Всички", - "DATE_3_DAYS": "До 3 дена", - "DATE_7_DAYS": "До 1 седмица", - "DATE_MONTH": "До 1 месец", - "DATE_3_MONTHS": "До 3 месеца", - "DATE_6_MONTHS": "До 6 месеца", - "DATE_YEAR": "До 1 година", + "SINCE_3_DAYS": "До 3 дена", + "SINCE_7_DAYS": "До 1 седмица", + "SINCE_MONTH": "До 1 месец", + "SINCE_3_MONTHS": "До 3 месеца", + "SINCE_6_MONTHS": "До 6 месеца", + "SINCE_YEAR": "До 1 година", "SUBFOLDERS": "Subfolders", "SUBFOLDERS_NONE": "None", "SUBFOLDERS_SUBTREE": "All", diff --git a/snappymail/v/0.0.0/app/localization/cs/user.json b/snappymail/v/0.0.0/app/localization/cs/user.json index 18ee120c39..13f12f16bd 100644 --- a/snappymail/v/0.0.0/app/localization/cs/user.json +++ b/snappymail/v/0.0.0/app/localization/cs/user.json @@ -59,12 +59,12 @@ "UNSEEN": "Nepřečtené", "DATE": "Datum", "DATE_ALL": "Kdykoliv", - "DATE_3_DAYS": "Ne starší než 3 dny", - "DATE_7_DAYS": "Ne starší než týden", - "DATE_MONTH": "Ne starší než měsíc", - "DATE_3_MONTHS": "Ne starší než 3 měsíce", - "DATE_6_MONTHS": "Ne starší než 6 měsíců", - "DATE_YEAR": "Ne starší než 1 rok", + "SINCE_3_DAYS": "Ne starší než 3 dny", + "SINCE_7_DAYS": "Ne starší než týden", + "SINCE_MONTH": "Ne starší než měsíc", + "SINCE_3_MONTHS": "Ne starší než 3 měsíce", + "SINCE_6_MONTHS": "Ne starší než 6 měsíců", + "SINCE_YEAR": "Ne starší než 1 rok", "SUBFOLDERS": "Subfolders", "SUBFOLDERS_NONE": "None", "SUBFOLDERS_SUBTREE": "All", diff --git a/snappymail/v/0.0.0/app/localization/da/user.json b/snappymail/v/0.0.0/app/localization/da/user.json index e5c0faf79c..fde1095192 100644 --- a/snappymail/v/0.0.0/app/localization/da/user.json +++ b/snappymail/v/0.0.0/app/localization/da/user.json @@ -59,12 +59,12 @@ "UNSEEN": "Ulæst", "DATE": "Dato", "DATE_ALL": "Alle", - "DATE_3_DAYS": "Nyere end 3 dage", - "DATE_7_DAYS": "Nyere end 1 uge", - "DATE_MONTH": "Nyere end 1 måned", - "DATE_3_MONTHS": "Nyere end 3 måneder", - "DATE_6_MONTHS": "Nyere end 6 måneder", - "DATE_YEAR": "Nyere end 1 år", + "SINCE_3_DAYS": "Nyere end 3 dage", + "SINCE_7_DAYS": "Nyere end 1 uge", + "SINCE_MONTH": "Nyere end 1 måned", + "SINCE_3_MONTHS": "Nyere end 3 måneder", + "SINCE_6_MONTHS": "Nyere end 6 måneder", + "SINCE_YEAR": "Nyere end 1 år", "SUBFOLDERS": "Subfolders", "SUBFOLDERS_NONE": "None", "SUBFOLDERS_SUBTREE": "All", diff --git a/snappymail/v/0.0.0/app/localization/de/user.json b/snappymail/v/0.0.0/app/localization/de/user.json index 2a035171c9..2aaf55d7c3 100644 --- a/snappymail/v/0.0.0/app/localization/de/user.json +++ b/snappymail/v/0.0.0/app/localization/de/user.json @@ -59,12 +59,12 @@ "UNSEEN": "Ungelesen", "DATE": "Datum", "DATE_ALL": "Alle", - "DATE_3_DAYS": "Nicht älter als 3 Tage", - "DATE_7_DAYS": "Nicht älter als 1 Woche", - "DATE_MONTH": "Nicht älter als 1 Monat", - "DATE_3_MONTHS": "Nicht älter als 3 Monate", - "DATE_6_MONTHS": "Nicht älter als 6 Monate", - "DATE_YEAR": "Nicht älter als 1 Jahr", + "SINCE_3_DAYS": "Nicht älter als 3 Tage", + "SINCE_7_DAYS": "Nicht älter als 1 Woche", + "SINCE_MONTH": "Nicht älter als 1 Monat", + "SINCE_3_MONTHS": "Nicht älter als 3 Monate", + "SINCE_6_MONTHS": "Nicht älter als 6 Monate", + "SINCE_YEAR": "Nicht älter als 1 Jahr", "SUBFOLDERS": "Unterordner", "SUBFOLDERS_NONE": "Keine", "SUBFOLDERS_SUBTREE": "Alle", diff --git a/snappymail/v/0.0.0/app/localization/el/user.json b/snappymail/v/0.0.0/app/localization/el/user.json index 5b18f83361..8e10deab01 100644 --- a/snappymail/v/0.0.0/app/localization/el/user.json +++ b/snappymail/v/0.0.0/app/localization/el/user.json @@ -59,12 +59,12 @@ "UNSEEN": "Δεν έχουν διαβαστεί", "DATE": "Ημερομηνία", "DATE_ALL": "Όλα", - "DATE_3_DAYS": "Έως 3 ημέρες πρίν", - "DATE_7_DAYS": "Έως 1 εβδομάδα πριν", - "DATE_MONTH": "Έως 1 μήνα πριν", - "DATE_3_MONTHS": "Έως 3 μήνες πριν", - "DATE_6_MONTHS": "Έως 6 μήνες πριν", - "DATE_YEAR": "Έως 1 χρόνο πριν", + "SINCE_3_DAYS": "Έως 3 ημέρες πρίν", + "SINCE_7_DAYS": "Έως 1 εβδομάδα πριν", + "SINCE_MONTH": "Έως 1 μήνα πριν", + "SINCE_3_MONTHS": "Έως 3 μήνες πριν", + "SINCE_6_MONTHS": "Έως 6 μήνες πριν", + "SINCE_YEAR": "Έως 1 χρόνο πριν", "SUBFOLDERS": "Subfolders", "SUBFOLDERS_NONE": "None", "SUBFOLDERS_SUBTREE": "All", diff --git a/snappymail/v/0.0.0/app/localization/en/user.json b/snappymail/v/0.0.0/app/localization/en/user.json index 813ff0d6a9..40100067e6 100644 --- a/snappymail/v/0.0.0/app/localization/en/user.json +++ b/snappymail/v/0.0.0/app/localization/en/user.json @@ -59,12 +59,12 @@ "UNSEEN": "Unseen", "DATE": "Date", "DATE_ALL": "All", - "DATE_3_DAYS": "Up to 3 days old", - "DATE_7_DAYS": "Up to 1 week old", - "DATE_MONTH": "Up to 1 month old", - "DATE_3_MONTHS": "Up to 3 months old", - "DATE_6_MONTHS": "Up to 6 months old", - "DATE_YEAR": "Up to 1 year old", + "SINCE_3_DAYS": "Up to 3 days old", + "SINCE_7_DAYS": "Up to 1 week old", + "SINCE_MONTH": "Up to 1 month old", + "SINCE_3_MONTHS": "Up to 3 months old", + "SINCE_6_MONTHS": "Up to 6 months old", + "SINCE_YEAR": "Up to 1 year old", "SUBFOLDERS": "Subfolders", "SUBFOLDERS_NONE": "None", "SUBFOLDERS_SUBTREE": "All", diff --git a/snappymail/v/0.0.0/app/localization/es/user.json b/snappymail/v/0.0.0/app/localization/es/user.json index ce45058d05..87e859f425 100644 --- a/snappymail/v/0.0.0/app/localization/es/user.json +++ b/snappymail/v/0.0.0/app/localization/es/user.json @@ -59,12 +59,12 @@ "UNSEEN": "No leído", "DATE": "Fecha", "DATE_ALL": "Todo", - "DATE_3_DAYS": "Hasta 3 días de antigüedad", - "DATE_7_DAYS": "Hasta una semana de antigüedad", - "DATE_MONTH": "Hasta 1 mes de antigüedad", - "DATE_3_MONTHS": "Hasta 3 meses de antigüedad", - "DATE_6_MONTHS": "Hasta 6 meses de antigüedad", - "DATE_YEAR": "Hasta 1 año de antigüedad", + "SINCE_3_DAYS": "Hasta 3 días de antigüedad", + "SINCE_7_DAYS": "Hasta una semana de antigüedad", + "SINCE_MONTH": "Hasta 1 mes de antigüedad", + "SINCE_3_MONTHS": "Hasta 3 meses de antigüedad", + "SINCE_6_MONTHS": "Hasta 6 meses de antigüedad", + "SINCE_YEAR": "Hasta 1 año de antigüedad", "SUBFOLDERS": "Subfolders", "SUBFOLDERS_NONE": "None", "SUBFOLDERS_SUBTREE": "All", diff --git a/snappymail/v/0.0.0/app/localization/et/user.json b/snappymail/v/0.0.0/app/localization/et/user.json index b46fcbde3d..23e71b0a9b 100644 --- a/snappymail/v/0.0.0/app/localization/et/user.json +++ b/snappymail/v/0.0.0/app/localization/et/user.json @@ -59,12 +59,12 @@ "UNSEEN": "Lugemata", "DATE": "Kuupäev", "DATE_ALL": "Kõik", - "DATE_3_DAYS": "Kuni 3 päeva vanune", - "DATE_7_DAYS": "Kuni 1 nädal vanune", - "DATE_MONTH": "Kuni 1 kuu vanune", - "DATE_3_MONTHS": "Kuni 3 kuu vanune ", - "DATE_6_MONTHS": "Kuni 6 kuu vanune", - "DATE_YEAR": "Kuni 1 aasta vanune", + "SINCE_3_DAYS": "Kuni 3 päeva vanune", + "SINCE_7_DAYS": "Kuni 1 nädal vanune", + "SINCE_MONTH": "Kuni 1 kuu vanune", + "SINCE_3_MONTHS": "Kuni 3 kuu vanune ", + "SINCE_6_MONTHS": "Kuni 6 kuu vanune", + "SINCE_YEAR": "Kuni 1 aasta vanune", "SUBFOLDERS": "Subfolders", "SUBFOLDERS_NONE": "None", "SUBFOLDERS_SUBTREE": "All", diff --git a/snappymail/v/0.0.0/app/localization/eu/user.json b/snappymail/v/0.0.0/app/localization/eu/user.json index ad269ed8fa..699295a524 100644 --- a/snappymail/v/0.0.0/app/localization/eu/user.json +++ b/snappymail/v/0.0.0/app/localization/eu/user.json @@ -59,12 +59,12 @@ "UNSEEN": "Irakurri gabe", "DATE": "Data", "DATE_ALL": "Denak", - "DATE_3_DAYS": "3 egun arterakoak", - "DATE_7_DAYS": "Astebetako arterakoak", - "DATE_MONTH": "Hilabete arterakoak", - "DATE_3_MONTHS": "3 hilabete arterakoak", - "DATE_6_MONTHS": "6 hilabete arterakoak", - "DATE_YEAR": "Urtebete arterakoak", + "SINCE_3_DAYS": "3 egun arterakoak", + "SINCE_7_DAYS": "Astebetako arterakoak", + "SINCE_MONTH": "Hilabete arterakoak", + "SINCE_3_MONTHS": "3 hilabete arterakoak", + "SINCE_6_MONTHS": "6 hilabete arterakoak", + "SINCE_YEAR": "Urtebete arterakoak", "SUBFOLDERS": "Azpikarpetak", "SUBFOLDERS_NONE": "Bat ere ez", "SUBFOLDERS_SUBTREE": "Denak", diff --git a/snappymail/v/0.0.0/app/localization/fa/user.json b/snappymail/v/0.0.0/app/localization/fa/user.json index 11b3ffbc23..8a5c6d0a8d 100644 --- a/snappymail/v/0.0.0/app/localization/fa/user.json +++ b/snappymail/v/0.0.0/app/localization/fa/user.json @@ -59,12 +59,12 @@ "UNSEEN": "خوانده نشده", "DATE": "تاریخ", "DATE_ALL": "همه", - "DATE_3_DAYS": "تا 3 روز گذشته", - "DATE_7_DAYS": "تا 1 هفته گذشته", - "DATE_MONTH": "تا 1 ماه گذشته", - "DATE_3_MONTHS": "تا 3 ماه گذشته", - "DATE_6_MONTHS": "تا 6 ماه گذشته", - "DATE_YEAR": "تا 1 سال گذشته", + "SINCE_3_DAYS": "تا 3 روز گذشته", + "SINCE_7_DAYS": "تا 1 هفته گذشته", + "SINCE_MONTH": "تا 1 ماه گذشته", + "SINCE_3_MONTHS": "تا 3 ماه گذشته", + "SINCE_6_MONTHS": "تا 6 ماه گذشته", + "SINCE_YEAR": "تا 1 سال گذشته", "SUBFOLDERS": "Subfolders", "SUBFOLDERS_NONE": "None", "SUBFOLDERS_SUBTREE": "All", diff --git a/snappymail/v/0.0.0/app/localization/fi/user.json b/snappymail/v/0.0.0/app/localization/fi/user.json index 06379e0e25..16099cca89 100644 --- a/snappymail/v/0.0.0/app/localization/fi/user.json +++ b/snappymail/v/0.0.0/app/localization/fi/user.json @@ -59,12 +59,12 @@ "UNSEEN": "Ei luettu", "DATE": "Pvm", "DATE_ALL": "Kaikki", - "DATE_3_DAYS": "3 päivän ajalta", - "DATE_7_DAYS": "1 viikon ajalta", - "DATE_MONTH": "1 kk ajalta", - "DATE_3_MONTHS": "3 kk ajalta", - "DATE_6_MONTHS": "6 kk ajalta", - "DATE_YEAR": "1 vuoden ajalta", + "SINCE_3_DAYS": "3 päivän ajalta", + "SINCE_7_DAYS": "1 viikon ajalta", + "SINCE_MONTH": "1 kk ajalta", + "SINCE_3_MONTHS": "3 kk ajalta", + "SINCE_6_MONTHS": "6 kk ajalta", + "SINCE_YEAR": "1 vuoden ajalta", "SUBFOLDERS": "Subfolders", "SUBFOLDERS_NONE": "None", "SUBFOLDERS_SUBTREE": "All", diff --git a/snappymail/v/0.0.0/app/localization/fr/user.json b/snappymail/v/0.0.0/app/localization/fr/user.json index eabca47b5f..0fb96e8003 100644 --- a/snappymail/v/0.0.0/app/localization/fr/user.json +++ b/snappymail/v/0.0.0/app/localization/fr/user.json @@ -59,12 +59,12 @@ "UNSEEN": "Non lu", "DATE": "Date", "DATE_ALL": "Tous", - "DATE_3_DAYS": "Jusqu'à 3 jours", - "DATE_7_DAYS": "Jusqu'à 1 semaine", - "DATE_MONTH": "Jusqu'à 1 mois", - "DATE_3_MONTHS": "Jusqu'à 3 mois", - "DATE_6_MONTHS": "Jusqu'à 6 mois", - "DATE_YEAR": "Jusqu'à 1 an", + "SINCE_3_DAYS": "Jusqu'à 3 jours", + "SINCE_7_DAYS": "Jusqu'à 1 semaine", + "SINCE_MONTH": "Jusqu'à 1 mois", + "SINCE_3_MONTHS": "Jusqu'à 3 mois", + "SINCE_6_MONTHS": "Jusqu'à 6 mois", + "SINCE_YEAR": "Jusqu'à 1 an", "SUBFOLDERS": "Sous-dossiers", "SUBFOLDERS_NONE": "Aucun", "SUBFOLDERS_SUBTREE": "Tous", diff --git a/snappymail/v/0.0.0/app/localization/hu/user.json b/snappymail/v/0.0.0/app/localization/hu/user.json index 21626341e8..586dc6787c 100644 --- a/snappymail/v/0.0.0/app/localization/hu/user.json +++ b/snappymail/v/0.0.0/app/localization/hu/user.json @@ -59,12 +59,12 @@ "UNSEEN": "Észrevétlen", "DATE": "Dátum", "DATE_ALL": "Összes", - "DATE_3_DAYS": "Legfeljebb 3 napos", - "DATE_7_DAYS": "Legfeljebb 1 hetes", - "DATE_MONTH": "Legfeljebb 1 hónapos", - "DATE_3_MONTHS": "Legfeljebb 3 hónapos", - "DATE_6_MONTHS": "Legfeljebb 6 hónapos", - "DATE_YEAR": "Legfeljebb 1 éves", + "SINCE_3_DAYS": "Legfeljebb 3 napos", + "SINCE_7_DAYS": "Legfeljebb 1 hetes", + "SINCE_MONTH": "Legfeljebb 1 hónapos", + "SINCE_3_MONTHS": "Legfeljebb 3 hónapos", + "SINCE_6_MONTHS": "Legfeljebb 6 hónapos", + "SINCE_YEAR": "Legfeljebb 1 éves", "SUBFOLDERS": "Subfolders", "SUBFOLDERS_NONE": "None", "SUBFOLDERS_SUBTREE": "All", diff --git a/snappymail/v/0.0.0/app/localization/id/user.json b/snappymail/v/0.0.0/app/localization/id/user.json index da618f7184..8508c9c141 100644 --- a/snappymail/v/0.0.0/app/localization/id/user.json +++ b/snappymail/v/0.0.0/app/localization/id/user.json @@ -59,12 +59,12 @@ "UNSEEN": "Belum dilihat", "DATE": "Tanggal", "DATE_ALL": "Semua", - "DATE_3_DAYS": "Sudah 3 hari lalu", - "DATE_7_DAYS": "Sudah 1 bulan lalu", - "DATE_MONTH": "Lebih dari 1 bulan lalu", - "DATE_3_MONTHS": "Lebih dari 3 bulan lalu", - "DATE_6_MONTHS": "Lebih dari 6 bulan lalu", - "DATE_YEAR": "Lebih dari 1 tahun lalu", + "SINCE_3_DAYS": "Sudah 3 hari lalu", + "SINCE_7_DAYS": "Sudah 1 bulan lalu", + "SINCE_MONTH": "Lebih dari 1 bulan lalu", + "SINCE_3_MONTHS": "Lebih dari 3 bulan lalu", + "SINCE_6_MONTHS": "Lebih dari 6 bulan lalu", + "SINCE_YEAR": "Lebih dari 1 tahun lalu", "SUBFOLDERS": "Subfolders", "SUBFOLDERS_NONE": "None", "SUBFOLDERS_SUBTREE": "All", diff --git a/snappymail/v/0.0.0/app/localization/is/user.json b/snappymail/v/0.0.0/app/localization/is/user.json index 89002e52ad..df3dbd34d7 100644 --- a/snappymail/v/0.0.0/app/localization/is/user.json +++ b/snappymail/v/0.0.0/app/localization/is/user.json @@ -59,12 +59,12 @@ "UNSEEN": "Ólesið", "DATE": "Dagsetning", "DATE_ALL": "Allt", - "DATE_3_DAYS": "Allt að 3 daga gömlu", - "DATE_7_DAYS": "Allt að viku gömlu", - "DATE_MONTH": "Allt að mánaðar gömlu", - "DATE_3_MONTHS": "Allt að 3 mánaða gömlu", - "DATE_6_MONTHS": "Allt að 6 mánaða gömlu", - "DATE_YEAR": "Allt að 1 árs gömlu", + "SINCE_3_DAYS": "Allt að 3 daga gömlu", + "SINCE_7_DAYS": "Allt að viku gömlu", + "SINCE_MONTH": "Allt að mánaðar gömlu", + "SINCE_3_MONTHS": "Allt að 3 mánaða gömlu", + "SINCE_6_MONTHS": "Allt að 6 mánaða gömlu", + "SINCE_YEAR": "Allt að 1 árs gömlu", "SUBFOLDERS": "Subfolders", "SUBFOLDERS_NONE": "None", "SUBFOLDERS_SUBTREE": "All", diff --git a/snappymail/v/0.0.0/app/localization/it/user.json b/snappymail/v/0.0.0/app/localization/it/user.json index 74bc2cc1d5..e347932da4 100644 --- a/snappymail/v/0.0.0/app/localization/it/user.json +++ b/snappymail/v/0.0.0/app/localization/it/user.json @@ -59,12 +59,12 @@ "UNSEEN": "Non letti", "DATE": "Data", "DATE_ALL": "Tutte", - "DATE_3_DAYS": "Meno di 3 giorni fa", - "DATE_7_DAYS": "Meno di una settimana fa", - "DATE_MONTH": "Meno di un mese fa", - "DATE_3_MONTHS": "Meno di 3 mesi fa", - "DATE_6_MONTHS": "Meno di 6 mesi fa", - "DATE_YEAR": "Meno di un anno fa", + "SINCE_3_DAYS": "Meno di 3 giorni fa", + "SINCE_7_DAYS": "Meno di una settimana fa", + "SINCE_MONTH": "Meno di un mese fa", + "SINCE_3_MONTHS": "Meno di 3 mesi fa", + "SINCE_6_MONTHS": "Meno di 6 mesi fa", + "SINCE_YEAR": "Meno di un anno fa", "SUBFOLDERS": "Sottocartelle", "SUBFOLDERS_NONE": "Nessuna", "SUBFOLDERS_SUBTREE": "Tutte", diff --git a/snappymail/v/0.0.0/app/localization/ja/user.json b/snappymail/v/0.0.0/app/localization/ja/user.json index 0d704b7cc1..45a42f50fb 100644 --- a/snappymail/v/0.0.0/app/localization/ja/user.json +++ b/snappymail/v/0.0.0/app/localization/ja/user.json @@ -59,12 +59,12 @@ "UNSEEN": "未読メール", "DATE": "日付", "DATE_ALL": "全て", - "DATE_3_DAYS": "3日前まで", - "DATE_7_DAYS": "1週間前まで", - "DATE_MONTH": "1ヶ月前まで", - "DATE_3_MONTHS": "3ヶ月前まで", - "DATE_6_MONTHS": "6ヶ月前まで", - "DATE_YEAR": "1年前まで", + "SINCE_3_DAYS": "3日前まで", + "SINCE_7_DAYS": "1週間前まで", + "SINCE_MONTH": "1ヶ月前まで", + "SINCE_3_MONTHS": "3ヶ月前まで", + "SINCE_6_MONTHS": "6ヶ月前まで", + "SINCE_YEAR": "1年前まで", "SUBFOLDERS": "サブフォルダ", "SUBFOLDERS_NONE": "なし", "SUBFOLDERS_SUBTREE": "全て", diff --git a/snappymail/v/0.0.0/app/localization/ko/user.json b/snappymail/v/0.0.0/app/localization/ko/user.json index 80321277e9..fc2f4c729f 100644 --- a/snappymail/v/0.0.0/app/localization/ko/user.json +++ b/snappymail/v/0.0.0/app/localization/ko/user.json @@ -59,12 +59,12 @@ "UNSEEN": "읽지 않음", "DATE": "날짜", "DATE_ALL": "모두", - "DATE_3_DAYS": "3일 이내", - "DATE_7_DAYS": "1주일 이내", - "DATE_MONTH": "1개월 이내", - "DATE_3_MONTHS": "3개월 이내", - "DATE_6_MONTHS": "6개월 이내", - "DATE_YEAR": "1년 이내", + "SINCE_3_DAYS": "3일 이내", + "SINCE_7_DAYS": "1주일 이내", + "SINCE_MONTH": "1개월 이내", + "SINCE_3_MONTHS": "3개월 이내", + "SINCE_6_MONTHS": "6개월 이내", + "SINCE_YEAR": "1년 이내", "SUBFOLDERS": "Subfolders", "SUBFOLDERS_NONE": "None", "SUBFOLDERS_SUBTREE": "All", diff --git a/snappymail/v/0.0.0/app/localization/lt/user.json b/snappymail/v/0.0.0/app/localization/lt/user.json index 3ac12effb5..32c8bc3d7c 100644 --- a/snappymail/v/0.0.0/app/localization/lt/user.json +++ b/snappymail/v/0.0.0/app/localization/lt/user.json @@ -59,12 +59,12 @@ "UNSEEN": "Neskaitytas", "DATE": "Data", "DATE_ALL": "Visi", - "DATE_3_DAYS": "Nesenesni kaip 3 dienų", - "DATE_7_DAYS": "Nesenesni kaip 1 savaitės", - "DATE_MONTH": "Nesenesni kaip 1 mėnesio", - "DATE_3_MONTHS": "Nesenesni kaip 3 mėnesių", - "DATE_6_MONTHS": "Nesenesni kaip 6 mėnesių", - "DATE_YEAR": "Nesenesni kaip 1 metų", + "SINCE_3_DAYS": "Nesenesni kaip 3 dienų", + "SINCE_7_DAYS": "Nesenesni kaip 1 savaitės", + "SINCE_MONTH": "Nesenesni kaip 1 mėnesio", + "SINCE_3_MONTHS": "Nesenesni kaip 3 mėnesių", + "SINCE_6_MONTHS": "Nesenesni kaip 6 mėnesių", + "SINCE_YEAR": "Nesenesni kaip 1 metų", "SUBFOLDERS": "Subfolders", "SUBFOLDERS_NONE": "None", "SUBFOLDERS_SUBTREE": "All", diff --git a/snappymail/v/0.0.0/app/localization/lv/user.json b/snappymail/v/0.0.0/app/localization/lv/user.json index e1de0ada08..5d7fd96304 100644 --- a/snappymail/v/0.0.0/app/localization/lv/user.json +++ b/snappymail/v/0.0.0/app/localization/lv/user.json @@ -59,12 +59,12 @@ "UNSEEN": "Unseen", "DATE": "Datums", "DATE_ALL": "Viss periods", - "DATE_3_DAYS": "Līdz 3 dienas vecs", - "DATE_7_DAYS": "Līdz 1 nedēļu vecs", - "DATE_MONTH": "Līdz 1 mēnesi vecs", - "DATE_3_MONTHS": "Līdz 3 mēnešus vecs", - "DATE_6_MONTHS": "Līdz 6 mēnešus vecs", - "DATE_YEAR": "Līdz 1 gadu vecs", + "SINCE_3_DAYS": "Līdz 3 dienas vecs", + "SINCE_7_DAYS": "Līdz 1 nedēļu vecs", + "SINCE_MONTH": "Līdz 1 mēnesi vecs", + "SINCE_3_MONTHS": "Līdz 3 mēnešus vecs", + "SINCE_6_MONTHS": "Līdz 6 mēnešus vecs", + "SINCE_YEAR": "Līdz 1 gadu vecs", "SUBFOLDERS": "Subfolders", "SUBFOLDERS_NONE": "None", "SUBFOLDERS_SUBTREE": "All", diff --git a/snappymail/v/0.0.0/app/localization/nb/user.json b/snappymail/v/0.0.0/app/localization/nb/user.json index ddc3e66a35..0346726379 100644 --- a/snappymail/v/0.0.0/app/localization/nb/user.json +++ b/snappymail/v/0.0.0/app/localization/nb/user.json @@ -59,12 +59,12 @@ "UNSEEN": "Ulest", "DATE": "Dato", "DATE_ALL": "Alle", - "DATE_3_DAYS": "Inntil 3 dager gamle", - "DATE_7_DAYS": "Inntil 1 uke gamle", - "DATE_MONTH": "Inntil 1 måned gamle", - "DATE_3_MONTHS": "Inntil 3 måneder gamle", - "DATE_6_MONTHS": "Inntil 6 måneder gamle", - "DATE_YEAR": "Inntil 1 år gamle", + "SINCE_3_DAYS": "Inntil 3 dager gamle", + "SINCE_7_DAYS": "Inntil 1 uke gamle", + "SINCE_MONTH": "Inntil 1 måned gamle", + "SINCE_3_MONTHS": "Inntil 3 måneder gamle", + "SINCE_6_MONTHS": "Inntil 6 måneder gamle", + "SINCE_YEAR": "Inntil 1 år gamle", "SUBFOLDERS": "Subfolders", "SUBFOLDERS_NONE": "None", "SUBFOLDERS_SUBTREE": "Alle", diff --git a/snappymail/v/0.0.0/app/localization/nl/user.json b/snappymail/v/0.0.0/app/localization/nl/user.json index 881364adb6..431db9742d 100644 --- a/snappymail/v/0.0.0/app/localization/nl/user.json +++ b/snappymail/v/0.0.0/app/localization/nl/user.json @@ -59,12 +59,12 @@ "UNSEEN": "Ongelezen", "DATE": "Datum", "DATE_ALL": "Alles", - "DATE_3_DAYS": "Tot 3 dagen oud", - "DATE_7_DAYS": "Tot 1 week oud", - "DATE_MONTH": "Tot 1 maand oud", - "DATE_3_MONTHS": "Tot 3 maanden oud", - "DATE_6_MONTHS": "Tot 6 maanden oud", - "DATE_YEAR": "Tot 1 jaar oud", + "SINCE_3_DAYS": "Tot 3 dagen oud", + "SINCE_7_DAYS": "Tot 1 week oud", + "SINCE_MONTH": "Tot 1 maand oud", + "SINCE_3_MONTHS": "Tot 3 maanden oud", + "SINCE_6_MONTHS": "Tot 6 maanden oud", + "SINCE_YEAR": "Tot 1 jaar oud", "SUBFOLDERS": "Submappen", "SUBFOLDERS_NONE": "Geen", "SUBFOLDERS_SUBTREE": "Alle", diff --git a/snappymail/v/0.0.0/app/localization/pl/user.json b/snappymail/v/0.0.0/app/localization/pl/user.json index 0861b539e1..3a1f735fef 100644 --- a/snappymail/v/0.0.0/app/localization/pl/user.json +++ b/snappymail/v/0.0.0/app/localization/pl/user.json @@ -59,12 +59,12 @@ "UNSEEN": "Nieprzeczytana", "DATE": "Data", "DATE_ALL": "Wszystkie", - "DATE_3_DAYS": "do 3 dni", - "DATE_7_DAYS": "do tygodnia", - "DATE_MONTH": "do miesiąca", - "DATE_3_MONTHS": "do 3 miesięcy", - "DATE_6_MONTHS": "do 6 miesięcy", - "DATE_YEAR": "do roku", + "SINCE_3_DAYS": "do 3 dni", + "SINCE_7_DAYS": "do tygodnia", + "SINCE_MONTH": "do miesiąca", + "SINCE_3_MONTHS": "do 3 miesięcy", + "SINCE_6_MONTHS": "do 6 miesięcy", + "SINCE_YEAR": "do roku", "SUBFOLDERS": "Podfoldery", "SUBFOLDERS_NONE": "Brak", "SUBFOLDERS_SUBTREE": "Wszystkie", diff --git a/snappymail/v/0.0.0/app/localization/pt-BR/user.json b/snappymail/v/0.0.0/app/localization/pt-BR/user.json index a515fa29e6..a10a0c98aa 100644 --- a/snappymail/v/0.0.0/app/localization/pt-BR/user.json +++ b/snappymail/v/0.0.0/app/localization/pt-BR/user.json @@ -59,12 +59,12 @@ "UNSEEN": "Não Lida", "DATE": "Data", "DATE_ALL": "Qualquer", - "DATE_3_DAYS": "Até 3 dias atrás", - "DATE_7_DAYS": "Até 1 semana atrás", - "DATE_MONTH": "Até 1 mês atrás", - "DATE_3_MONTHS": "Até 3 meses atrás", - "DATE_6_MONTHS": "Até 6 meses atrás", - "DATE_YEAR": "Até 1 ano atrás", + "SINCE_3_DAYS": "Até 3 dias atrás", + "SINCE_7_DAYS": "Até 1 semana atrás", + "SINCE_MONTH": "Até 1 mês atrás", + "SINCE_3_MONTHS": "Até 3 meses atrás", + "SINCE_6_MONTHS": "Até 6 meses atrás", + "SINCE_YEAR": "Até 1 ano atrás", "SUBFOLDERS": "Subfolders", "SUBFOLDERS_NONE": "None", "SUBFOLDERS_SUBTREE": "All", diff --git a/snappymail/v/0.0.0/app/localization/pt/user.json b/snappymail/v/0.0.0/app/localization/pt/user.json index 6128107b29..2f2171e0f7 100644 --- a/snappymail/v/0.0.0/app/localization/pt/user.json +++ b/snappymail/v/0.0.0/app/localization/pt/user.json @@ -59,12 +59,12 @@ "UNSEEN": "Não lida", "DATE": "Data", "DATE_ALL": "Qualquer", - "DATE_3_DAYS": "Até 3 dias atrás", - "DATE_7_DAYS": "Até 1 semana atrás", - "DATE_MONTH": "Até 1 mês atrás", - "DATE_3_MONTHS": "Até 3 meses atrás", - "DATE_6_MONTHS": "Até 6 meses atrás", - "DATE_YEAR": "Até 1 ano atrás", + "SINCE_3_DAYS": "Até 3 dias atrás", + "SINCE_7_DAYS": "Até 1 semana atrás", + "SINCE_MONTH": "Até 1 mês atrás", + "SINCE_3_MONTHS": "Até 3 meses atrás", + "SINCE_6_MONTHS": "Até 6 meses atrás", + "SINCE_YEAR": "Até 1 ano atrás", "SUBFOLDERS": "Subpastas", "SUBFOLDERS_NONE": "Nenhuma", "SUBFOLDERS_SUBTREE": "Todas", diff --git a/snappymail/v/0.0.0/app/localization/ro/user.json b/snappymail/v/0.0.0/app/localization/ro/user.json index 06ea5c270b..f2f00482b5 100644 --- a/snappymail/v/0.0.0/app/localization/ro/user.json +++ b/snappymail/v/0.0.0/app/localization/ro/user.json @@ -59,12 +59,12 @@ "UNSEEN": "Necitit", "DATE": "Data", "DATE_ALL": "Tot timpul", - "DATE_3_DAYS": "З zile", - "DATE_7_DAYS": "7 zile", - "DATE_MONTH": "în această lună", - "DATE_3_MONTHS": "3 luni", - "DATE_6_MONTHS": "6 luni", - "DATE_YEAR": "în acest an", + "SINCE_3_DAYS": "З zile", + "SINCE_7_DAYS": "7 zile", + "SINCE_MONTH": "în această lună", + "SINCE_3_MONTHS": "3 luni", + "SINCE_6_MONTHS": "6 luni", + "SINCE_YEAR": "în acest an", "SUBFOLDERS": "Subfolders", "SUBFOLDERS_NONE": "None", "SUBFOLDERS_SUBTREE": "All", diff --git a/snappymail/v/0.0.0/app/localization/ru/user.json b/snappymail/v/0.0.0/app/localization/ru/user.json index 336adf81c0..c5a66fe4f7 100644 --- a/snappymail/v/0.0.0/app/localization/ru/user.json +++ b/snappymail/v/0.0.0/app/localization/ru/user.json @@ -59,12 +59,12 @@ "UNSEEN": "Непрочитанные", "DATE": "Дата", "DATE_ALL": "За всё время", - "DATE_3_DAYS": "За три дня", - "DATE_7_DAYS": "За неделю", - "DATE_MONTH": "За месяц", - "DATE_3_MONTHS": "За 3 месяца", - "DATE_6_MONTHS": "За полгода", - "DATE_YEAR": "За год", + "SINCE_3_DAYS": "За три дня", + "SINCE_7_DAYS": "За неделю", + "SINCE_MONTH": "За месяц", + "SINCE_3_MONTHS": "За 3 месяца", + "SINCE_6_MONTHS": "За полгода", + "SINCE_YEAR": "За год", "SUBFOLDERS": "Подпапки", "SUBFOLDERS_NONE": "Ничего", "SUBFOLDERS_SUBTREE": "Все", diff --git a/snappymail/v/0.0.0/app/localization/sk/user.json b/snappymail/v/0.0.0/app/localization/sk/user.json index 8548d3a653..ba621519ce 100644 --- a/snappymail/v/0.0.0/app/localization/sk/user.json +++ b/snappymail/v/0.0.0/app/localization/sk/user.json @@ -59,12 +59,12 @@ "UNSEEN": "Neprečítané", "DATE": "Dátum", "DATE_ALL": "Kedykoľvek", - "DATE_3_DAYS": "Nie staršie ako 3 dni", - "DATE_7_DAYS": "Nie staršie ako týždeň", - "DATE_MONTH": "Nie staršie ako mesiac", - "DATE_3_MONTHS": "Nie staršie ako 3 mesiace", - "DATE_6_MONTHS": "Nie staršie ako 6 mesiacov", - "DATE_YEAR": "Nie staršie ako 1 rok", + "SINCE_3_DAYS": "Nie staršie ako 3 dni", + "SINCE_7_DAYS": "Nie staršie ako týždeň", + "SINCE_MONTH": "Nie staršie ako mesiac", + "SINCE_3_MONTHS": "Nie staršie ako 3 mesiace", + "SINCE_6_MONTHS": "Nie staršie ako 6 mesiacov", + "SINCE_YEAR": "Nie staršie ako 1 rok", "SUBFOLDERS": "Subfolders", "SUBFOLDERS_NONE": "None", "SUBFOLDERS_SUBTREE": "All", diff --git a/snappymail/v/0.0.0/app/localization/sl/user.json b/snappymail/v/0.0.0/app/localization/sl/user.json index 5b615913f0..96ea1d392c 100644 --- a/snappymail/v/0.0.0/app/localization/sl/user.json +++ b/snappymail/v/0.0.0/app/localization/sl/user.json @@ -59,12 +59,12 @@ "UNSEEN": "Neprebrano", "DATE": "Datum", "DATE_ALL": "Vsa", - "DATE_3_DAYS": "Do 3 dni nazaj", - "DATE_7_DAYS": "Do 1 tedna nazaj", - "DATE_MONTH": "Do 1 meseca nazaj", - "DATE_3_MONTHS": "Do 3 mesecev nazaj", - "DATE_6_MONTHS": "Do 6 mesecev nazaj", - "DATE_YEAR": "Do 1 leta nazaj", + "SINCE_3_DAYS": "Do 3 dni nazaj", + "SINCE_7_DAYS": "Do 1 tedna nazaj", + "SINCE_MONTH": "Do 1 meseca nazaj", + "SINCE_3_MONTHS": "Do 3 mesecev nazaj", + "SINCE_6_MONTHS": "Do 6 mesecev nazaj", + "SINCE_YEAR": "Do 1 leta nazaj", "SUBFOLDERS": "Subfolders", "SUBFOLDERS_NONE": "None", "SUBFOLDERS_SUBTREE": "All", diff --git a/snappymail/v/0.0.0/app/localization/sv/user.json b/snappymail/v/0.0.0/app/localization/sv/user.json index e177707041..46ec9d8350 100644 --- a/snappymail/v/0.0.0/app/localization/sv/user.json +++ b/snappymail/v/0.0.0/app/localization/sv/user.json @@ -59,12 +59,12 @@ "UNSEEN": "Oläst", "DATE": "Datum", "DATE_ALL": "Alla", - "DATE_3_DAYS": "Upp till 3 dagar gammalt", - "DATE_7_DAYS": "Upp till 1 vecka gammalt", - "DATE_MONTH": "Upp till 1 månad gammalt", - "DATE_3_MONTHS": "Upp till 3 månader gammalt", - "DATE_6_MONTHS": "Upp till 6 månader gammalt", - "DATE_YEAR": "Upp till 1 år gammalt", + "SINCE_3_DAYS": "Upp till 3 dagar gammalt", + "SINCE_7_DAYS": "Upp till 1 vecka gammalt", + "SINCE_MONTH": "Upp till 1 månad gammalt", + "SINCE_3_MONTHS": "Upp till 3 månader gammalt", + "SINCE_6_MONTHS": "Upp till 6 månader gammalt", + "SINCE_YEAR": "Upp till 1 år gammalt", "SUBFOLDERS": "Subfolders", "SUBFOLDERS_NONE": "None", "SUBFOLDERS_SUBTREE": "All", diff --git a/snappymail/v/0.0.0/app/localization/tr/user.json b/snappymail/v/0.0.0/app/localization/tr/user.json index 370395e3ec..e0d82a89fc 100644 --- a/snappymail/v/0.0.0/app/localization/tr/user.json +++ b/snappymail/v/0.0.0/app/localization/tr/user.json @@ -59,12 +59,12 @@ "UNSEEN": "Görünmeyen", "DATE": "Tarih", "DATE_ALL": "Hepsi", - "DATE_3_DAYS": "3 gün önceki", - "DATE_7_DAYS": "1 hafta önceki", - "DATE_MONTH": "1 ay önceki", - "DATE_3_MONTHS": "3 ay önceki", - "DATE_6_MONTHS": "6 ay önceki", - "DATE_YEAR": "1 yıl önceki", + "SINCE_3_DAYS": "3 gün önceki", + "SINCE_7_DAYS": "1 hafta önceki", + "SINCE_MONTH": "1 ay önceki", + "SINCE_3_MONTHS": "3 ay önceki", + "SINCE_6_MONTHS": "6 ay önceki", + "SINCE_YEAR": "1 yıl önceki", "SUBFOLDERS": "Subfolders", "SUBFOLDERS_NONE": "None", "SUBFOLDERS_SUBTREE": "All", diff --git a/snappymail/v/0.0.0/app/localization/uk/user.json b/snappymail/v/0.0.0/app/localization/uk/user.json index b3ce8322b0..9be654fe5d 100644 --- a/snappymail/v/0.0.0/app/localization/uk/user.json +++ b/snappymail/v/0.0.0/app/localization/uk/user.json @@ -59,12 +59,12 @@ "UNSEEN": "Непрочитані", "DATE": "Дата", "DATE_ALL": "За весь час", - "DATE_3_DAYS": "За три дні", - "DATE_7_DAYS": "За тиждень", - "DATE_MONTH": "За місяць", - "DATE_3_MONTHS": "За 3 місяці", - "DATE_6_MONTHS": "За півроку", - "DATE_YEAR": "За рік", + "SINCE_3_DAYS": "За три дні", + "SINCE_7_DAYS": "За тиждень", + "SINCE_MONTH": "За місяць", + "SINCE_3_MONTHS": "За 3 місяці", + "SINCE_6_MONTHS": "За півроку", + "SINCE_YEAR": "За рік", "SUBFOLDERS": "Subfolders", "SUBFOLDERS_NONE": "None", "SUBFOLDERS_SUBTREE": "All", diff --git a/snappymail/v/0.0.0/app/localization/vi/user.json b/snappymail/v/0.0.0/app/localization/vi/user.json index 26cf5fcd31..c60a786c04 100644 --- a/snappymail/v/0.0.0/app/localization/vi/user.json +++ b/snappymail/v/0.0.0/app/localization/vi/user.json @@ -59,12 +59,12 @@ "UNSEEN": "Chưa được xem", "DATE": "Ngày", "DATE_ALL": "Tất cả", - "DATE_3_DAYS": "Khoảng 3 ngày trước", - "DATE_7_DAYS": "Khoảng 1 tuần trước", - "DATE_MONTH": "Khoảng 1 tháng trước", - "DATE_3_MONTHS": "Khoảng 3 tháng trước", - "DATE_6_MONTHS": "Khoảng 6 tháng trước", - "DATE_YEAR": "Khoảng 1 năm trước", + "SINCE_3_DAYS": "Khoảng 3 ngày trước", + "SINCE_7_DAYS": "Khoảng 1 tuần trước", + "SINCE_MONTH": "Khoảng 1 tháng trước", + "SINCE_3_MONTHS": "Khoảng 3 tháng trước", + "SINCE_6_MONTHS": "Khoảng 6 tháng trước", + "SINCE_YEAR": "Khoảng 1 năm trước", "SUBFOLDERS": "Thư mục con", "SUBFOLDERS_NONE": "Trống", "SUBFOLDERS_SUBTREE": "Tất cả", diff --git a/snappymail/v/0.0.0/app/localization/zh-TW/user.json b/snappymail/v/0.0.0/app/localization/zh-TW/user.json index 8e5a91fa64..456dd54bf7 100644 --- a/snappymail/v/0.0.0/app/localization/zh-TW/user.json +++ b/snappymail/v/0.0.0/app/localization/zh-TW/user.json @@ -59,12 +59,12 @@ "UNSEEN": "未讀取", "DATE": "日期", "DATE_ALL": "全部", - "DATE_3_DAYS": "三天以內", - "DATE_7_DAYS": "一週以內", - "DATE_MONTH": "一個月以內", - "DATE_3_MONTHS": "三個月以內", - "DATE_6_MONTHS": "半年以內", - "DATE_YEAR": "一年以內", + "SINCE_3_DAYS": "三天以內", + "SINCE_7_DAYS": "一週以內", + "SINCE_MONTH": "一個月以內", + "SINCE_3_MONTHS": "三個月以內", + "SINCE_6_MONTHS": "半年以內", + "SINCE_YEAR": "一年以內", "SUBFOLDERS": "子資料夾", "SUBFOLDERS_NONE": "無", "SUBFOLDERS_SUBTREE": "全部", diff --git a/snappymail/v/0.0.0/app/localization/zh/user.json b/snappymail/v/0.0.0/app/localization/zh/user.json index ff62057ca7..7671f756b8 100644 --- a/snappymail/v/0.0.0/app/localization/zh/user.json +++ b/snappymail/v/0.0.0/app/localization/zh/user.json @@ -59,12 +59,12 @@ "UNSEEN": "不可见", "DATE": "日期", "DATE_ALL": "所有邮件", - "DATE_3_DAYS": "3天以内", - "DATE_7_DAYS": "1周以内", - "DATE_MONTH": "1个月以内", - "DATE_3_MONTHS": "3个月以内", - "DATE_6_MONTHS": "半年以内", - "DATE_YEAR": "1年以内", + "SINCE_3_DAYS": "3天以内", + "SINCE_7_DAYS": "1周以内", + "SINCE_MONTH": "1个月以内", + "SINCE_3_MONTHS": "3个月以内", + "SINCE_6_MONTHS": "半年以内", + "SINCE_YEAR": "1年以内", "SUBFOLDERS": "子文件夹", "SUBFOLDERS_NONE": "无", "SUBFOLDERS_SUBTREE": "全部", From 9633956b99c13d0ddb77b4b07d3b346d711f9263 Mon Sep 17 00:00:00 2001 From: the-djmaze <> Date: Mon, 3 Jun 2024 15:14:30 +0200 Subject: [PATCH 17/24] Fixed: Undefined $sEmail in DoAdminDomainMatch --- .../v/0.0.0/app/libraries/RainLoop/Actions/AdminDomains.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/snappymail/v/0.0.0/app/libraries/RainLoop/Actions/AdminDomains.php b/snappymail/v/0.0.0/app/libraries/RainLoop/Actions/AdminDomains.php index 2b3c712236..e8579308ff 100644 --- a/snappymail/v/0.0.0/app/libraries/RainLoop/Actions/AdminDomains.php +++ b/snappymail/v/0.0.0/app/libraries/RainLoop/Actions/AdminDomains.php @@ -67,8 +67,9 @@ public function DoAdminDomainMatch() : array $this->GetActionParam('username'), new \SnappyMail\SensitiveString('********') ); + $sEmail = $sCredentials['email']; return $this->DefaultResponse(array( - 'email' => $sCredentials['email'], + 'email' => $sEmail, 'login' => $sCredentials['imapUser'], 'domain' => $sCredentials['domain'], 'whitelist' => $sCredentials['domain'] ? $sCredentials['domain']->ValidateWhiteList($sEmail) : null From 9954e25b65366cc7c5a2002d9fe2bc2cca736cbc Mon Sep 17 00:00:00 2001 From: the-djmaze <> Date: Mon, 3 Jun 2024 16:01:52 +0200 Subject: [PATCH 18/24] Resolve #1609 --- dev/View/Popup/Compose.js | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/dev/View/Popup/Compose.js b/dev/View/Popup/Compose.js index b8f953ccda..e937a772ba 100644 --- a/dev/View/Popup/Compose.js +++ b/dev/View/Popup/Compose.js @@ -890,7 +890,7 @@ export class ComposePopupView extends AbstractViewPopup { } if (options.mode && oLastMessage) { - let encrypted, + let usePlain, sCc = '', sDate = timestampToString(oLastMessage.dateTimestamp(), 'FULL'), sSubject = oLastMessage.subject(), @@ -998,18 +998,14 @@ export class ComposePopupView extends AbstractViewPopup { break; default: - encrypted = PgpUserStore.isEncrypted(sText); - if (encrypted) { + usePlain = PgpUserStore.isEncrypted(sText) || isPlainEditor() || !oLastMessage.isHtml(); + if (usePlain) { sText = oLastMessage.plain(); } } this.editor(editor => { - encrypted || editor.setHtml(sText); - if (encrypted || isPlainEditor()) { - editor.modePlain(); - } - encrypted && editor.setPlain(sText); + usePlain ? (editor.modePlain() | editor.setPlain(sText)) : editor.setHtml(sText); this.setSignature(identity, options.mode); this.setFocusInPopup(); }); @@ -1510,6 +1506,8 @@ export class ComposePopupView extends AbstractViewPopup { do { l = Text.length; Text = Text + // Remove line duplication + .replace(/
<\/div>/gi, '') // Remove Microsoft Office styling .replace(/(<[^>]+[;"'])\s*mso-[a-z-]+\s*:[^;"']+/gi, '$1') // Remove hubspot data-hs- attributes From ba46e995cdc04d556f66fd7962859d7248efb337 Mon Sep 17 00:00:00 2001 From: the-djmaze <> Date: Tue, 4 Jun 2024 13:08:33 +0200 Subject: [PATCH 19/24] Resolve #1608 --- dev/Model/MimeHeaderAutocrypt.js | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/dev/Model/MimeHeaderAutocrypt.js b/dev/Model/MimeHeaderAutocrypt.js index b1e65271a2..cfd12ea571 100644 --- a/dev/Model/MimeHeaderAutocrypt.js +++ b/dev/Model/MimeHeaderAutocrypt.js @@ -10,18 +10,20 @@ export class MimeHeaderAutocryptModel/* extends AbstractModel*/ if (value) { value.split(';').forEach(entry => { - entry = entry.split('='); + entry = entry.match(/^([^=]+)=(.*)$/); const trim = str => (str || '').trim().replace(/^["']|["']+$/g, ''); - this[trim(entry[0]).replace('-', '_')] = trim(entry[1]); + this[trim(entry[1]).replace('-', '_')] = trim(entry[2]); }); + this.keydata = this.keydata.replace(/\s+/g, '\n'); } } toString() { + let result = `addr=${this.addr}; `; if ('mutual' === this.prefer_encrypt) { - return `addr=${this.addr}; prefer-encrypt=mutual; keydata=${this.keydata}`; + result += 'prefer-encrypt=mutual; '; } - return `addr=${this.addr}; keydata=${this.keydata}`; + return result + 'keydata=' + this.keydata.replace(/\n/g, '\n '); } pem() { From e68179c75268225ccac72802704924b9671d1da6 Mon Sep 17 00:00:00 2001 From: the-djmaze <> Date: Tue, 4 Jun 2024 13:22:23 +0200 Subject: [PATCH 20/24] Add `dateTimestampSource` for #1554 --- snappymail/v/0.0.0/app/libraries/MailSo/Mail/Message.php | 2 ++ 1 file changed, 2 insertions(+) diff --git a/snappymail/v/0.0.0/app/libraries/MailSo/Mail/Message.php b/snappymail/v/0.0.0/app/libraries/MailSo/Mail/Message.php index b63be576c8..8f66687043 100644 --- a/snappymail/v/0.0.0/app/libraries/MailSo/Mail/Message.php +++ b/snappymail/v/0.0.0/app/libraries/MailSo/Mail/Message.php @@ -506,7 +506,9 @@ public function jsonSerialize() 'spamScore' => $this->bIsSpam ? 100 : $this->SpamScore, 'spamResult' => $this->sSpamResult, 'isSpam' => $this->bIsSpam, + // RainLoop had the date_from_headers option 'dateTimestamp' => $this->iHeaderTimeStampInUTC ?: $this->iInternalTimeStampInUTC, + 'dateTimestampSource' => $this->iHeaderTimeStampInUTC ? 'header' : 'internal', // \MailSo\Mime\EmailCollection 'from' => $this->oFrom, From f4a11c9c6e6742e1e5fae3c78eb5f43257ffd714 Mon Sep 17 00:00:00 2001 From: the-djmaze <> Date: Tue, 4 Jun 2024 14:19:03 +0200 Subject: [PATCH 21/24] Resolve #1607 --- dev/View/Popup/Domain.js | 8 +++-- .../app/libraries/MailSo/Imap/Settings.php | 22 +++++++++++- .../app/libraries/MailSo/Mail/MailClient.php | 36 +++++++++++++------ .../v/0.0.0/app/localization/be/admin.json | 4 ++- .../v/0.0.0/app/localization/cs/admin.json | 4 ++- .../v/0.0.0/app/localization/da/admin.json | 4 ++- .../v/0.0.0/app/localization/de/admin.json | 4 ++- .../v/0.0.0/app/localization/en/admin.json | 4 ++- .../v/0.0.0/app/localization/es/admin.json | 4 ++- .../v/0.0.0/app/localization/eu/admin.json | 4 ++- .../v/0.0.0/app/localization/fa/admin.json | 4 ++- .../v/0.0.0/app/localization/fi/admin.json | 4 ++- .../v/0.0.0/app/localization/fr/admin.json | 4 ++- .../v/0.0.0/app/localization/hu/admin.json | 4 ++- .../v/0.0.0/app/localization/id/admin.json | 4 ++- .../v/0.0.0/app/localization/it/admin.json | 4 ++- .../v/0.0.0/app/localization/ja/admin.json | 4 ++- .../v/0.0.0/app/localization/lt/admin.json | 4 ++- .../v/0.0.0/app/localization/nb/admin.json | 4 ++- .../v/0.0.0/app/localization/nl/admin.json | 4 ++- .../v/0.0.0/app/localization/pl/admin.json | 4 ++- .../v/0.0.0/app/localization/pt-BR/admin.json | 4 ++- .../v/0.0.0/app/localization/pt/admin.json | 4 ++- .../v/0.0.0/app/localization/ru/admin.json | 4 ++- .../v/0.0.0/app/localization/sk/admin.json | 4 ++- .../v/0.0.0/app/localization/sl/admin.json | 4 ++- .../v/0.0.0/app/localization/sv/admin.json | 4 ++- .../v/0.0.0/app/localization/vi/admin.json | 4 ++- .../v/0.0.0/app/localization/zh/admin.json | 4 ++- .../templates/Views/Admin/PopupsDomain.html | 13 ++++++- 30 files changed, 142 insertions(+), 41 deletions(-) diff --git a/dev/View/Popup/Domain.js b/dev/View/Popup/Domain.js index 1b3820f141..f4c465d97b 100644 --- a/dev/View/Popup/Domain.js +++ b/dev/View/Popup/Domain.js @@ -39,6 +39,8 @@ const imapMessage_all_headers: false, imapMessage_list_limit: 10000, imapSearch_filter: '', + imapSpam_headers: '', + imapVirus_headers: '', sieveEnabled: false, sieveHost: '', @@ -80,15 +82,17 @@ const }, disabled_capabilities: oDomain.imapDisabled_capabilities(), folder_list_limit: pInt(oDomain.imapFolder_list_limit()), - message_list_limit: pInt(oDomain.imapMessage_list_limit()) + message_list_limit: pInt(oDomain.imapMessage_list_limit()), /* expunge_all_on_delete: , fast_simple_search: , fetch_new_messages: , force_select: , message_all_headers: , - search_filter: */ + search_filter: oDomain.imapSearch_filter(), + spam_headers: oDomain.imapSpam_headers(), + virus_headers: oDomain.imapVirus_headers() }, SMTP: { host: oDomain.smtpHost, diff --git a/snappymail/v/0.0.0/app/libraries/MailSo/Imap/Settings.php b/snappymail/v/0.0.0/app/libraries/MailSo/Imap/Settings.php index b634bb6af4..8993a051b0 100644 --- a/snappymail/v/0.0.0/app/libraries/MailSo/Imap/Settings.php +++ b/snappymail/v/0.0.0/app/libraries/MailSo/Imap/Settings.php @@ -33,7 +33,9 @@ class Settings extends \MailSo\Net\ConnectSettings $message_all_headers = false; public string - $search_filter = ''; + $search_filter = '', + $spam_headers = 'rspamd,spamassassin,bogofilter', + $virus_headers = 'rspamd,clamav'; public array $disabled_capabilities = []; @@ -41,6 +43,8 @@ class Settings extends \MailSo\Net\ConnectSettings public static function fromArray(array $aSettings) : self { $object = parent::fromArray($aSettings); + + // Boolean options $options = [ 'expunge_all_on_delete', 'fast_simple_search', @@ -53,6 +57,8 @@ public static function fromArray(array $aSettings) : self $object->$option = !empty($aSettings[$option]); } } + + // Integer options $options = [ // 'body_text_limit', // 'folder_list_limit', @@ -65,6 +71,18 @@ public static function fromArray(array $aSettings) : self } } + // String options + $options = [ + 'search_filter', + 'spam_headers', + 'virus_headers', + ]; + foreach ($options as $option) { + if (isset($aSettings[$option])) { + $object->$option = (string) $aSettings[$option]; + } + } + if (!empty($aSettings['disabled_capabilities']) && \is_array($aSettings['disabled_capabilities'])) { $object->disabled_capabilities = $aSettings['disabled_capabilities']; } @@ -119,6 +137,8 @@ public function jsonSerialize() 'message_all_headers' => $this->message_all_headers, 'message_list_limit' => $this->message_list_limit, 'search_filter' => $this->search_filter, + 'spam_headers' => $this->spam_headers, + 'virus_headers' => $this->virus_headers, // 'thread_limit' => $this->thread_limit 'disabled_capabilities' => \array_values(\array_unique($this->disabled_capabilities)) ] diff --git a/snappymail/v/0.0.0/app/libraries/MailSo/Mail/MailClient.php b/snappymail/v/0.0.0/app/libraries/MailSo/Mail/MailClient.php index d0ddda7d48..a34dfdf0d8 100644 --- a/snappymail/v/0.0.0/app/libraries/MailSo/Mail/MailClient.php +++ b/snappymail/v/0.0.0/app/libraries/MailSo/Mail/MailClient.php @@ -76,19 +76,33 @@ private function getEnvelopeOrHeadersRequestString() : string MimeHeader::X_DKIM_AUTHENTICATION_RESULTS, MimeHeader::LIST_UNSUBSCRIBE, // https://autocrypt.org/level1.html#the-autocrypt-header - MimeHeader::AUTOCRYPT, - // SPAM - MimeHeader::X_SPAM_STATUS, - MimeHeader::X_SPAM_FLAG, - MimeHeader::X_SPAM_INFO, - MimeHeader::X_SPAMD_RESULT, - MimeHeader::X_BOGOSITY, - // Virus - MimeHeader::X_VIRUS, - MimeHeader::X_VIRUS_SCANNED, - MimeHeader::X_VIRUS_STATUS + MimeHeader::AUTOCRYPT ); + // SPAM + $spam_headers = \explode(',', $this->oImapClient->Settings->spam_headers); + if (\in_array('rspamd', $spam_headers)) { + $aHeaders[] = MimeHeader::X_SPAMD_RESULT; + } + if (\in_array('spamassassin', $spam_headers)) { + $aHeaders[] = MimeHeader::X_SPAM_STATUS; + $aHeaders[] = MimeHeader::X_SPAM_FLAG; + $aHeaders[] = MimeHeader::X_SPAM_INFO; + } + if (\in_array('bogofilter', $spam_headers)) { + $aHeaders[] = MimeHeader::X_BOGOSITY; + } + + // Virus + $virus_headers = \explode(',', $this->oImapClient->Settings->virus_headers); + if (\in_array('rspamd', $virus_headers)) { + $aHeaders[] = MimeHeader::X_VIRUS; + } + if (\in_array('clamav', $virus_headers)) { + $aHeaders[] = MimeHeader::X_VIRUS_SCANNED; + $aHeaders[] = MimeHeader::X_VIRUS_STATUS; + } + \RainLoop\Api::Actions()->Plugins()->RunHook('imap.message-headers', array(&$aHeaders)); return FetchType::BuildBodyCustomHeaderRequest($aHeaders, true); diff --git a/snappymail/v/0.0.0/app/localization/be/admin.json b/snappymail/v/0.0.0/app/localization/be/admin.json index a24fea3e24..8fe050a3b2 100644 --- a/snappymail/v/0.0.0/app/localization/be/admin.json +++ b/snappymail/v/0.0.0/app/localization/be/admin.json @@ -146,7 +146,9 @@ "BUTTON_BACK": "Назад", "BUTTON_UPDATE": "Абнавіць", "NEW_DOMAIN_DESC": "Гэтая канфігурацыя дазволіць вам працаваць з %NAME%<\/strong> адрасамі.", - "WHITE_LIST_ALERT": "Спіс карыстальнікаў дамена да якіх дазволены доступ.\nВыкарыстоўвайце прабел у якасці раздзяляльніка.\n" + "WHITE_LIST_ALERT": "Спіс карыстальнікаў дамена да якіх дазволены доступ.\nВыкарыстоўвайце прабел у якасці раздзяляльніка.\n", + "VALID_SPAM_HEADERS": "Valid SPAM headers", + "VALID_VIRUS_HEADERS": "Valid virus headers" }, "POPUPS_PLUGIN": { "TITLE_PLUGIN": "Убудова", diff --git a/snappymail/v/0.0.0/app/localization/cs/admin.json b/snappymail/v/0.0.0/app/localization/cs/admin.json index e6463e4ba7..1886c8f485 100644 --- a/snappymail/v/0.0.0/app/localization/cs/admin.json +++ b/snappymail/v/0.0.0/app/localization/cs/admin.json @@ -146,7 +146,9 @@ "BUTTON_BACK": "Zpět", "BUTTON_UPDATE": "Aktualizovat", "NEW_DOMAIN_DESC": "Konfigurace této domény umožní používat %NAME%<\/strong> adresy.", - "WHITE_LIST_ALERT": "Seznam domén s povoleným uživatelským přístupem\nPoužijte mezeru pro jejich oddělení.\n" + "WHITE_LIST_ALERT": "Seznam domén s povoleným uživatelským přístupem\nPoužijte mezeru pro jejich oddělení.\n", + "VALID_SPAM_HEADERS": "Valid SPAM headers", + "VALID_VIRUS_HEADERS": "Valid virus headers" }, "POPUPS_PLUGIN": { "TITLE_PLUGIN": "Plugin", diff --git a/snappymail/v/0.0.0/app/localization/da/admin.json b/snappymail/v/0.0.0/app/localization/da/admin.json index 456b68c837..e4c02d4bbb 100644 --- a/snappymail/v/0.0.0/app/localization/da/admin.json +++ b/snappymail/v/0.0.0/app/localization/da/admin.json @@ -146,7 +146,9 @@ "BUTTON_BACK": "Tilbage", "BUTTON_UPDATE": "Opdater", "NEW_DOMAIN_DESC": "Denne domæne konfiguration tillader %NAME%<\/strong> e-mail adresser.", - "WHITE_LIST_ALERT": "Liste med godkendte domæne for webmail opsætning.\nBrug mellemrum til at separere domæner.\n" + "WHITE_LIST_ALERT": "Liste med godkendte domæne for webmail opsætning.\nBrug mellemrum til at separere domæner.\n", + "VALID_SPAM_HEADERS": "Valid SPAM headers", + "VALID_VIRUS_HEADERS": "Valid virus headers" }, "POPUPS_PLUGIN": { "TITLE_PLUGIN": "Tilføjelse", diff --git a/snappymail/v/0.0.0/app/localization/de/admin.json b/snappymail/v/0.0.0/app/localization/de/admin.json index 2eb764006b..fc819cc2f5 100644 --- a/snappymail/v/0.0.0/app/localization/de/admin.json +++ b/snappymail/v/0.0.0/app/localization/de/admin.json @@ -146,7 +146,9 @@ "BUTTON_BACK": "Zurück", "BUTTON_UPDATE": "Aktualisieren", "NEW_DOMAIN_DESC": "Diese Domain Konfiguration wird es dir möglich machen mit %NAME%<\/strong> Mailadressen zu arbeiten.", - "WHITE_LIST_ALERT": "Liste der User, die Webmail abrufen darf.\nVerwenden Sie Leerzeichen als Trennsymbol." + "WHITE_LIST_ALERT": "Liste der User, die Webmail abrufen darf.\nVerwenden Sie Leerzeichen als Trennsymbol.", + "VALID_SPAM_HEADERS": "Valid SPAM headers", + "VALID_VIRUS_HEADERS": "Valid virus headers" }, "POPUPS_PLUGIN": { "TITLE_PLUGIN": "Erweiterung", diff --git a/snappymail/v/0.0.0/app/localization/en/admin.json b/snappymail/v/0.0.0/app/localization/en/admin.json index a4f93ed8c8..51b161a0aa 100644 --- a/snappymail/v/0.0.0/app/localization/en/admin.json +++ b/snappymail/v/0.0.0/app/localization/en/admin.json @@ -146,7 +146,9 @@ "BUTTON_BACK": "Back", "BUTTON_UPDATE": "Update", "NEW_DOMAIN_DESC": "This domain configuration will allow you to work with %NAME%<\/strong> email addresses.", - "WHITE_LIST_ALERT": "List of domain users webmail is allowed to access.\nUse a space as delimiter.\n" + "WHITE_LIST_ALERT": "List of domain users webmail is allowed to access.\nUse a space as delimiter.\n", + "VALID_SPAM_HEADERS": "Valid SPAM headers", + "VALID_VIRUS_HEADERS": "Valid virus headers" }, "POPUPS_PLUGIN": { "TITLE_PLUGIN": "Extension", diff --git a/snappymail/v/0.0.0/app/localization/es/admin.json b/snappymail/v/0.0.0/app/localization/es/admin.json index ea0968ef49..8da6304662 100644 --- a/snappymail/v/0.0.0/app/localization/es/admin.json +++ b/snappymail/v/0.0.0/app/localization/es/admin.json @@ -146,7 +146,9 @@ "BUTTON_BACK": "Volver", "BUTTON_UPDATE": "Actualizar", "NEW_DOMAIN_DESC": "Esta configuración de Dominio le permitirá trabajar con direcciones de correo tipo @%NAME%<\/strong>.", - "WHITE_LIST_ALERT": "Lista de dominios con que los usuarios pueden ingresar.\nUse un espacio como delimitador.\n" + "WHITE_LIST_ALERT": "Lista de dominios con que los usuarios pueden ingresar.\nUse un espacio como delimitador.\n", + "VALID_SPAM_HEADERS": "Valid SPAM headers", + "VALID_VIRUS_HEADERS": "Valid virus headers" }, "POPUPS_PLUGIN": { "TITLE_PLUGIN": "Extensión", diff --git a/snappymail/v/0.0.0/app/localization/eu/admin.json b/snappymail/v/0.0.0/app/localization/eu/admin.json index b731363030..6fdeb5d18c 100644 --- a/snappymail/v/0.0.0/app/localization/eu/admin.json +++ b/snappymail/v/0.0.0/app/localization/eu/admin.json @@ -146,7 +146,9 @@ "BUTTON_BACK": "Atzera", "BUTTON_UPDATE": "Eguneratu", "NEW_DOMAIN_DESC": "Domeinu honen konfigurazioak %NAME%<\/strong> email kontuarekin lan egitea ahalbideratuko dizu.", - "WHITE_LIST_ALERT": "Webmailak sartzeko baimena duen domeinuko erabiltzaileen zerrenda.\nErabili hutsunea banatzaile bezala.\n" + "WHITE_LIST_ALERT": "Webmailak sartzeko baimena duen domeinuko erabiltzaileen zerrenda.\nErabili hutsunea banatzaile bezala.\n", + "VALID_SPAM_HEADERS": "Valid SPAM headers", + "VALID_VIRUS_HEADERS": "Valid virus headers" }, "POPUPS_PLUGIN": { "TITLE_PLUGIN": "Gehigarria", diff --git a/snappymail/v/0.0.0/app/localization/fa/admin.json b/snappymail/v/0.0.0/app/localization/fa/admin.json index 8446324f7d..1e34a97938 100644 --- a/snappymail/v/0.0.0/app/localization/fa/admin.json +++ b/snappymail/v/0.0.0/app/localization/fa/admin.json @@ -146,7 +146,9 @@ "BUTTON_BACK": "برگشت", "BUTTON_UPDATE": "بروزرسانی", "NEW_DOMAIN_DESC": "این تنظیمات دامنه به شما اجازه کار کردن با پست الکترونیک %NAME%<\/strong> را می‌دهد.", - "WHITE_LIST_ALERT": "لیستی از دامنه‌ها که کاربران وب‌میل می‌توانند به آنها دسترسی داشته باشند.\nاز فاصله جهت جدا کردن استفاده کنید.\n" + "WHITE_LIST_ALERT": "لیستی از دامنه‌ها که کاربران وب‌میل می‌توانند به آنها دسترسی داشته باشند.\nاز فاصله جهت جدا کردن استفاده کنید.\n", + "VALID_SPAM_HEADERS": "Valid SPAM headers", + "VALID_VIRUS_HEADERS": "Valid virus headers" }, "POPUPS_PLUGIN": { "TITLE_PLUGIN": "افزونه", diff --git a/snappymail/v/0.0.0/app/localization/fi/admin.json b/snappymail/v/0.0.0/app/localization/fi/admin.json index a3f488b015..0995d048bf 100644 --- a/snappymail/v/0.0.0/app/localization/fi/admin.json +++ b/snappymail/v/0.0.0/app/localization/fi/admin.json @@ -146,7 +146,9 @@ "BUTTON_BACK": "Takaisin", "BUTTON_UPDATE": "Päivitä", "NEW_DOMAIN_DESC": "Tämän verkkotunnuksen asetukset sallivat käyttää %NAME% säkhöpostiosoitteita.", - "WHITE_LIST_ALERT": "Lista domain käyttäjistä joihin webmaililla on oikeus.\nErottele välilyönnillä.\n" + "WHITE_LIST_ALERT": "Lista domain käyttäjistä joihin webmaililla on oikeus.\nErottele välilyönnillä.\n", + "VALID_SPAM_HEADERS": "Valid SPAM headers", + "VALID_VIRUS_HEADERS": "Valid virus headers" }, "POPUPS_PLUGIN": { "TITLE_PLUGIN": "Lisäosa", diff --git a/snappymail/v/0.0.0/app/localization/fr/admin.json b/snappymail/v/0.0.0/app/localization/fr/admin.json index cc39ae1e2b..3994d37ad1 100644 --- a/snappymail/v/0.0.0/app/localization/fr/admin.json +++ b/snappymail/v/0.0.0/app/localization/fr/admin.json @@ -146,7 +146,9 @@ "BUTTON_BACK": "Retour", "BUTTON_UPDATE": "Modifier", "NEW_DOMAIN_DESC": "Cette configuration de domaine vous permettra de travailler avec %NAME%<\/strong> dans les adresses électroniques.", - "WHITE_LIST_ALERT": "Liste des utilisateurs du domaine auxquels le webmail est autorisé à accéder.\nUtilisez un espace comme séparateur." + "WHITE_LIST_ALERT": "Liste des utilisateurs du domaine auxquels le webmail est autorisé à accéder.\nUtilisez un espace comme séparateur.", + "VALID_SPAM_HEADERS": "Valid SPAM headers", + "VALID_VIRUS_HEADERS": "Valid virus headers" }, "POPUPS_PLUGIN": { "TITLE_PLUGIN": "Extension", diff --git a/snappymail/v/0.0.0/app/localization/hu/admin.json b/snappymail/v/0.0.0/app/localization/hu/admin.json index aa8a816183..37b4c9bd6e 100644 --- a/snappymail/v/0.0.0/app/localization/hu/admin.json +++ b/snappymail/v/0.0.0/app/localization/hu/admin.json @@ -146,7 +146,9 @@ "BUTTON_BACK": "Vissza", "BUTTON_UPDATE": "Frissítés", "NEW_DOMAIN_DESC": "Ez a domain konfiguráció lehetővé teszi a %NAME%<\/strong> email címek használatát.", - "WHITE_LIST_ALERT": "Hozzáféréshez engedélyezett domainek listája.\nElválasztáshoz használd a szóközt.\n" + "WHITE_LIST_ALERT": "Hozzáféréshez engedélyezett domainek listája.\nElválasztáshoz használd a szóközt.\n", + "VALID_SPAM_HEADERS": "Valid SPAM headers", + "VALID_VIRUS_HEADERS": "Valid virus headers" }, "POPUPS_PLUGIN": { "TITLE_PLUGIN": "Bővítményt", diff --git a/snappymail/v/0.0.0/app/localization/id/admin.json b/snappymail/v/0.0.0/app/localization/id/admin.json index 190be91318..37b891a5a4 100644 --- a/snappymail/v/0.0.0/app/localization/id/admin.json +++ b/snappymail/v/0.0.0/app/localization/id/admin.json @@ -146,7 +146,9 @@ "BUTTON_BACK": "Kembali", "BUTTON_UPDATE": "Perbarui", "NEW_DOMAIN_DESC": "Domain ini mengizinkan anda bekerja dengan alamat email juga%NAME%<\/strong> ", - "WHITE_LIST_ALERT": "Daftar domain webmail user yang diizinkan diakses.\nGunakan spasi untuk pemisahnya\n" + "WHITE_LIST_ALERT": "Daftar domain webmail user yang diizinkan diakses.\nGunakan spasi untuk pemisahnya\n", + "VALID_SPAM_HEADERS": "Valid SPAM headers", + "VALID_VIRUS_HEADERS": "Valid virus headers" }, "POPUPS_PLUGIN": { "TITLE_PLUGIN": "Plugin", diff --git a/snappymail/v/0.0.0/app/localization/it/admin.json b/snappymail/v/0.0.0/app/localization/it/admin.json index 6b6ff25f0f..1bd42f0954 100644 --- a/snappymail/v/0.0.0/app/localization/it/admin.json +++ b/snappymail/v/0.0.0/app/localization/it/admin.json @@ -146,7 +146,9 @@ "BUTTON_BACK": "Indietro", "BUTTON_UPDATE": "Aggiorna", "NEW_DOMAIN_DESC": "This domain configuration will allow you to work with %NAME%<\/strong> email addresses.", - "WHITE_LIST_ALERT": "Lista degli utenti del dominio ai quali webmail può accedere.\nUsa uno spazio come delimitatore." + "WHITE_LIST_ALERT": "Lista degli utenti del dominio ai quali webmail può accedere.\nUsa uno spazio come delimitatore.", + "VALID_SPAM_HEADERS": "Valid SPAM headers", + "VALID_VIRUS_HEADERS": "Valid virus headers" }, "POPUPS_PLUGIN": { "TITLE_PLUGIN": "Estensione", diff --git a/snappymail/v/0.0.0/app/localization/ja/admin.json b/snappymail/v/0.0.0/app/localization/ja/admin.json index b92362c40b..1d674826fd 100644 --- a/snappymail/v/0.0.0/app/localization/ja/admin.json +++ b/snappymail/v/0.0.0/app/localization/ja/admin.json @@ -146,7 +146,9 @@ "BUTTON_BACK": "戻る", "BUTTON_UPDATE": "更新", "NEW_DOMAIN_DESC": "このドメイン設定を使用すると、%NAME%<\/strong>メールアドレスで動作するようになります。", - "WHITE_LIST_ALERT": "ドメインの一覧は、Webメールのアクセスを許可されています。\n区切り文字としてスペースを使用してください。\n" + "WHITE_LIST_ALERT": "ドメインの一覧は、Webメールのアクセスを許可されています。\n区切り文字としてスペースを使用してください。\n", + "VALID_SPAM_HEADERS": "Valid SPAM headers", + "VALID_VIRUS_HEADERS": "Valid virus headers" }, "POPUPS_PLUGIN": { "TITLE_PLUGIN": "プラグイン", diff --git a/snappymail/v/0.0.0/app/localization/lt/admin.json b/snappymail/v/0.0.0/app/localization/lt/admin.json index 50061c3d4c..9d62d244f8 100644 --- a/snappymail/v/0.0.0/app/localization/lt/admin.json +++ b/snappymail/v/0.0.0/app/localization/lt/admin.json @@ -146,7 +146,9 @@ "BUTTON_BACK": "Atgal", "BUTTON_UPDATE": "Atnaujinti", "NEW_DOMAIN_DESC": "Šie nustatymai leis jums dirbti su %NAME%<\/strong> domeno pašto adresais.", - "WHITE_LIST_ALERT": "Domeno vartotojų sąrašas, kuriems leista naudotis web paštu.\nNaudokite tarpo simbolį kaip skyriklį.\n" + "WHITE_LIST_ALERT": "Domeno vartotojų sąrašas, kuriems leista naudotis web paštu.\nNaudokite tarpo simbolį kaip skyriklį.\n", + "VALID_SPAM_HEADERS": "Valid SPAM headers", + "VALID_VIRUS_HEADERS": "Valid virus headers" }, "POPUPS_PLUGIN": { "TITLE_PLUGIN": "Įskiepis", diff --git a/snappymail/v/0.0.0/app/localization/nb/admin.json b/snappymail/v/0.0.0/app/localization/nb/admin.json index 24ec4044f8..9617039922 100644 --- a/snappymail/v/0.0.0/app/localization/nb/admin.json +++ b/snappymail/v/0.0.0/app/localization/nb/admin.json @@ -146,7 +146,9 @@ "BUTTON_BACK": "Tilbake", "BUTTON_UPDATE": "Oppdater", "NEW_DOMAIN_DESC": "Dette domeneoppsettet lar deg jobbe med e-postadresser ved %NAME%<\/strong>.", - "WHITE_LIST_ALERT": "Liste over domenebrukere som programmet skal ha tilgang til.\nHold verdier adskilt med mellomrom." + "WHITE_LIST_ALERT": "Liste over domenebrukere som programmet skal ha tilgang til.\nHold verdier adskilt med mellomrom.", + "VALID_SPAM_HEADERS": "Valid SPAM headers", + "VALID_VIRUS_HEADERS": "Valid virus headers" }, "POPUPS_PLUGIN": { "TITLE_PLUGIN": "Tillegg", diff --git a/snappymail/v/0.0.0/app/localization/nl/admin.json b/snappymail/v/0.0.0/app/localization/nl/admin.json index 7dcd82b40e..e91f16c70f 100644 --- a/snappymail/v/0.0.0/app/localization/nl/admin.json +++ b/snappymail/v/0.0.0/app/localization/nl/admin.json @@ -146,7 +146,9 @@ "BUTTON_BACK": "Terug", "BUTTON_UPDATE": "Update", "NEW_DOMAIN_DESC": "Dit domein stelt u in staat om met %NAME%<\/strong> e-mail adressen te werken.", - "WHITE_LIST_ALERT": "Lijst van gebruikers die dit domein mogen gebruiken.\nGebruik een spatie als scheidingsteken." + "WHITE_LIST_ALERT": "Lijst van gebruikers die dit domein mogen gebruiken.\nGebruik een spatie als scheidingsteken.", + "VALID_SPAM_HEADERS": "Valid SPAM headers", + "VALID_VIRUS_HEADERS": "Valid virus headers" }, "POPUPS_PLUGIN": { "TITLE_PLUGIN": "Extensie", diff --git a/snappymail/v/0.0.0/app/localization/pl/admin.json b/snappymail/v/0.0.0/app/localization/pl/admin.json index 3c2716a672..de228ce36b 100644 --- a/snappymail/v/0.0.0/app/localization/pl/admin.json +++ b/snappymail/v/0.0.0/app/localization/pl/admin.json @@ -146,7 +146,9 @@ "BUTTON_BACK": "Wstecz", "BUTTON_UPDATE": "Zaktualizuj", "NEW_DOMAIN_DESC": "Konfiguracja tej domeny pozwala na pracę z adresami e-mail: %NAME%<\/strong>", - "WHITE_LIST_ALERT": "Lista użytkowników domeny, którzy mogą uzyskać dostęp z tego webmaila.\nUżyj spacji do rozdzielenia.\n" + "WHITE_LIST_ALERT": "Lista użytkowników domeny, którzy mogą uzyskać dostęp z tego webmaila.\nUżyj spacji do rozdzielenia.\n", + "VALID_SPAM_HEADERS": "Valid SPAM headers", + "VALID_VIRUS_HEADERS": "Valid virus headers" }, "POPUPS_PLUGIN": { "TITLE_PLUGIN": "Wtyczka", diff --git a/snappymail/v/0.0.0/app/localization/pt-BR/admin.json b/snappymail/v/0.0.0/app/localization/pt-BR/admin.json index 6dfb5f050d..41712c66ee 100644 --- a/snappymail/v/0.0.0/app/localization/pt-BR/admin.json +++ b/snappymail/v/0.0.0/app/localization/pt-BR/admin.json @@ -146,7 +146,9 @@ "BUTTON_BACK": "Voltar", "BUTTON_UPDATE": "Atualizar", "NEW_DOMAIN_DESC": "Esta configuração de domínio lhe permitirá trabalhar com endereços de e-mail do %NAME%<\/strong>.", - "WHITE_LIST_ALERT": "Filtrar com lista dos únicos usuários do domínio que terão acesso ao webmail.\nUse um espaço como delimitador.\n" + "WHITE_LIST_ALERT": "Filtrar com lista dos únicos usuários do domínio que terão acesso ao webmail.\nUse um espaço como delimitador.\n", + "VALID_SPAM_HEADERS": "Valid SPAM headers", + "VALID_VIRUS_HEADERS": "Valid virus headers" }, "POPUPS_PLUGIN": { "TITLE_PLUGIN": "Plugin", diff --git a/snappymail/v/0.0.0/app/localization/pt/admin.json b/snappymail/v/0.0.0/app/localization/pt/admin.json index a1dd257604..9258d6372f 100644 --- a/snappymail/v/0.0.0/app/localization/pt/admin.json +++ b/snappymail/v/0.0.0/app/localization/pt/admin.json @@ -146,7 +146,9 @@ "BUTTON_BACK": "Voltar", "BUTTON_UPDATE": "Atualizar", "NEW_DOMAIN_DESC": "Esta configuração de domínio vai permitir trabalhar com endereços email %NAME%<\/strong>.", - "WHITE_LIST_ALERT": "Lista de utilizadores do domínio aos quais o webmail terá permissão para aceder.\nUsar espaços para delimitar.\n" + "WHITE_LIST_ALERT": "Lista de utilizadores do domínio aos quais o webmail terá permissão para aceder.\nUsar espaços para delimitar.\n", + "VALID_SPAM_HEADERS": "Valid SPAM headers", + "VALID_VIRUS_HEADERS": "Valid virus headers" }, "POPUPS_PLUGIN": { "TITLE_PLUGIN": "Extensão", diff --git a/snappymail/v/0.0.0/app/localization/ru/admin.json b/snappymail/v/0.0.0/app/localization/ru/admin.json index 850e2c7341..76ede4943b 100644 --- a/snappymail/v/0.0.0/app/localization/ru/admin.json +++ b/snappymail/v/0.0.0/app/localization/ru/admin.json @@ -146,7 +146,9 @@ "BUTTON_BACK": "Назад", "BUTTON_UPDATE": "Обновить", "NEW_DOMAIN_DESC": "Эта конфигурация позволит вам работать с %NAME%<\/strong> адресами.", - "WHITE_LIST_ALERT": "Список пользователей домена к которым разрешен доступ.\nИспользуйте пробел в качестве разделителя.\n" + "WHITE_LIST_ALERT": "Список пользователей домена к которым разрешен доступ.\nИспользуйте пробел в качестве разделителя.\n", + "VALID_SPAM_HEADERS": "Valid SPAM headers", + "VALID_VIRUS_HEADERS": "Valid virus headers" }, "POPUPS_PLUGIN": { "TITLE_PLUGIN": "Плагин", diff --git a/snappymail/v/0.0.0/app/localization/sk/admin.json b/snappymail/v/0.0.0/app/localization/sk/admin.json index 4ca23a6855..73dee7764d 100644 --- a/snappymail/v/0.0.0/app/localization/sk/admin.json +++ b/snappymail/v/0.0.0/app/localization/sk/admin.json @@ -146,7 +146,9 @@ "BUTTON_BACK": "Späť", "BUTTON_UPDATE": "Aktualizovať", "NEW_DOMAIN_DESC": "This domain configuration will allow you to work with %NAME%<\/strong> email addresses.", - "WHITE_LIST_ALERT": "List of domain users webmail is allowed to access.\nUse a space as delimiter.\n" + "WHITE_LIST_ALERT": "List of domain users webmail is allowed to access.\nUse a space as delimiter.\n", + "VALID_SPAM_HEADERS": "Valid SPAM headers", + "VALID_VIRUS_HEADERS": "Valid virus headers" }, "POPUPS_PLUGIN": { "TITLE_PLUGIN": "Doplnok", diff --git a/snappymail/v/0.0.0/app/localization/sl/admin.json b/snappymail/v/0.0.0/app/localization/sl/admin.json index fda8d116b6..ef0c5ebe60 100644 --- a/snappymail/v/0.0.0/app/localization/sl/admin.json +++ b/snappymail/v/0.0.0/app/localization/sl/admin.json @@ -146,7 +146,9 @@ "BUTTON_BACK": "Nazaj", "BUTTON_UPDATE": "Posodobi", "NEW_DOMAIN_DESC": "Ta konfiguiracija domene bo omogočala delo z %NAME%<\/strong> e-naslovi.", - "WHITE_LIST_ALERT": "Seznam uporabnikov domene, do katerih je omogočen dostop.\nUporabnike ločite s presledkom.\n" + "WHITE_LIST_ALERT": "Seznam uporabnikov domene, do katerih je omogočen dostop.\nUporabnike ločite s presledkom.\n", + "VALID_SPAM_HEADERS": "Valid SPAM headers", + "VALID_VIRUS_HEADERS": "Valid virus headers" }, "POPUPS_PLUGIN": { "TITLE_PLUGIN": "Vtičnik", diff --git a/snappymail/v/0.0.0/app/localization/sv/admin.json b/snappymail/v/0.0.0/app/localization/sv/admin.json index b9e362ee11..d4fcffe797 100644 --- a/snappymail/v/0.0.0/app/localization/sv/admin.json +++ b/snappymail/v/0.0.0/app/localization/sv/admin.json @@ -146,7 +146,9 @@ "BUTTON_BACK": "Tillbaka", "BUTTON_UPDATE": "Uppdatera", "NEW_DOMAIN_DESC": "Denna domän konfiguration gör att du kan arbeta med %NAME%<\/strong> e-postadresser.", - "WHITE_LIST_ALERT": "Lista över domänanvändare som tillåts.\nAnvända ett utrymme som avgränsare.\n" + "WHITE_LIST_ALERT": "Lista över domänanvändare som tillåts.\nAnvända ett utrymme som avgränsare.\n", + "VALID_SPAM_HEADERS": "Valid SPAM headers", + "VALID_VIRUS_HEADERS": "Valid virus headers" }, "POPUPS_PLUGIN": { "TITLE_PLUGIN": "Tillägget", diff --git a/snappymail/v/0.0.0/app/localization/vi/admin.json b/snappymail/v/0.0.0/app/localization/vi/admin.json index a10a72a551..1d7deeec7d 100644 --- a/snappymail/v/0.0.0/app/localization/vi/admin.json +++ b/snappymail/v/0.0.0/app/localization/vi/admin.json @@ -146,7 +146,9 @@ "BUTTON_BACK": "Trở về", "BUTTON_UPDATE": "Cập nhật", "NEW_DOMAIN_DESC": "Thiết lập tên miền cho phép bạn thao tác với với địa chỉ email của %NAME%<\/strong>.", - "WHITE_LIST_ALERT": "Danh sách những người dùng tên miền mà webmail được quyền truy cập.\nSử dụng dấu cách làm dấu phân cách mỗi tên.\n" + "WHITE_LIST_ALERT": "Danh sách những người dùng tên miền mà webmail được quyền truy cập.\nSử dụng dấu cách làm dấu phân cách mỗi tên.\n", + "VALID_SPAM_HEADERS": "Valid SPAM headers", + "VALID_VIRUS_HEADERS": "Valid virus headers" }, "POPUPS_PLUGIN": { "TITLE_PLUGIN": "Tiện ích mở rộng", diff --git a/snappymail/v/0.0.0/app/localization/zh/admin.json b/snappymail/v/0.0.0/app/localization/zh/admin.json index c483d3dbc7..62c1c02b25 100644 --- a/snappymail/v/0.0.0/app/localization/zh/admin.json +++ b/snappymail/v/0.0.0/app/localization/zh/admin.json @@ -146,7 +146,9 @@ "BUTTON_BACK": "返回", "BUTTON_UPDATE": "更新", "NEW_DOMAIN_DESC": "此域名配置将允许您和%NAME%<\/strong>电子邮件地址一起工作.", - "WHITE_LIST_ALERT": "允许访问的域用户;使用空格分隔。\n" + "WHITE_LIST_ALERT": "允许访问的域用户;使用空格分隔。\n", + "VALID_SPAM_HEADERS": "Valid SPAM headers", + "VALID_VIRUS_HEADERS": "Valid virus headers" }, "POPUPS_PLUGIN": { "TITLE_PLUGIN": "插件", diff --git a/snappymail/v/0.0.0/app/templates/Views/Admin/PopupsDomain.html b/snappymail/v/0.0.0/app/templates/Views/Admin/PopupsDomain.html index 58dedf652d..7b6a3c1f8c 100644 --- a/snappymail/v/0.0.0/app/templates/Views/Admin/PopupsDomain.html +++ b/snappymail/v/0.0.0/app/templates/Views/Admin/PopupsDomain.html @@ -120,8 +120,19 @@

"fast_simple_search": true, "force_select": false, "message_all_headers": false, - "search_filter": null, +
+ + +
--> +
+ + +
+
+ + +
From d40f211995b7986165085575e198298cb8ec0eae Mon Sep 17 00:00:00 2001 From: the-djmaze <> Date: Tue, 4 Jun 2024 17:38:12 +0200 Subject: [PATCH 22/24] Added some info about the viewModelTemplateID in the example extension --- dev/View/User/Login.js | 1 - plugins/example/example.js | 51 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 51 insertions(+), 1 deletion(-) diff --git a/dev/View/User/Login.js b/dev/View/User/Login.js index 78f9b7bb00..6b4c0e1f88 100644 --- a/dev/View/User/Login.js +++ b/dev/View/User/Login.js @@ -20,7 +20,6 @@ const SignMeOn = 1, SignMeUnused = 2; - export class LoginUserView extends AbstractViewLogin { constructor() { super(); diff --git a/plugins/example/example.js b/plugins/example/example.js index 77368e0d1d..7d66ec9d86 100644 --- a/plugins/example/example.js +++ b/plugins/example/example.js @@ -1,4 +1,55 @@ (rl => { + /** + * ViewModel class | class.viewModelTemplateID + * User & Admin: + * AskPopupView | PopupsAsk + * LanguagesPopupView | PopupsLanguages + * User: + * LoginUserView | Login + * SystemDropDownUserView | SystemDropDown + * MailFolderList | MailFolderList + * MailMessageList | MailMessageList + * MailMessageView | MailMessageView + * SettingsMenuUserView | SettingsMenu + * SettingsPaneUserView | SettingsPane + * UserSettingsAccounts | SettingsAccounts + * UserSettingsContacts | SettingsContacts + * UserSettingsFilters | SettingsFilters + * UserSettingsFolders | SettingsFolders + * UserSettingsGeneral | SettingsGeneral + * UserSettingsSecurity | SettingsSecurity + * UserSettingsThemes | SettingsThemes + * AccountPopupView | PopupsAccount + * AdvancedSearchPopupView | PopupsAdvancedSearch + * ComposePopupView | PopupsCompose + * ContactsPopupView | PopupsContacts + * FolderPopupView | PopupsFolder + * FolderClearPopupView | PopupsFolderClear + * FolderCreatePopupView | PopupsFolderCreate + * FolderSystemPopupView | PopupsFolderSystem + * IdentityPopupView | PopupsIdentity + * KeyboardShortcutsHelpPopupView | PopupsKeyboardShortcutsHelp + * OpenPgpGeneratePopupView | PopupsOpenPgpGenerate + * OpenPgpImportPopupView | PopupsOpenPgpImport + * OpenPgpKeyPopupView | PopupsOpenPgpKey + * SMimeImportPopupView | PopupsSMimeImport + * Admin: + * AdminLoginView | AdminLogin + * MenuSettingsAdminView | AdminMenu + * PaneSettingsAdminView | AdminPane + * AdminSettingsAbout | AdminSettingsAbout + * AdminSettingsBranding | AdminSettingsBranding + * AdminSettingsConfig | AdminSettingsConfig + * AdminSettingsContacts | AdminSettingsContacts + * AdminSettingsDomains | AdminSettingsDomains + * AdminSettingsGeneral | AdminSettingsGeneral + * AdminSettingsLogin | AdminSettingsLogin + * AdminSettingsPackages | AdminSettingsPackages + * AdminSettingsSecurity | AdminSettingsSecurity + * DomainPopupView | PopupsDomain + * DomainAliasPopupView | PopupsDomainAlias + * PluginPopupView | PopupsPlugin + */ /** * Happens immediately after the ViewModel constructor From b840e5244b0dfaadcc2ad9807f22c6d200889809 Mon Sep 17 00:00:00 2001 From: hguilbert <51283484+hguilbert@users.noreply.github.com> Date: Tue, 4 Jun 2024 18:35:13 +0200 Subject: [PATCH 23/24] Update admin.json --- snappymail/v/0.0.0/app/localization/fr/admin.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/snappymail/v/0.0.0/app/localization/fr/admin.json b/snappymail/v/0.0.0/app/localization/fr/admin.json index 3994d37ad1..83afedfe15 100644 --- a/snappymail/v/0.0.0/app/localization/fr/admin.json +++ b/snappymail/v/0.0.0/app/localization/fr/admin.json @@ -147,8 +147,8 @@ "BUTTON_UPDATE": "Modifier", "NEW_DOMAIN_DESC": "Cette configuration de domaine vous permettra de travailler avec %NAME%<\/strong> dans les adresses électroniques.", "WHITE_LIST_ALERT": "Liste des utilisateurs du domaine auxquels le webmail est autorisé à accéder.\nUtilisez un espace comme séparateur.", - "VALID_SPAM_HEADERS": "Valid SPAM headers", - "VALID_VIRUS_HEADERS": "Valid virus headers" + "VALID_SPAM_HEADERS": "En-têtes SPAM valides", + "VALID_VIRUS_HEADERS": "En-têtes de virus valides" }, "POPUPS_PLUGIN": { "TITLE_PLUGIN": "Extension", From 2daa299b7246759761fa673e6f1f495dcfdeb65f Mon Sep 17 00:00:00 2001 From: tinola Date: Wed, 5 Jun 2024 07:27:47 +0200 Subject: [PATCH 24/24] Update admin.json --- snappymail/v/0.0.0/app/localization/pl/admin.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/snappymail/v/0.0.0/app/localization/pl/admin.json b/snappymail/v/0.0.0/app/localization/pl/admin.json index de228ce36b..49ab0f5818 100644 --- a/snappymail/v/0.0.0/app/localization/pl/admin.json +++ b/snappymail/v/0.0.0/app/localization/pl/admin.json @@ -147,8 +147,8 @@ "BUTTON_UPDATE": "Zaktualizuj", "NEW_DOMAIN_DESC": "Konfiguracja tej domeny pozwala na pracę z adresami e-mail: %NAME%<\/strong>", "WHITE_LIST_ALERT": "Lista użytkowników domeny, którzy mogą uzyskać dostęp z tego webmaila.\nUżyj spacji do rozdzielenia.\n", - "VALID_SPAM_HEADERS": "Valid SPAM headers", - "VALID_VIRUS_HEADERS": "Valid virus headers" + "VALID_SPAM_HEADERS": "Prawidłowe nagłówki informacji o SPAMie", + "VALID_VIRUS_HEADERS": "Prawidłowe nagłówki informacji o wirusach" }, "POPUPS_PLUGIN": { "TITLE_PLUGIN": "Wtyczka",