I had the same problem and the only workaround I found was to change this to postfix main.cf :
default_destination_recipient_limit = 1 > On 1 May 2018, at 11:12, Frank Ebert <frank.eb...@freenet.de> wrote: > > Hi, > > I have another problem with dovecot 2.3.1 on FreeBSD (smtpd is postfix > 3.3.0). When one mail is sent with different recipients and the quota > limit of one user is exceeded, the message will be delivered repeatedly > to all users. The queue from postfix says: > > (lost connection with mailserver.foo.bar[private/lmtp-dovecot] while > sending end of data -- message may be sent more than once) > > The problem started with dovecot 2.3.1. With 2.2.3x everything was fine. > > Any ideas? > > Thanx > Frank > > doveconf -n: > > auth_mechanisms = plain login > auth_use_winbind = yes > auth_winbind_helper_path = /usr/local/bin/ntlm_auth > disable_plaintext_auth = no > info_log_path = /var/log/dovecot > listen = * > mail_location = mdbox:~/mdbox > mail_plugins = zlib quota acl mail_log notify > managesieve_notify_capability = mailto > managesieve_sieve_capability = fileinto reject envelope > encoded-character vacati on subaddress comparator-i;ascii-numeric > relational regex imap4flags copy includ e variables body enotify > environment mailbox date index ihave duplicate mime for everypart > extracttext > namespace { > location = mdbox:/home/vmail/foo.domain/foo/mdbox > prefix = Foo/ > separator = / > subscriptions = yes > type = public > } > namespace { > location = mdbox:/home/vmail/bar.domain/bar/mdbox > prefix = Bar/ > separator = / > subscriptions = yes > type = public > } > namespace { > location = mdbox:/home/vmail/foobar.domain/foobar/mdbox > prefix = Foobar/ > separator = / > subscriptions = yes > type = public > } > namespace inbox { > inbox = yes > location = > mailbox Drafts { > auto = subscribe > special_use = \Drafts > } > mailbox Junk { > special_use = \Junk > } > mailbox Sent { > auto = subscribe > special_use = \Sent > } > mailbox "Sent Messages" { > special_use = \Sent > } > mailbox Trash { > auto = subscribe > special_use = \Trash > } > prefix = INBOX/ > separator = / > } > passdb { > args = /usr/local/etc/dovecot/dovecot-ldap.conf.ext > driver = ldap > } > plugin { > acl = vfile:/usr/local/etc/dovecot/global-acls > acl_shared_dict = file:/var/lib/dovecot/shared-mailboxes > mail_log_events = flag_change delete undelete expunge copy > mailbox_delete mail box_rename > mail_log_fields = uid box msgid size flags > quota = dict:User quota::file:%h/dovecot-quota > quota_warning = storage=95%% quota-warning 95 %u > quota_warning2 = storage=80%% quota-warning 80 %u > sieve = ~/.dovecot.sieve > sieve_dir = ~/sieve > stats_command_min_time = 1 mins > stats_domain_min_time = 12 hours > stats_ip_min_time = 12 hours > stats_memory_limit = 16 M > stats_refresh = 30 > stats_session_min_time = 15 mins > stats_track_cmds = yes > stats_user_min_time = 1 hours > zlib_save = gz > zlib_save_level = 6 > } > postmaster_address = postmas...@foo.bar > protocols = imap lmtp sieve > service auth { > unix_listener /var/spool/postfix/private/auth { > mode = 0666 > } > unix_listener auth-userdb { > group = vmail > user = vmail > } > } > service lmtp { > unix_listener /var/spool/postfix/private/lmtp-dovecot { > group = postfix > user = postfix > } > } > service managesieve-login { > inet_listener sieve { > port = 4190 > } > process_min_avail = 0 > service_count = 0 > } > service managesieve { > process_limit = 1024 > } > service quota-warning { > executable = script /usr/local/bin/quota-warning.sh > unix_listener quota-warning { > user = vmail > } > user = vmail > } > service stats { > fifo_listener stats-mail { > mode = 0600 > user = vmail > } > } > ssl_cert = </etc/ssl/certs/dovecot.pem > ssl_dh = # hidden, use -P to show it > ssl_key = # hidden, use -P to show it > userdb { > driver = prefetch > } > userdb { > args = /usr/local/etc/dovecot/dovecot-ldap-userdb.conf.ext > driver = ldap > } > protocol lmtp { > mail_plugins = zlib quota acl mail_log notify sieve > } > protocol lda { > mail_plugins = zlib quota acl mail_log notify sieve > } > protocol imap { > mail_plugins = zlib quota acl mail_log notify imap_zlib imap_quota > imap_acl }