Add managesieve (Sieve) support for remote accounts

When switching identities, the managesieve plugin still connected to
the default sieve server. Hook into managesieve_connect to redirect
the sieve connection to the remote account's server.

Adds sieve_host, sieve_port and sieve_auth columns to the database,
a Sieve section to the identity settings form, preconfig support for
sieve_host, and localized labels for all 7 languages.
This commit is contained in:
Laurent Dinclaux
2026-02-10 11:05:01 +11:00
parent 546e9ba882
commit 6ea4aee0a7
19 changed files with 346 additions and 3 deletions

View File

@@ -64,6 +64,25 @@ $labels['form.smtp.auth.imap'] = 'Wie IMAP';
$labels['form.smtp.auth.none'] = 'Keine';
// Sieve
$labels['form.sieve.caption'] = 'Sieve';
// Server host name
$labels['form.sieve.host'] = 'Servername';
// Port
$labels['form.sieve.port'] = 'Port';
// Authorization
$labels['form.sieve.auth'] = 'Autorisierung';
// As IMAP
$labels['form.sieve.auth.imap'] = 'Wie IMAP';
// None
$labels['form.sieve.auth.none'] = 'Keine';
// Errors
// Value in \'Server host name\' field is too long (64 chars max).

View File

@@ -64,6 +64,25 @@ $labels['form.smtp.auth.imap'] = 'As IMAP';
$labels['form.smtp.auth.none'] = 'None';
// Sieve
$labels['form.sieve.caption'] = 'Sieve';
// Server host name
$labels['form.sieve.host'] = 'Server host name';
// Port
$labels['form.sieve.port'] = 'Port';
// Authorization
$labels['form.sieve.auth'] = 'Authorization';
// As IMAP
$labels['form.sieve.auth.imap'] = 'As IMAP';
// None
$labels['form.sieve.auth.none'] = 'None';
// Errors
// Value in \'Server host name\' field is too long (64 chars max).

View File

@@ -64,6 +64,25 @@ $labels['form.smtp.auth.imap'] = 'Identique à IMAP';
$labels['form.smtp.auth.none'] = 'Aucune';
// Sieve
$labels['form.sieve.caption'] = 'Sieve';
// Server host name
$labels['form.sieve.host'] = 'Serveur';
// Port
$labels['form.sieve.port'] = 'Port';
// Authorization
$labels['form.sieve.auth'] = 'Autorisation';
// As IMAP
$labels['form.sieve.auth.imap'] = 'Identique à IMAP';
// None
$labels['form.sieve.auth.none'] = 'Aucune';
// Errors
// Value in \'Server host name\' field is too long (64 chars max).

View File

@@ -64,6 +64,25 @@ $labels['form.smtp.auth.imap'] = 'Come IMAP';
$labels['form.smtp.auth.none'] = 'Nessuna';
// Sieve
$labels['form.sieve.caption'] = 'Sieve';
// Server host name
$labels['form.sieve.host'] = 'Nome del server';
// Port
$labels['form.sieve.port'] = 'Porta';
// Authorization
$labels['form.sieve.auth'] = 'Autorizzazione';
// As IMAP
$labels['form.sieve.auth.imap'] = 'Come IMAP';
// None
$labels['form.sieve.auth.none'] = 'Nessuna';
// Errors
// Value in \'Server host name\' field is too long (64 chars max).

View File

@@ -64,6 +64,25 @@ $labels['form.smtp.auth.imap'] = 'Zoals IMAP';
$labels['form.smtp.auth.none'] = 'Geen';
// Sieve
$labels['form.sieve.caption'] = 'Sieve';
// Server host name
$labels['form.sieve.host'] = 'Servernaam';
// Port
$labels['form.sieve.port'] = 'Poortnummer';
// Authorization
$labels['form.sieve.auth'] = 'Autorisatie';
// As IMAP
$labels['form.sieve.auth.imap'] = 'Zoals IMAP';
// None
$labels['form.sieve.auth.none'] = 'Geen';
// Errors
// Value in \'Server host name\' field is too long (64 chars max).

View File

@@ -64,6 +64,25 @@ $labels['form.smtp.auth.imap'] = 'Как IMAP';
$labels['form.smtp.auth.none'] = 'Нет';
// Sieve
$labels['form.sieve.caption'] = 'Sieve';
// Server host name
$labels['form.sieve.host'] = 'Адрес сервера';
// Port
$labels['form.sieve.port'] = 'Порт';
// Authorization
$labels['form.sieve.auth'] = 'Авторизация';
// As IMAP
$labels['form.sieve.auth.imap'] = 'Как IMAP';
// None
$labels['form.sieve.auth.none'] = 'Нет';
// Errors
// Value in \'Server host name\' field is too long (64 chars max).

View File

@@ -64,6 +64,25 @@ $labels['form.smtp.auth.imap'] = 'Tako kot IMAP';
$labels['form.smtp.auth.none'] = 'Brez';
// Sieve
$labels['form.sieve.caption'] = 'Sieve';
// Server host name
$labels['form.sieve.host'] = 'Ime oz. naslov Sieve strežnika';
// Port
$labels['form.sieve.port'] = 'Vrata';
// Authorization
$labels['form.sieve.auth'] = 'Avtorizacija';
// As IMAP
$labels['form.sieve.auth.imap'] = 'Tako kot IMAP';
// None
$labels['form.sieve.auth.none'] = 'Brez';
// Errors
// Value in \'Server host name\' field is too long (64 chars max).