Hi,
I am trying to use dovecot replication for a two-way sync. And whatever
I do, sieve-scripts won?t replicate. Mails replicate near
instantaneous. When I disable the sieve-script in roundcube, the other
server will create in the home of the user on the other side a folder
sieve/tmp but enabling won?t create the roundcube.sieve and the
symlink .dovecot.sieve -> sieve/roundcube.sieve
The home of a virtual mail user on server1 looks like this:
drwx------ 4 vexim vexim 4096 Jun 18 08:02 .
drwx------ 8 vexim vexim 4096 Jun 18 07:59 ..
lrwxrwxrwx 1 vexim vexim 21 Jun 18 07:59 .dovecot.sieve ->
sieve/roundcube.sieve
drwx------ 5 vexim vexim 4096 Jun 18 08:14 Maildir
drwx------ 3 vexim vexim 4096 Jun 18 08:02 sieve
A ps auxwww|grep dove looks like this (maybe some user is wrong?):
ps auxwww |grep dove
root 847 0.0 0.0 4200 3044 ? Ss 07:54 0:00
/usr/sbin/dovecot -F
root 849 0.0 0.0 4060 2544 ? S 07:54 0:00
dovecot-team1/replicator
dovecot 850 0.0 0.0 3912 1092 ? S 07:54 0:00
dovecot-team1/anvil
root 851 0.0 0.0 4048 2464 ? S 07:54 0:00
dovecot-team1/log
dovecot 852 0.0 0.0 4048 2692 ? S 07:54 0:00
dovecot-team1/stats
root 853 0.0 0.0 6072 4368 ? S 07:54 0:00
dovecot-team1/config
dovecot 855 0.0 0.0 17412 6620 ? S 07:54 0:00
dovecot-team1/auth
dovenull 856 0.0 0.0 8200 6344 ? S 07:54 0:00
dovecot-team1/imap-login
vexim 858 0.0 0.0 7092 5300 ? S 07:54 0:00
dovecot-team1/imap
dovecot 902 0.0 0.0 3912 1096 ? S 07:55 0:00
dovecot-team1/aggregator
dovenull 1929 0.0 0.0 8200 6256 ? S 08:15 0:00
dovecot-team1/imap-login
vexim 1930 0.0 0.0 6984 5284 ? S 08:15 0:00
dovecot-team1/imap
dovenull 1931 0.0 0.0 8200 6248 ? S 08:15 0:00
dovecot-team1/imap-login
vexim 1932 0.0 0.0 6964 5140 ? S 08:15 0:00
dovecot-team1/imap
root 2210 0.0 0.0 6048 892 pts/0 S+ 08:21 0:00 grep
dove
I do not see any errors in the log. Here is the doveconf -n output. The
partner looks identical except the replication target.
# 2.3.4.1 (f79e8e7e4): /etc/dovecot/dovecot.conf
# Pigeonhole version 0.5.4 ()
# OS: Linux 4.19.0-9-amd64 x86_64 Debian 10.4
# Hostname: team.snafu.de
auth_mechanisms = plain login
auth_verbose = yes
doveadm_password = # hidden, use -P to show it
doveadm_port = 12345
instance_name = team1
mail_location = maildir:~/mail:INBOX=/var/vmail/%d/%u
mail_plugins = " notify replication"
mail_privileged_group = mail
managesieve_notify_capability = mailto
managesieve_sieve_capability = fileinto reject envelope
encoded-character vacation subaddress comparator-i;ascii-numeric
relational regex imap4flags copy include variables body enotify
environment mailbox date index ihave duplicate mime foreverypart
extracttext spamtest spamtestplus
virustest editheader servermetadata imapflags notify imapsieve
vnd.dovecot.imapsieve
namespace inbox {
inbox = yes
location mailbox Drafts {
special_use = \Drafts
}
mailbox Junk {
special_use = \Junk
}
mailbox Sent {
special_use = \Sent
}
mailbox "Sent Messages" {
special_use = \Sent
}
mailbox Trash {
special_use = \Trash
}
prefix separator = /
}
passdb {
args = /etc/dovecot/dovecot-sql.conf.ext
driver = sql
}
plugin {
imapsieve_mailbox1_before =
file:/usr/lib/dovecot/sieve/report-spam.sieve
imapsieve_mailbox1_causes = COPY
imapsieve_mailbox1_name = Junk
imapsieve_mailbox2_before =
file:/usr/lib/dovecot/sieve/report-ham.sieve
imapsieve_mailbox2_causes = COPY
imapsieve_mailbox2_from = Junk
imapsieve_mailbox2_name = *
mail_replica = tcps:server2.domain.de:12345
sieve = file:~/sieve;active=~/.dovecot.sieve
sieve_dir = ~/sieve
sieve_extensions = +notify +imapflags +editheader +regex +spamtest
+spamtestplus +virustest +servermetadata
sieve_global_extensions = +vnd.dovecot.pipe +vnd.dovecot.environment
sieve_pipe_bin_dir = /usr/lib/dovecot/sieve-pipe
sieve_plugins = sieve_imapsieve sieve_extprograms
}
protocols = " imap lmtp sieve sieve"
replication_dsync_parameters = -D -d -N -l 30 -U
service aggregator {
fifo_listener replication-notify-fifo {
mode = 0666
user = vexim
}
unix_listener replication-notify {
mode = 0666
user = vexim
}
}
service auth {
unix_listener auth-client {
group = vexim
mode = 0660
user = Debian-exim
}
unix_listener auth-userdb {
group = vexim
mode = 0666
user = vexim
}
}
service config {
unix_listener config {
user = vexim
}
}
service doveadm {
inet_listener {
port = 12345
ssl = yes
}
user = vexim
}
service managesieve-login {
inet_listener sieve {
port = 4190
}
process_min_avail = 0
service_count = 1
vsz_limit = 64 M
}
service managesieve {
process_limit = 1024
}
service replicator {
process_min_avail = 1
unix_listener replicator-doveadm {
mode = 0666
}
}
ssl = required
ssl_cert = </etc/ssl/certs/wildcard.domain.de.pem
ssl_cipher_list = HIGH:!aNULL
ssl_client_ca_dir = /etc/ssl/certs
ssl_dh = # hidden, use -P to show it
ssl_key = # hidden, use -P to show it
ssl_min_protocol = TLSv1.2
ssl_prefer_server_ciphers = yes
userdb {
driver = prefetch
}
userdb {
args = /etc/dovecot/dovecot-sql.conf.ext
driver = sql
}
protocol lda {
mail_plugins = " notify replication sieve"
}
protocol imap {
mail_plugins = " notify replication imap_sieve"
}
protocol lmtp {
info_log_path = /var/log/dovecot-lmtp.log
mail_plugins = " notify replication sieve"
}
protocol sieve {
mail_max_userip_connections = 10
managesieve_max_line_length = 65536
}
Any help appreciated.
Niels
We installed now from the Dovecot-community repos instead of the official Debian 10-repos and it works now. Best, Niels On 18 Jun 2020, at 8:22, Niels Kobsch?tzki wrote:> Hi, > > I am trying to use dovecot replication for a two-way sync. And > whatever I do, sieve-scripts won?t replicate. Mails replicate near > instantaneous. When I disable the sieve-script in roundcube, the other > server will create in the home of the user on the other side a folder > sieve/tmp but enabling won?t create the roundcube.sieve and the > symlink .dovecot.sieve -> sieve/roundcube.sieve > > The home of a virtual mail user on server1 looks like this: > > drwx------ 4 vexim vexim 4096 Jun 18 08:02 . > drwx------ 8 vexim vexim 4096 Jun 18 07:59 .. > lrwxrwxrwx 1 vexim vexim 21 Jun 18 07:59 .dovecot.sieve -> > sieve/roundcube.sieve > drwx------ 5 vexim vexim 4096 Jun 18 08:14 Maildir > drwx------ 3 vexim vexim 4096 Jun 18 08:02 sieve > > A ps auxwww|grep dove looks like this (maybe some user is wrong?): > > ps auxwww |grep dove > root 847 0.0 0.0 4200 3044 ? Ss 07:54 0:00 > /usr/sbin/dovecot -F > root 849 0.0 0.0 4060 2544 ? S 07:54 0:00 > dovecot-team1/replicator > dovecot 850 0.0 0.0 3912 1092 ? S 07:54 0:00 > dovecot-team1/anvil > root 851 0.0 0.0 4048 2464 ? S 07:54 0:00 > dovecot-team1/log > dovecot 852 0.0 0.0 4048 2692 ? S 07:54 0:00 > dovecot-team1/stats > root 853 0.0 0.0 6072 4368 ? S 07:54 0:00 > dovecot-team1/config > dovecot 855 0.0 0.0 17412 6620 ? S 07:54 0:00 > dovecot-team1/auth > dovenull 856 0.0 0.0 8200 6344 ? S 07:54 0:00 > dovecot-team1/imap-login > vexim 858 0.0 0.0 7092 5300 ? S 07:54 0:00 > dovecot-team1/imap > dovecot 902 0.0 0.0 3912 1096 ? S 07:55 0:00 > dovecot-team1/aggregator > dovenull 1929 0.0 0.0 8200 6256 ? S 08:15 0:00 > dovecot-team1/imap-login > vexim 1930 0.0 0.0 6984 5284 ? S 08:15 0:00 > dovecot-team1/imap > dovenull 1931 0.0 0.0 8200 6248 ? S 08:15 0:00 > dovecot-team1/imap-login > vexim 1932 0.0 0.0 6964 5140 ? S 08:15 0:00 > dovecot-team1/imap > root 2210 0.0 0.0 6048 892 pts/0 S+ 08:21 0:00 grep > dove > > I do not see any errors in the log. Here is the doveconf -n output. > The partner looks identical except the replication target. > > # 2.3.4.1 (f79e8e7e4): /etc/dovecot/dovecot.conf > # Pigeonhole version 0.5.4 () > # OS: Linux 4.19.0-9-amd64 x86_64 Debian 10.4 > # Hostname: team.snafu.de > auth_mechanisms = plain login > auth_verbose = yes > doveadm_password = # hidden, use -P to show it > doveadm_port = 12345 > instance_name = team1 > mail_location = maildir:~/mail:INBOX=/var/vmail/%d/%u > mail_plugins = " notify replication" > mail_privileged_group = mail > managesieve_notify_capability = mailto > managesieve_sieve_capability = fileinto reject envelope > encoded-character vacation subaddress comparator-i;ascii-numeric > relational regex imap4flags copy include variables body enotify > environment mailbox date index ihave duplicate mime foreverypart > extracttext spamtest spamtestplus > virustest editheader servermetadata imapflags notify imapsieve > vnd.dovecot.imapsieve > namespace inbox { > inbox = yes > location > mailbox Drafts { > special_use = \Drafts > } > mailbox Junk { > special_use = \Junk > } > mailbox Sent { > special_use = \Sent > } > mailbox "Sent Messages" { > special_use = \Sent > } > mailbox Trash { > special_use = \Trash > } > prefix > separator = / > } > passdb { > args = /etc/dovecot/dovecot-sql.conf.ext > driver = sql > } > plugin { > imapsieve_mailbox1_before = > file:/usr/lib/dovecot/sieve/report-spam.sieve > imapsieve_mailbox1_causes = COPY > imapsieve_mailbox1_name = Junk > imapsieve_mailbox2_before = > file:/usr/lib/dovecot/sieve/report-ham.sieve > imapsieve_mailbox2_causes = COPY > imapsieve_mailbox2_from = Junk > imapsieve_mailbox2_name = * > mail_replica = tcps:server2.domain.de:12345 > sieve = file:~/sieve;active=~/.dovecot.sieve > sieve_dir = ~/sieve > sieve_extensions = +notify +imapflags +editheader +regex +spamtest > +spamtestplus +virustest +servermetadata > sieve_global_extensions = +vnd.dovecot.pipe +vnd.dovecot.environment > sieve_pipe_bin_dir = /usr/lib/dovecot/sieve-pipe > sieve_plugins = sieve_imapsieve sieve_extprograms > } > protocols = " imap lmtp sieve sieve" > replication_dsync_parameters = -D -d -N -l 30 -U > service aggregator { > fifo_listener replication-notify-fifo { > mode = 0666 > user = vexim > } > unix_listener replication-notify { > mode = 0666 > user = vexim > } > } > service auth { > unix_listener auth-client { > group = vexim > mode = 0660 > user = Debian-exim > } > unix_listener auth-userdb { > group = vexim > mode = 0666 > user = vexim > } > } > service config { > unix_listener config { > user = vexim > } > } > service doveadm { > inet_listener { > port = 12345 > ssl = yes > } > user = vexim > } > service managesieve-login { > inet_listener sieve { > port = 4190 > } > process_min_avail = 0 > service_count = 1 > vsz_limit = 64 M > } > service managesieve { > process_limit = 1024 > } > service replicator { > process_min_avail = 1 > unix_listener replicator-doveadm { > mode = 0666 > } > } > ssl = required > ssl_cert = </etc/ssl/certs/wildcard.domain.de.pem > ssl_cipher_list = HIGH:!aNULL > ssl_client_ca_dir = /etc/ssl/certs > ssl_dh = # hidden, use -P to show it > ssl_key = # hidden, use -P to show it > ssl_min_protocol = TLSv1.2 > ssl_prefer_server_ciphers = yes > userdb { > driver = prefetch > } > userdb { > args = /etc/dovecot/dovecot-sql.conf.ext > driver = sql > } > protocol lda { > mail_plugins = " notify replication sieve" > } > protocol imap { > mail_plugins = " notify replication imap_sieve" > } > protocol lmtp { > info_log_path = /var/log/dovecot-lmtp.log > mail_plugins = " notify replication sieve" > } > protocol sieve { > mail_max_userip_connections = 10 > managesieve_max_line_length = 65536 > } > > > Any help appreciated. > > Niels