Add custom auth, connection testing, preconfig_only, and security fixes

Major form improvements:
- Custom SMTP/Sieve credentials (separate username/password per protocol)
- Connection testing on save (IMAP, SMTP, Sieve) with localized errors
- preconfig_only mode to restrict domains to preconfigured entries
- Form POST value preservation on save errors (auth selects, passwords)
- Smart host placeholders (SMTP/Sieve default to IMAP host)

Security and bug:
- Fix password re-encryption bug (was comparing raw vs encrypted values)
- Fix XSS: escape label output in special folders form
- Fix parse_url() return value not checked for false
- Fix decrypt() failures not handled (fallback to empty string)
- Sanitize log output (remove raw POST data from log messages)
- Replace weak == comparisons with strict === (PHP and JS)

SQL changes:
- Consolidate 4 migrations (2026021000-03) into single 2026021000
- Remove now unused notify_sound_url column
- Add smtp_username, smtp_password, sieve_username, sieve_password columns
This commit is contained in:
Laurent Dinclaux
2026-02-10 20:48:49 +11:00
parent 3a8202bd7a
commit fd9836c7ae
25 changed files with 1042 additions and 209 deletions

View File

@@ -4,14 +4,20 @@
*/
$labels = array();
// Plugin ident_switch
$labels['form.common.caption'] = 'Plugin ident_switch';
// Separate Account
$labels['form.caption'] = 'Separates Konto';
$labels['form.description'] = 'Konfigurieren Sie diese Identität als separates Konto mit eigenen Mailserver-Verbindungen.';
$labels['form.preconfig_only_warning'] = 'Die Konfiguration als separates Konto ist für die Domain %s nicht verfügbar.';
// General
$labels['form.common.general'] = 'Allgemein';
// Enabled
$labels['form.common.enabled'] = 'Aktiviert';
// Label
$labels['form.common.label'] = 'Bezeichnung';
$labels['form.common.label.hint'] = 'Name, der im Kontowechsler angezeigt wird. Wenn leer, wird die E-Mail-Adresse verwendet.';
// Value in \'Label\' field is too long (32 chars max).
$labels['err.label.long'] = 'Der Wert in Feld \'Bezeichnung\' ist zu lang (max. 32 Zeichen).';
@@ -20,8 +26,8 @@ $labels['err.label.long'] = 'Der Wert in Feld \'Bezeichnung\' ist zu lang (max.
// IMAP
$labels['form.imap.caption'] = 'IMAP';
// Server host name
$labels['form.imap.host'] = 'Servername';
// Incoming mail server
$labels['form.imap.host'] = 'Posteingangsserver';
// Security
$labels['form.imap.security'] = 'Sicherheit';
@@ -47,8 +53,8 @@ $labels['err.user.long'] = 'Der Wert in Feld \'Benutzername\' ist zu lang (max.
// SMTP
$labels['form.smtp.caption'] = 'SMTP';
// Server host name
$labels['form.smtp.host'] = 'Servername';
// Outgoing mail server
$labels['form.smtp.host'] = 'Postausgangsserver';
// Security
$labels['form.smtp.security'] = 'Sicherheit';
@@ -65,6 +71,15 @@ $labels['form.smtp.auth.imap'] = 'Wie IMAP';
// None
$labels['form.smtp.auth.none'] = 'Keine';
// Custom
$labels['form.smtp.auth.custom'] = 'Benutzerdefiniert';
// Username
$labels['form.smtp.username'] = 'Benutzername';
// Password
$labels['form.smtp.password'] = 'Passwort';
// Sieve
$labels['form.sieve.caption'] = 'Sieve';
@@ -87,6 +102,15 @@ $labels['form.sieve.auth.imap'] = 'Wie IMAP';
// None
$labels['form.sieve.auth.none'] = 'Keine';
// Custom
$labels['form.sieve.auth.custom'] = 'Benutzerdefiniert';
// Username
$labels['form.sieve.username'] = 'Benutzername';
// Password
$labels['form.sieve.password'] = 'Passwort';
// Notifications
$labels['form.notify.caption'] = 'Benachrichtigungen';
@@ -140,3 +164,12 @@ $labels['err.port.num'] = 'Der Wert in Feld \'Port\' muss eine Zahl sein.';
// Value in \'Port\' field must be between 1 and 65535.
$labels['err.port.range'] = 'Der Wert in Feld \'Port\' muss zwischen 1 und 65535 liegen.';
// IMAP connection test failed.
$labels['err.imap.connect'] = 'IMAP-Verbindung fehlgeschlagen. Bitte überprüfen Sie Serveradresse, Port und Zugangsdaten.';
// SMTP connection test failed.
$labels['err.smtp.connect'] = 'SMTP-Verbindung fehlgeschlagen. Bitte überprüfen Sie Serveradresse, Port und Zugangsdaten.';
// Sieve connection test failed.
$labels['err.sieve.connect'] = 'Sieve-Verbindung fehlgeschlagen. Bitte überprüfen Sie Serveradresse, Port und Zugangsdaten.';

View File

@@ -4,14 +4,20 @@
*/
$labels = array();
// Plugin ident_switch
$labels['form.common.caption'] = 'Plugin ident_switch';
// Separate Account
$labels['form.caption'] = 'Separate Account';
$labels['form.description'] = 'Configure this identity as a separate account with its own mail server connections.';
$labels['form.preconfig_only_warning'] = 'Separate account configuration is not available for the domain %s.';
// General
$labels['form.common.general'] = 'General';
// Enabled
$labels['form.common.enabled'] = 'Enabled';
// Label
$labels['form.common.label'] = 'Label';
$labels['form.common.label.hint'] = 'Name displayed in the account switcher. If empty, the email address is used.';
// Value in \'Label\' field is too long (32 chars max).
$labels['err.label.long'] = 'Value in \'Label\' field is too long (32 chars max).';
@@ -20,8 +26,8 @@ $labels['err.label.long'] = 'Value in \'Label\' field is too long (32 chars max)
// IMAP
$labels['form.imap.caption'] = 'IMAP';
// Server host name
$labels['form.imap.host'] = 'Server host name';
// Incoming mail server
$labels['form.imap.host'] = 'Incoming mail server';
// Security
$labels['form.imap.security'] = 'Security';
@@ -47,8 +53,8 @@ $labels['err.user.long'] = 'Value in \'Username\' field is too long (64 chars ma
// SMTP
$labels['form.smtp.caption'] = 'SMTP';
// Server host name
$labels['form.smtp.host'] = 'Server host name';
// Outgoing mail server
$labels['form.smtp.host'] = 'Outgoing mail server';
// Security
$labels['form.smtp.security'] = 'Security';
@@ -65,6 +71,15 @@ $labels['form.smtp.auth.imap'] = 'As IMAP';
// None
$labels['form.smtp.auth.none'] = 'None';
// Custom
$labels['form.smtp.auth.custom'] = 'Custom';
// Username
$labels['form.smtp.username'] = 'Username';
// Password
$labels['form.smtp.password'] = 'Password';
// Sieve
$labels['form.sieve.caption'] = 'Sieve';
@@ -87,6 +102,15 @@ $labels['form.sieve.auth.imap'] = 'As IMAP';
// None
$labels['form.sieve.auth.none'] = 'None';
// Custom
$labels['form.sieve.auth.custom'] = 'Custom';
// Username
$labels['form.sieve.username'] = 'Username';
// Password
$labels['form.sieve.password'] = 'Password';
// Notifications
$labels['form.notify.caption'] = 'Notifications';
@@ -134,3 +158,12 @@ $labels['err.port.num'] = 'Value in \'Port\' field must be a number.';
// Value in \'Port\' field must be between 1 and 65535.
$labels['err.port.range'] = 'Value in \'Port\' field must be between 1 and 65535.';
// IMAP connection test failed.
$labels['err.imap.connect'] = 'IMAP connection failed. Please check the server address, port, and credentials.';
// SMTP connection test failed.
$labels['err.smtp.connect'] = 'SMTP connection failed. Please check the server address, port, and credentials.';
// Sieve connection test failed.
$labels['err.sieve.connect'] = 'Sieve connection failed. Please check the server address, port, and credentials.';

View File

@@ -4,14 +4,20 @@
*/
$labels = array();
// Plugin ident_switch
$labels['form.common.caption'] = 'Plugin ident_switch';
// Separate Account
$labels['form.caption'] = 'Compte séparé';
$labels['form.description'] = 'Configurez cette identité comme un compte séparé avec ses propres connexions aux serveurs de messagerie.';
$labels['form.preconfig_only_warning'] = 'La configuration de compte séparé n\'est pas disponible pour le domaine %s.';
// General
$labels['form.common.general'] = 'Général';
// Enabled
$labels['form.common.enabled'] = 'Activer';
// Label
$labels['form.common.label'] = 'Nom à afficher';
$labels['form.common.label.hint'] = 'Nom affiché dans le sélecteur de compte. Si vide, l\'adresse email est utilisée.';
// Value in \'Label\' field is too long (32 chars max).
$labels['err.label.long'] = 'La valeur du champ \'Nom à afficher\' est trop longue (32 caractères max).';
@@ -20,8 +26,8 @@ $labels['err.label.long'] = 'La valeur du champ \'Nom à afficher\' est trop lon
// IMAP
$labels['form.imap.caption'] = 'IMAP';
// Server host name
$labels['form.imap.host'] = 'Serveur';
// Incoming mail server
$labels['form.imap.host'] = 'Serveur de courrier entrant';
// Security
$labels['form.imap.security'] = 'Sécurité';
@@ -47,8 +53,8 @@ $labels['err.user.long'] = 'La valeur du champ \'Nom d\'utilisateur\' de la sect
// SMTP
$labels['form.smtp.caption'] = 'SMTP';
// Server host name
$labels['form.smtp.host'] = 'Serveur';
// Outgoing mail server
$labels['form.smtp.host'] = 'Serveur de courrier sortant';
// Security
$labels['form.smtp.security'] = 'Sécurité';
@@ -65,6 +71,15 @@ $labels['form.smtp.auth.imap'] = 'Identique à IMAP';
// None
$labels['form.smtp.auth.none'] = 'Aucune';
// Custom
$labels['form.smtp.auth.custom'] = 'Personnalisée';
// Username
$labels['form.smtp.username'] = 'Nom d\'utilisateur';
// Password
$labels['form.smtp.password'] = 'Mot de passe';
// Sieve
$labels['form.sieve.caption'] = 'Sieve';
@@ -87,6 +102,15 @@ $labels['form.sieve.auth.imap'] = 'Identique à IMAP';
// None
$labels['form.sieve.auth.none'] = 'Aucune';
// Custom
$labels['form.sieve.auth.custom'] = 'Personnalisée';
// Username
$labels['form.sieve.username'] = 'Nom d\'utilisateur';
// Password
$labels['form.sieve.password'] = 'Mot de passe';
// Notifications
$labels['form.notify.caption'] = 'Notifications';
@@ -133,3 +157,12 @@ $labels['err.port.num'] = 'La valeur du champ \'Port\' doit être un nombre.';
// Value in \'Port\' field must be between 1 and 65535.
$labels['err.port.range'] = 'La valeur du champ \'Port\' doit être comprise entre 1 et 65535.';
// IMAP connection test failed.
$labels['err.imap.connect'] = 'La connexion IMAP a échoué. Vérifiez l\'adresse du serveur, le port et les identifiants.';
// SMTP connection test failed.
$labels['err.smtp.connect'] = 'La connexion SMTP a échoué. Vérifiez l\'adresse du serveur, le port et les identifiants.';
// Sieve connection test failed.
$labels['err.sieve.connect'] = 'La connexion Sieve a échoué. Vérifiez l\'adresse du serveur, le port et les identifiants.';

View File

@@ -4,14 +4,20 @@
*/
$labels = array();
// Plugin ident_switch
$labels['form.common.caption'] = 'Plugin ident_switch';
// Separate Account
$labels['form.caption'] = 'Account separato';
$labels['form.description'] = 'Configura questa identità come un account separato con le proprie connessioni al server di posta.';
$labels['form.preconfig_only_warning'] = 'La configurazione come account separato non è disponibile per il dominio %s.';
// General
$labels['form.common.general'] = 'Generale';
// Enabled
$labels['form.common.enabled'] = 'Abilita';
// Label
$labels['form.common.label'] = 'Nome visualizzato';
$labels['form.common.label.hint'] = 'Nome visualizzato nel selettore account. Se vuoto, viene utilizzato l\'indirizzo email.';
// Value in \'Label\' field is too long (32 chars max).
$labels['err.label.long'] = 'Il valore del campo \'Nome Visualizzato\' è troppo lungo (massimo 32 caratteri).';
@@ -20,8 +26,8 @@ $labels['err.label.long'] = 'Il valore del campo \'Nome Visualizzato\' è troppo
// IMAP
$labels['form.imap.caption'] = 'IMAP';
// Server host name
$labels['form.imap.host'] = 'Nome del server';
// Incoming mail server
$labels['form.imap.host'] = 'Server posta in arrivo';
// Security
$labels['form.imap.security'] = 'Sicurezza';
@@ -47,8 +53,8 @@ $labels['err.user.long'] = 'Il valore del campo \'Username\' è troppo lungo (ma
// SMTP
$labels['form.smtp.caption'] = 'SMTP';
// Server host name
$labels['form.smtp.host'] = 'Nome del server';
// Outgoing mail server
$labels['form.smtp.host'] = 'Server posta in uscita';
// Security
$labels['form.smtp.security'] = 'Sicurezza';
@@ -65,6 +71,15 @@ $labels['form.smtp.auth.imap'] = 'Come IMAP';
// None
$labels['form.smtp.auth.none'] = 'Nessuna';
// Custom
$labels['form.smtp.auth.custom'] = 'Personalizzata';
// Username
$labels['form.smtp.username'] = 'Username';
// Password
$labels['form.smtp.password'] = 'Password';
// Sieve
$labels['form.sieve.caption'] = 'Sieve';
@@ -87,6 +102,15 @@ $labels['form.sieve.auth.imap'] = 'Come IMAP';
// None
$labels['form.sieve.auth.none'] = 'Nessuna';
// Custom
$labels['form.sieve.auth.custom'] = 'Personalizzata';
// Username
$labels['form.sieve.username'] = 'Username';
// Password
$labels['form.sieve.password'] = 'Password';
// Notifications
$labels['form.notify.caption'] = 'Notifiche';
@@ -140,3 +164,12 @@ $labels['err.port.num'] = 'Il valore del campo \'Porta\' deve essere un numero.'
// Value in \'Port\' field must be between 1 and 65535.
$labels['err.port.range'] = 'Il valore del campo \'Porta\' deve essere compreso tra 1 e 65535.';
// IMAP connection test failed.
$labels['err.imap.connect'] = 'Connessione IMAP fallita. Verificare l\'indirizzo del server, la porta e le credenziali.';
// SMTP connection test failed.
$labels['err.smtp.connect'] = 'Connessione SMTP fallita. Verificare l\'indirizzo del server, la porta e le credenziali.';
// Sieve connection test failed.
$labels['err.sieve.connect'] = 'Connessione Sieve fallita. Verificare l\'indirizzo del server, la porta e le credenziali.';

View File

@@ -4,14 +4,20 @@
*/
$labels = array();
// Plugin ident_switch
$labels['form.common.caption'] = 'Plugin ident_switch';
// Separate Account
$labels['form.caption'] = 'Afzonderlijk account';
$labels['form.description'] = 'Configureer deze identiteit als een afzonderlijk account met eigen mailserververbindingen.';
$labels['form.preconfig_only_warning'] = 'Configuratie als afzonderlijk account is niet beschikbaar voor het domein %s.';
// General
$labels['form.common.general'] = 'Algemeen';
// Enabled
$labels['form.common.enabled'] = 'Inschakelen';
// Label
$labels['form.common.label'] = 'Label';
$labels['form.common.label.hint'] = 'Naam weergegeven in de accountkiezer. Indien leeg, wordt het e-mailadres gebruikt.';
// Value in \'Label\' field is too long (32 chars max).
$labels['err.label.long'] = 'De waarde in het veld \'Label\' is te lang (maximaal 32 karakter is toegestaan).';
@@ -20,8 +26,8 @@ $labels['err.label.long'] = 'De waarde in het veld \'Label\' is te lang (maximaa
// IMAP
$labels['form.imap.caption'] = 'IMAP';
// Server host name
$labels['form.imap.host'] = 'Servernaam';
// Incoming mail server
$labels['form.imap.host'] = 'Inkomende mailserver';
// Security
$labels['form.imap.security'] = 'Beveiliging';
@@ -47,8 +53,8 @@ $labels['err.user.long'] = 'De waarde in het veld \'Gebruikersnaam\' is te lang
// SMTP
$labels['form.smtp.caption'] = 'SMTP';
// Server host name
$labels['form.smtp.host'] = 'Servernaam';
// Outgoing mail server
$labels['form.smtp.host'] = 'Uitgaande mailserver';
// Security
$labels['form.smtp.security'] = 'Beveiliging';
@@ -65,6 +71,15 @@ $labels['form.smtp.auth.imap'] = 'Zoals IMAP';
// None
$labels['form.smtp.auth.none'] = 'Geen';
// Custom
$labels['form.smtp.auth.custom'] = 'Aangepast';
// Username
$labels['form.smtp.username'] = 'Gebruikersnaam';
// Password
$labels['form.smtp.password'] = 'Wachtwoord';
// Sieve
$labels['form.sieve.caption'] = 'Sieve';
@@ -87,6 +102,15 @@ $labels['form.sieve.auth.imap'] = 'Zoals IMAP';
// None
$labels['form.sieve.auth.none'] = 'Geen';
// Custom
$labels['form.sieve.auth.custom'] = 'Aangepast';
// Username
$labels['form.sieve.username'] = 'Gebruikersnaam';
// Password
$labels['form.sieve.password'] = 'Wachtwoord';
// Notifications
$labels['form.notify.caption'] = 'Meldingen';
@@ -140,3 +164,12 @@ $labels['err.port.num'] = 'De waarde in het veld \'Poortnummer\' moet een nummer
// Value in \'Port\' field must be between 1 and 65535.
$labels['err.port.range'] = 'De waarde in het veld \'Poortnummer\' moet tussen de 1 en 65535 zijn.';
// IMAP connection test failed.
$labels['err.imap.connect'] = 'IMAP-verbinding mislukt. Controleer het serveradres, de poort en de inloggegevens.';
// SMTP connection test failed.
$labels['err.smtp.connect'] = 'SMTP-verbinding mislukt. Controleer het serveradres, de poort en de inloggegevens.';
// Sieve connection test failed.
$labels['err.sieve.connect'] = 'Sieve-verbinding mislukt. Controleer het serveradres, de poort en de inloggegevens.';

View File

@@ -4,14 +4,20 @@
*/
$labels = array();
// Plugin ident_switch
$labels['form.common.caption'] = 'Плагин ident_switch';
// Separate Account
$labels['form.caption'] = 'Отдельный аккаунт';
$labels['form.description'] = 'Настройте эту учётную запись как отдельный аккаунт с собственными подключениями к почтовому серверу.';
$labels['form.preconfig_only_warning'] = 'Настройка отдельного аккаунта недоступна для домена %s.';
// General
$labels['form.common.general'] = 'Общие';
// Enabled
$labels['form.common.enabled'] = 'Включено';
// Label
$labels['form.common.label'] = 'Название';
$labels['form.common.label.hint'] = 'Имя, отображаемое в переключателе аккаунтов. Если пусто, используется адрес электронной почты.';
// Value in \'Label\' field is too long (32 chars max).
$labels['err.label.long'] = '\'Название\' должно быть не длинее 32 символов.';
@@ -20,8 +26,8 @@ $labels['err.label.long'] = '\'Название\' должно быть не д
// IMAP
$labels['form.imap.caption'] = 'IMAP';
// Server host name
$labels['form.imap.host'] = 'Адрес сервера';
// Incoming mail server
$labels['form.imap.host'] = 'Сервер входящей почты';
// Security
$labels['form.imap.security'] = 'Безопасность';
@@ -47,8 +53,8 @@ $labels['err.user.long'] = '\'Имя пользователя\' должно б
// SMTP
$labels['form.smtp.caption'] = 'SMTP';
// Server host name
$labels['form.smtp.host'] = 'Адрес сервера';
// Outgoing mail server
$labels['form.smtp.host'] = 'Сервер исходящей почты';
// Security
$labels['form.smtp.security'] = 'Безопасность';
@@ -65,6 +71,15 @@ $labels['form.smtp.auth.imap'] = 'Как IMAP';
// None
$labels['form.smtp.auth.none'] = 'Нет';
// Custom
$labels['form.smtp.auth.custom'] = 'Другие';
// Username
$labels['form.smtp.username'] = 'Имя пользователя';
// Password
$labels['form.smtp.password'] = 'Пароль';
// Sieve
$labels['form.sieve.caption'] = 'Sieve';
@@ -87,6 +102,15 @@ $labels['form.sieve.auth.imap'] = 'Как IMAP';
// None
$labels['form.sieve.auth.none'] = 'Нет';
// Custom
$labels['form.sieve.auth.custom'] = 'Другие';
// Username
$labels['form.sieve.username'] = 'Имя пользователя';
// Password
$labels['form.sieve.password'] = 'Пароль';
// Notifications
$labels['form.notify.caption'] = 'Уведомления';
@@ -139,4 +163,13 @@ $labels['err.host.long'] = '\'Адрес сервера\' должен быть
$labels['err.port.num'] = '\'Порт\' должен быть числом.';
// Value in \'Port\' field must be between 1 and 65535.
$labels['err.port.range'] = '\'Порт\' должен быть в диапазоне от 1 до 65535.';
$labels['err.port.range'] = '\'Порт\' должен быть в диапазоне от 1 до 65535.';
// IMAP connection test failed.
$labels['err.imap.connect'] = 'Ошибка подключения к IMAP. Проверьте адрес сервера, порт и учётные данные.';
// SMTP connection test failed.
$labels['err.smtp.connect'] = 'Ошибка подключения к SMTP. Проверьте адрес сервера, порт и учётные данные.';
// Sieve connection test failed.
$labels['err.sieve.connect'] = 'Ошибка подключения к Sieve. Проверьте адрес сервера, порт и учётные данные.';

View File

@@ -4,14 +4,20 @@
*/
$labels = array();
// Plugin ident_switch
$labels['form.common.caption'] = 'Razširitev ident_switch';
// Separate Account
$labels['form.caption'] = 'Ločen račun';
$labels['form.description'] = 'Konfigurirajte to identiteto kot ločen račun z lastnimi povezavami do poštnega strežnika.';
$labels['form.preconfig_only_warning'] = 'Konfiguracija ločenega računa za domeno %s ni na voljo.';
// General
$labels['form.common.general'] = 'Splošno';
// Enabled
$labels['form.common.enabled'] = 'Omogočeno';
// Label
$labels['form.common.label'] = 'Oznaka';
$labels['form.common.label.hint'] = 'Ime, prikazano v izbirniku računov. Če je prazno, se uporabi e-poštni naslov.';
// Value in \'Label\' field is too long (32 chars max).
$labels['err.label.long'] = 'Število znakov v polju \'Oznaka\' presega maksimalno število znakov (max 32 znakov).';
@@ -20,8 +26,8 @@ $labels['err.label.long'] = 'Število znakov v polju \'Oznaka\' presega maksimal
// IMAP
$labels['form.imap.caption'] = 'IMAP';
// Server host name
$labels['form.imap.host'] = 'Ime oz. naslov IMAP strežnika';
// Incoming mail server
$labels['form.imap.host'] = 'Strežnik dohodne pošte';
// Security
$labels['form.imap.security'] = 'Varnost';
@@ -47,8 +53,8 @@ $labels['err.user.long'] = 'Število znakov v polju \'Uporabniško ime\' presega
// SMTP
$labels['form.smtp.caption'] = 'SMTP';
// Server host name
$labels['form.smtp.host'] = 'Ime oz. naslov SMTP strežnika';
// Outgoing mail server
$labels['form.smtp.host'] = 'Strežnik odhodne pošte';
// Security
$labels['form.smtp.security'] = 'Varnost';
@@ -65,6 +71,15 @@ $labels['form.smtp.auth.imap'] = 'Tako kot IMAP';
// None
$labels['form.smtp.auth.none'] = 'Brez';
// Custom
$labels['form.smtp.auth.custom'] = 'Po meri';
// Username
$labels['form.smtp.username'] = 'Uporabniško ime';
// Password
$labels['form.smtp.password'] = 'Geslo';
// Sieve
$labels['form.sieve.caption'] = 'Sieve';
@@ -87,6 +102,15 @@ $labels['form.sieve.auth.imap'] = 'Tako kot IMAP';
// None
$labels['form.sieve.auth.none'] = 'Brez';
// Custom
$labels['form.sieve.auth.custom'] = 'Po meri';
// Username
$labels['form.sieve.username'] = 'Uporabniško ime';
// Password
$labels['form.sieve.password'] = 'Geslo';
// Notifications
$labels['form.notify.caption'] = 'Obvestila';
@@ -140,3 +164,12 @@ $labels['err.port.num'] = 'Vrednost \'Vrata\' mora biti številka.';
// Value in \'Port\' field must be between 1 and 65535.
$labels['err.port.range'] = 'Vrednost v polju \'Vrata\' mora biti med 1 in 65535.';
// IMAP connection test failed.
$labels['err.imap.connect'] = 'Povezava IMAP ni uspela. Preverite naslov strežnika, vrata in poverilnice.';
// SMTP connection test failed.
$labels['err.smtp.connect'] = 'Povezava SMTP ni uspela. Preverite naslov strežnika, vrata in poverilnice.';
// Sieve connection test failed.
$labels['err.sieve.connect'] = 'Povezava Sieve ni uspela. Preverite naslov strežnika, vrata in poverilnice.';