Replikation: Über POP3 gelöschte Mails werden nicht sofort vom zweiten Server gelöscht

Lukas lukas.meuerer at gmail.com
Mi Apr 29 05:38:40 CEST 2020


Hallo,

ich habe zwei Dovecot Server mit Replikation. Das funktioniert, bis auf
eine Situation, zuverlässig.

Was funktioniert:
* Kommt eine Mail auf einem der Server an, ist sie sofort auf dem zweiten
Server verfügbar
* Wird eine Mail per IMAP auf einem Server gelöscht, ist sie auch sofort
auf dem zweiten Server weg

Was jedoch nicht funktioniert:
Wird eine Mail per POP3 (Thunderbird) abgeholt (download + löschen),
verschwindet sie sofort auf dem Server von dem sie abgeholt wurde aber
nicht vom zweiten Server.

Vom zweiten Server wird sie nur in folgenden Situation gelöscht:
* Wenn eine neue E-Mail eingeht (löst sync aus)
* Beim nächsten automatischen Full Sync (ich habe
replication_full_sync_interval testweise auf "1 hours" runtergesetzt)
* Bei manuellen Full Sync (doveadm replicator replicate user_name)

Mit aktivem Debug Logging (mail_debug = yes) sehe ich beim Löschen über
IMAP sofort eine Replikationsaktionen im Log. Beim Löschen über POP3
hingegen wird nichts geloggt (die Aktion wird ja auch nicht repliziert).

Hat jemand eine Idee warum Löschaktionen über POP3 nicht repliziert werden
und wie ich das konfigurieren kann?

Danke für Hilfe.
Lukas



Config (ist auf beiden Servern bis auf "mail_replica" und "address"
Parameter identisch):

auth_mechanisms = plain login
auth_username_format = %n
doveadm_password = # hidden, use -P to show it
doveadm_port = 12345
login_log_format_elements = user=<%u> method=%m rip=%r lip=%l mpid=%e %c %k
mail_gid = vmail
mail_home = /var/spool/dovecot/%u
mail_location = sdbox:/var/spool/dovecot/%u
mail_plugins = " notify replication"
mail_uid = vmail
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
namespace inbox {
  inbox = yes
  location =
  mailbox Drafts {
    auto = subscribe
    special_use = \Drafts
  }
  mailbox Sent {
    auto = subscribe
    special_use = \Sent
  }
  mailbox Spam {
    auto = subscribe
  }
  mailbox Trash {
    auto = subscribe
    special_use = \Trash
  }
  prefix =
}
passdb {
  args = /etc/dovecot/deny.%s
  deny = yes
  driver = passwd-file
}
passdb {
  args = scheme=SSHA512 username_format=%n /etc/dovecot/passwd
  driver = passwd-file
}
plugin {
  mail_replica = tcps:server2.example.com:12345
  sieve = ~/sieve/.dovecot.sieve
}
protocols = imap pop3 lmtp sieve
replication_full_sync_interval = 1 hours
service aggregator {
  fifo_listener replication-notify-fifo {
    user = vmail
  }
  unix_listener replication-notify {
    user = vmail
  }
}
service auth {
  unix_listener /var/spool/postfix/private/auth {
    group = postfix
    mode = 0660
    user = postfix
  }
  unix_listener auth-userdb {
    mode = 0600
    user = vmail
  }
  user = $default_internal_user
}
service doveadm {
  inet_listener {
    address = ...
    port = 12345
    ssl = yes
  }
  user = vmail
}
service imap-login {
  inet_listener imap {
    port = 0
  }
  inet_listener imaps {
    address = ...
    port = 993
  }
}
service lmtp {
  unix_listener /var/spool/postfix/private/dovecot-lmtp {
    group = postfix
    mode = 0600
    user = postfix
  }
}
service managesieve-login {
  inet_listener sieve {
    address = ...
    port = 4190
  }
}
service pop3-login {
  inet_listener pop3 {
    port = 0
  }
  inet_listener pop3s {
    address = ...
    port = 995
  }
}
service replicator {
  process_min_avail = 1
  unix_listener replicator-doveadm {
    mode = 0600
    user = vmail
  }
}
ssl = required
ssl_cert = </etc/letsencrypt/live/server1.example.com/fullchain.pem
ssl_client_ca_file = /etc/pki/tls/cert.pem
ssl_dh = # hidden, use -P to show it
ssl_key = # hidden, use -P to show it
ssl_min_protocol = TLSv1.2
ssl_options = no_compression
syslog_facility = local5
userdb {
  args = username_format=%n /etc/dovecot/passwd
  driver = passwd-file
  result_failure = return-fail
  result_internalfail = return-fail
}
protocol sieve {
  ssl = required
}
protocol lmtp {
  mail_plugins = " notify replication sieve"
}
-------------- nächster Teil --------------
Ein Dateianhang mit HTML-Daten wurde abgetrennt...
URL: <https://listen.jpberlin.de/pipermail/dovecot/attachments/20200429/34ad05c8/attachment.html>


Mehr Informationen über die Mailingliste Dovecot