move mails between mailboxes

Tom Doenen tom at inkblu.org
Tue Jul 13 17:34:11 EEST 2021


Hello,

i am using dovecot 2.3.4.1

I am tyring to make a script using the doveadm move command to move old 
emails into a subfolder of the users INBOX ; say all mails from 2016 
into INBOX/2016.
Selecting and moving is not the issue; everything works just i am amazed 
that the (test) mail client Thunderbird downloads all mails in 
INBOX/2016 after the move.

When i make an IMAP move of all 2016-mails in Thunderbird; mails are 
moved between the mailboxes without any mails being (re-)downloaded.
So what am i missing here?

Thank for the tip :)
Kind regards,
Tom

the doveadm move debug output is :

Debug: Loading modules from directory: /usr/lib/dovecot/modules
Debug: Module loaded: /usr/lib/dovecot/modules/lib10_quota_plugin.so
Debug: Module loaded: /usr/lib/dovecot/modules/lib20_listescape_plugin.so
Debug: Module loaded: /usr/lib/dovecot/modules/lib20_zlib_plugin.so
Debug: Loading modules from directory: /usr/lib/dovecot/modules/doveadm
Debug: Skipping module doveadm_acl_plugin, because dlopen() failed: /usr/lib/dovecot/modules/doveadm/lib10_doveadm_acl_plugin.so: undefined symbol: acl_user_module (this is usually intentional, so just ignore this message)
Debug: Skipping module doveadm_expire_plugin, because dlopen() failed: /usr/lib/dovecot/modules/doveadm/lib10_doveadm_expire_plugin.so: undefined symbol: expire_set_deinit (this is usually intentional, so just ignore this message)
Debug: Module loaded: /usr/lib/dovecot/modules/doveadm/lib10_doveadm_quota_plugin.so
Debug: Module loaded: /usr/lib/dovecot/modules/doveadm/lib10_doveadm_sieve_plugin.so
Debug: Skipping module doveadm_fts_lucene_plugin, because dlopen() failed: /usr/lib/dovecot/modules/doveadm/lib20_doveadm_fts_lucene_plugin.so: undefined symbol: lucene_index_iter_deinit (this is usually intentional, so just ignore this message)
Debug: Skipping module doveadm_fts_plugin, because dlopen() failed: /usr/lib/dovecot/modules/doveadm/lib20_doveadm_fts_plugin.so: undefined symbol: fts_user_get_language_list (this is usually intentional, so just ignore this message)
Debug: Skipping module doveadm_mail_crypt_plugin, because dlopen() failed: /usr/lib/dovecot/modules/doveadm/libdoveadm_mail_crypt_plugin.so: undefined symbol: mail_crypt_box_get_pvt_digests (this is usually intentional, so just ignore this message)
doveadm(tom at somedomain.org)<17541><>: Debug: auth USER input: tom at somedomain.org uid=5000 gid=5000 home=/mailstore/somedomain.org/to/tom/
doveadm(tom at somedomain.org): Debug: Effective uid=5000, gid=5000, home=/mailstore/somedomain.org/to/tom/
doveadm(tom at somedomain.org): Debug: Quota root: name=User quota backend=maildir args=
doveadm(tom at somedomain.org): Debug: Quota rule: root=User quota mailbox=* bytes=8589934592 messages=0
doveadm(tom at somedomain.org): Debug: Quota rule: root=User quota mailbox=Trash bytes=+104857600 messages=0
doveadm(tom at somedomain.org): Debug: Quota warning: bytes=8589934592 (100%) messages=0 reverse=no command=quota-warning 100 tom at somedomain.org
doveadm(tom at somedomain.org): Debug: Quota warning: bytes=8504035246 (99%) messages=0 reverse=no command=quota-warning 99 tom at somedomain.org
doveadm(tom at somedomain.org): Debug: Quota warning: bytes=8418135900 (98%) messages=0 reverse=no command=quota-warning 98 tom at somedomain.org
doveadm(tom at somedomain.org): Debug: Quota warning: bytes=8246337208 (96%) messages=0 reverse=no command=quota-warning 96 tom at somedomain.org
doveadm(tom at somedomain.org): Debug: Quota warning: bytes=8074538516 (94%) messages=0 reverse=no command=quota-warning 94 tom at somedomain.org
doveadm(tom at somedomain.org): Debug: Quota warning: bytes=7902739824 (92%) messages=0 reverse=no command=quota-warning 92 tom at somedomain.org
doveadm(tom at somedomain.org): Debug: Quota warning: bytes=7730941132 (90%) messages=0 reverse=no command=quota-warning 90 tom at somedomain.org
doveadm(tom at somedomain.org): Debug: Quota warning: bytes=7301444403 (85%) messages=0 reverse=no command=quota-warning 85 tom at somedomain.org
doveadm(tom at somedomain.org): Debug: Quota warning: bytes=6871947673 (80%) messages=0 reverse=no command=quota-warning 80 tom at somedomain.org
doveadm(tom at somedomain.org): Debug: Quota warning: bytes=6012954214 (70%) messages=0 reverse=no command=quota-warning 70 tom at somedomain.org
doveadm(tom at somedomain.org): Debug: Quota warning: bytes=8589934592 (100%) messages=0 reverse=yes command=quota-warning 0 tom at somedomain.org
doveadm(tom at somedomain.org): Debug: Quota grace: root=User quota bytes=47185920
doveadm(tom at somedomain.org): Debug: Namespace inbox: type=private, prefix=, sep=/, inbox=yes, hidden=no, list=yes, subscriptions=yes location=maildir:/mailstore/somedomain.org/to/tom:INDEX=/indexes/somedomain.org/to/tom:INBOX=/mailstore/somedomain.org/to/tom/.INBOX:VOLATILEDIR=/tmp/dovecot:NO-NOSELECT:UTF-8
doveadm(tom at somedomain.org): Debug: maildir++: root=/mailstore/somedomain.org/to/tom, index=/indexes/somedomain.org/to/tom, indexpvt=, control=, inbox=/mailstore/somedomain.org/to/tom/.INBOX, alt=
doveadm(tom at somedomain.org): Debug: quota: quota_over_flag check: quota_over_script unset - skipping
doveadm(tom at somedomain.org): Debug: Mailbox INBOX/2016: Mailbox opened because: move
doveadm(tom at somedomain.org): Debug: Mailbox INBOX: Mailbox opened because: move
doveadm(tom at somedomain.org): Debug: Mailbox INBOX/2016: saving UID 0: Opened mail because: mail stream
doveadm(tom at somedomain.org): Debug: Mailbox INBOX: UID 52642: Opened mail because: mail stream
doveadm(tom at somedomain.org): Debug: Mailbox INBOX/2016: saving UID 0: Opened mail because: mail stream
doveadm(tom at somedomain.org): Debug: Mailbox INBOX: UID 52643: Opened mail because: mail stream
doveadm(tom at somedomain.org): Debug: Mailbox INBOX/2016: saving UID 0: Opened mail because: mail stream
doveadm(tom at somedomain.org): Debug: Mailbox INBOX: UID 52644: Opened mail because: mail stream
doveadm(tom at somedomain.org): Debug: Mailbox INBOX/2016: saving UID 0: Opened mail because: mail stream
doveadm(tom at somedomain.org): Debug: Mailbox INBOX: UID 52645: Opened mail because: mail stream
doveadm(tom at somedomain.org): Debug: Mailbox INBOX/2016: saving UID 0: Opened mail because: mail stream
doveadm(tom at somedomain.org): Debug: Mailbox INBOX: UID 52646: Opened mail because: mail stream
doveadm(tom at somedomain.org): Debug: Mailbox INBOX/2016: saving UID 0: Opened mail because: mail stream
doveadm(tom at somedomain.org): Debug: Mailbox INBOX: UID 52963: Opened mail because: mail stream
doveadm(tom at somedomain.org): Debug: Mailbox INBOX/2016: saving UID 0: Opened mail because: mail stream
doveadm(tom at somedomain.org): Debug: Mailbox INBOX: UID 52964: Opened mail because: mail stream
doveadm(tom at somedomain.org): Debug: Mailbox INBOX/2016: saving UID 0: Opened mail because: mail stream
doveadm(tom at somedomain.org): Debug: Mailbox INBOX: UID 52965: Opened mail because: mail stream
doveadm(tom at somedomain.org): Debug: Mailbox INBOX/2016: saving UID 0: Opened mail because: mail stream
doveadm(tom at somedomain.org): Debug: Mailbox INBOX: UID 52967: Opened mail because: mail stream
doveadm(tom at somedomain.org): Debug: Mailbox INBOX/2016: saving UID 0: Opened mail because: mail stream
doveadm(tom at somedomain.org): Debug: Mailbox INBOX: UID 52968: Opened mail because: mail stream
doveadm(tom at somedomain.org): Debug: Mailbox INBOX/2016: saving UID 0: Opened mail because: mail stream
doveadm(tom at somedomain.org): Debug: Mailbox INBOX: UID 52969: Opened mail because: mail stream
doveadm(tom at somedomain.org): Debug: Mailbox INBOX/2016: saving UID 0: Opened mail because: mail stream
doveadm(tom at somedomain.org): Debug: Mailbox INBOX: UID 52970: Opened mail because: mail stream
doveadm(tom at somedomain.org): Debug: Mailbox INBOX/2016: saving UID 0: Opened mail because: mail stream
doveadm(tom at somedomain.org): Debug: Mailbox INBOX: UID 52972: Opened mail because: mail stream

etc etc...
obscured config :

# 2.3.4.1 (f79e8e7e4): /etc/dovecot/dovecot.conf
# Pigeonhole version 0.5.4 ()
# OS: Linux 4.19.194-rt81 x86_64 Debian 10.0 ext4
# Hostname: hardy.somedomain.org
auth_cache_negative_ttl = 7 mins
auth_cache_size = 20 M
auth_cache_ttl = 12 mins
auth_cache_verify_password_with_worker = yes
auth_failure_delay = 9 secs
auth_mechanisms = plain login
auth_username_chars =
auth_worker_max_count = 90
default_client_limit = 2500
default_process_limit = 500
default_vsz_limit = 4 G
hostname = post.somedomain.org
imap_capability = +SPECIAL_USE
imap_fetch_failure = no-after
imap_hibernate_timeout = 15 secs
imap_idle_notify_interval = 4 mins
imap_max_line_length = 512 k
lda_mailbox_autocreate = yes
lda_mailbox_autosubscribe = yes
lda_original_recipient_header = X-Original-To
listen = *
lmtp_rcpt_check_quota = yes
login_log_format_elements = user=<%u> method=%m rip=%r lip=%l mpid=%e %c %k
mail_cache_min_mail_count = 15
mail_fsync = never
mail_location = maildir:/mailstore/%d/%2n/%n:INDEX=/indexes/%d/%2n/%n:INBOX=/mailstore/%d/%2n/%n/.INBOX:VOLATILEDIR=/tmp/dovecot:NO-NOSELECT:UTF-8
mail_max_keyword_length = 100
mail_plugins = quota zlib listescape
mail_prefetch_count = 20
mail_privileged_group = mail
mail_temp_scan_interval = 0
mailbox_idle_check_interval = 55 secs
mailbox_list_index_include_inbox = yes
mailbox_list_index_very_dirty_syncs = yes
maildir_broken_filename_sizes = yes
maildir_very_dirty_syncs = yes
namespace inbox {
   inbox = yes
   location =
   mailbox Concepts {
     auto = no
     special_use = \Drafts
   }
   mailbox "Deleted Messages" {
     auto = no
     special_use = \Trash
   }
   mailbox Drafts {
     auto = subscribe
     special_use = \Drafts
   }
   mailbox Junk {
     auto = no
     special_use = \Junk
   }
   mailbox Sent {
     auto = subscribe
     special_use = \Sent
   }
   mailbox "Sent Messages" {
     auto = no
     special_use = \Sent
   }
   mailbox Trash {
     auto = subscribe
     special_use = \Trash
   }
   prefix =
   separator = /
   type = private
}
passdb {
   args = /etc/dovecot/passwd--%d
   driver = passwd-file
}
plugin {
   listescape_char = }
   quota = maildir:User quota
   quota_grace = 45M
   quota_rule = *:storage=8G
   quota_rule2 = Trash:storage=+100M
   quota_status_overquota = 552 5.2.2 User mailbox is full..
   quota_status_succes = DUNNO
   quota_warning = storage=100%% quota-warning 100 %u
   quota_warning10 = storage=70%% quota-warning 70 %u
   quota_warning11 = -storage=100%% quota-warning 0 %u
   quota_warning2 = storage=99%% quota-warning 99 %u
   quota_warning3 = storage=98%% quota-warning 98 %u
   quota_warning4 = storage=96%% quota-warning 96 %u
   quota_warning5 = storage=94%% quota-warning 94 %u
   quota_warning6 = storage=92%% quota-warning 92 %u
   quota_warning7 = storage=90%% quota-warning 90 %u
   quota_warning8 = storage=85%% quota-warning 85 %u
   quota_warning9 = storage=80%% quota-warning 80 %u
   sieve = ~/dovecot.sieve
   sieve_extensions = +notify +imapflags +envelope +vacation +fileinto +date +relational +vacation-seconds
   sieve_user_log = /dev/null
   sieve_vacation_min_period = 1h
   sieve_vacation_send_from_recipient = yes
   virtual_overquota_bounce = yes
   zlib_save = gz
   zlib_save_level = 3
}
pop3_fast_size_lookups = yes
protocols = imap lmtp pop3
service auth-worker {
   user = $default_internal_user
}
service auth {
   unix_listener /var/spool/postfix/private/auth {
     group = postfix
     mode = 0660
     user = postfix
   }
}
service imap-hibernate {
   unix_listener imap-hibernate {
     group = $default_internal_group
     mode = 0660
   }
}
service imap-login {
   inet_listener imap {
     port = 0
   }
   inet_listener imaps {
     address = 100.100.100.104
     port = 993
     ssl = yes
   }
   process_min_avail = 20
   service_count = 0
}
service imap {
   extra_groups = $default_internal_group
   process_limit = 5000
   unix_listener imap-master {
     user = $default_internal_user
   }
}
service lmtp {
   unix_listener /var/spool/postfix/private/dovecot-lmtp {
     group = postfix
     mode = 0600
     user = postfix
   }
}
service pop3-login {
   inet_listener pop3 {
     port = 0
   }
   inet_listener pop3s {
     address = 100.100.100.99
     port = 995
     ssl = yes
   }
   process_min_avail = 10
   service_count = 0
}
service pop3 {
   process_limit = 1000
}
service quota-warning {
   executable = script /etc/dovecot/quota-warning.sh
   unix_listener quota-warning {
     user = vmail
   }
   user = vmail
}
service submission-login {
   inet_listener submission {
     address = 127.0.0.1
     port = 587
     ssl = yes
   }
   process_min_avail = 5
   service_count = 1
}
service submission {
   process_limit = 150
}
ssl = required
ssl_cert = </etc/ssl/private/somedomain.org.crta
ssl_cipher_list = ALL:!SSLv2:!SSLv3:!DH:!kRSA:!SRP:!kDHd:!DSS:!aNULL:!eNULL:!EXPORT:!DES:!3DES:!MD5:!PSK:!RC4:!ADH:!LOW at STRENGTH:!EXP:!SEED:!IDEA:!RSA:!CAMELLIA:!SHA1:!SHA256:!SHA384
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
submission_host = 127.0.0.1
syslog_facility = local2
userdb {
   args = /etc/dovecot/passwd--%d
   driver = passwd-file
   result_failure = return-fail
   result_internalfail = return-fail
}
valid_chroot_dirs = /var/spool/vmail
verbose_proctitle = yes
protocol lmtp {
   mail_fsync = optimized
   mail_plugins = quota zlib listescape quota sieve zlib
   postmaster_address = postmaster at somedomain.org
}
protocol lda {
   mail_fsync = optimized
}
protocol imap {
   mail_max_userip_connections = 25
   mail_plugins = quota zlib listescape imap_quota zlib
}
protocol pop3 {
   mail_max_userip_connections = 6
}




-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://dovecot.org/pipermail/dovecot/attachments/20210713/7fe7660d/attachment-0001.html>


More information about the dovecot mailing list