Fix IMAP: import failed after authenticating to Dovecot when a capability contained :, such as IMAPSIEVE=sieve://... (fixes #43)

This commit is contained in:
Maurus Decimus
2026-09-28 11:38:10 +02:00
parent 5dc92c7329
commit 70fa688d25
17 changed files with 617 additions and 461 deletions
+6
View File
@@ -82,6 +82,10 @@ service managesieve-login {
}
}
protocol imap {
mail_plugins = $mail_plugins imap_sieve
}
protocol sieve {
managesieve_max_line_length = 1M
managesieve_max_compile_errors = 5
@@ -96,6 +100,7 @@ info_log_path = /dev/stderr
plugin {
sieve = file:~/sieve;active=~/.dovecot.sieve
sieve_max_script_size = 1M
imapsieve_url = sieve://127.0.0.1:4190
}
"#;
@@ -139,6 +144,7 @@ impl Dovecot {
let host = container.get_host()?.to_string();
let imap = Endpoint::new(host.clone(), container.get_host_port_ipv4(IMAP_PORT.tcp())?);
let sieve = Endpoint::new(host, container.get_host_port_ipv4(SIEVE_PORT.tcp())?);
ImapSeed::connect(&imap.host, imap.port)?.logout()?;
let accounts: Vec<Account> = layouts::accounts()
.iter()
+1 -1
View File
@@ -74,7 +74,7 @@ impl Stalwart {
.with_mapped_port(sieve_port, SIEVE_PORT.tcp())
.with_startup_timeout(Duration::from_secs(180));
let container = request.start()?;
let container = request.pull_image()?.start()?;
let me = Self {
_container: container,