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@somedomain.org)<17541><>: Debug: auth USER input: tom@somedomain.org uid=5000 gid=5000 home=/mailstore/somedomain.org/to/tom/ doveadm(tom@somedomain.org): Debug: Effective uid=5000, gid=5000, home=/mailstore/somedomain.org/to/tom/ doveadm(tom@somedomain.org): Debug: Quota root: name=User quota backend=maildir args= doveadm(tom@somedomain.org): Debug: Quota rule: root=User quota mailbox=* bytes=8589934592 messages=0 doveadm(tom@somedomain.org): Debug: Quota rule: root=User quota mailbox=Trash bytes=+104857600 messages=0 doveadm(tom@somedomain.org): Debug: Quota warning: bytes=8589934592 (100%) messages=0 reverse=no command=quota-warning 100 tom@somedomain.org doveadm(tom@somedomain.org): Debug: Quota warning: bytes=8504035246 (99%) messages=0 reverse=no command=quota-warning 99 tom@somedomain.org doveadm(tom@somedomain.org): Debug: Quota warning: bytes=8418135900 (98%) messages=0 reverse=no command=quota-warning 98 tom@somedomain.org doveadm(tom@somedomain.org): Debug: Quota warning: bytes=8246337208 (96%) messages=0 reverse=no command=quota-warning 96 tom@somedomain.org doveadm(tom@somedomain.org): Debug: Quota warning: bytes=8074538516 (94%) messages=0 reverse=no command=quota-warning 94 tom@somedomain.org doveadm(tom@somedomain.org): Debug: Quota warning: bytes=7902739824 (92%) messages=0 reverse=no command=quota-warning 92 tom@somedomain.org doveadm(tom@somedomain.org): Debug: Quota warning: bytes=7730941132 (90%) messages=0 reverse=no command=quota-warning 90 tom@somedomain.org doveadm(tom@somedomain.org): Debug: Quota warning: bytes=7301444403 (85%) messages=0 reverse=no command=quota-warning 85 tom@somedomain.org doveadm(tom@somedomain.org): Debug: Quota warning: bytes=6871947673 (80%) messages=0 reverse=no command=quota-warning 80 tom@somedomain.org doveadm(tom@somedomain.org): Debug: Quota warning: bytes=6012954214 (70%) messages=0 reverse=no command=quota-warning 70 tom@somedomain.org doveadm(tom@somedomain.org): Debug: Quota warning: bytes=8589934592 (100%) messages=0 reverse=yes command=quota-warning 0 tom@somedomain.org doveadm(tom@somedomain.org): Debug: Quota grace: root=User quota bytes=47185920 doveadm(tom@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@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@somedomain.org): Debug: quota: quota_over_flag check: quota_over_script unset - skipping doveadm(tom@somedomain.org): Debug: Mailbox INBOX/2016: Mailbox opened because: move doveadm(tom@somedomain.org): Debug: Mailbox INBOX: Mailbox opened because: move doveadm(tom@somedomain.org): Debug: Mailbox INBOX/2016: saving UID 0: Opened mail because: mail stream doveadm(tom@somedomain.org): Debug: Mailbox INBOX: UID 52642: Opened mail because: mail stream doveadm(tom@somedomain.org): Debug: Mailbox INBOX/2016: saving UID 0: Opened mail because: mail stream doveadm(tom@somedomain.org): Debug: Mailbox INBOX: UID 52643: Opened mail because: mail stream doveadm(tom@somedomain.org): Debug: Mailbox INBOX/2016: saving UID 0: Opened mail because: mail stream doveadm(tom@somedomain.org): Debug: Mailbox INBOX: UID 52644: Opened mail because: mail stream doveadm(tom@somedomain.org): Debug: Mailbox INBOX/2016: saving UID 0: Opened mail because: mail stream doveadm(tom@somedomain.org): Debug: Mailbox INBOX: UID 52645: Opened mail because: mail stream doveadm(tom@somedomain.org): Debug: Mailbox INBOX/2016: saving UID 0: Opened mail because: mail stream doveadm(tom@somedomain.org): Debug: Mailbox INBOX: UID 52646: Opened mail because: mail stream doveadm(tom@somedomain.org): Debug: Mailbox INBOX/2016: saving UID 0: Opened mail because: mail stream doveadm(tom@somedomain.org): Debug: Mailbox INBOX: UID 52963: Opened mail because: mail stream doveadm(tom@somedomain.org): Debug: Mailbox INBOX/2016: saving UID 0: Opened mail because: mail stream doveadm(tom@somedomain.org): Debug: Mailbox INBOX: UID 52964: Opened mail because: mail stream doveadm(tom@somedomain.org): Debug: Mailbox INBOX/2016: saving UID 0: Opened mail because: mail stream doveadm(tom@somedomain.org): Debug: Mailbox INBOX: UID 52965: Opened mail because: mail stream doveadm(tom@somedomain.org): Debug: Mailbox INBOX/2016: saving UID 0: Opened mail because: mail stream doveadm(tom@somedomain.org): Debug: Mailbox INBOX: UID 52967: Opened mail because: mail stream doveadm(tom@somedomain.org): Debug: Mailbox INBOX/2016: saving UID 0: Opened mail because: mail stream doveadm(tom@somedomain.org): Debug: Mailbox INBOX: UID 52968: Opened mail because: mail stream doveadm(tom@somedomain.org): Debug: Mailbox INBOX/2016: saving UID 0: Opened mail because: mail stream doveadm(tom@somedomain.org): Debug: Mailbox INBOX: UID 52969: Opened mail because: mail stream doveadm(tom@somedomain.org): Debug: Mailbox INBOX/2016: saving UID 0: Opened mail because: mail stream doveadm(tom@somedomain.org): Debug: Mailbox INBOX: UID 52970: Opened mail because: mail stream doveadm(tom@somedomain.org): Debug: Mailbox INBOX/2016: saving UID 0: Opened mail because: mail stream doveadm(tom@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@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@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 }