[Dovecot] X-SAVEDATE & dync & doveadm expunge
Hello List,
After moving the mail store via dsync backup to a different location the following command
doveadm expunge -u user mailbox "Trash" savedbefore 10d
deleted ALL mails in Trash instead of messages older than 10 days.
It looks like X-SAVEDATE is somehow wrong...
A fetch 1:* (internaldate x-savedate)
- 1 FETCH (INTERNALDATE "28-Dec-2007 14:49:58 +0100" X-SAVEDATE "01-Jan-1970 01:00:00 +0100") A OK Fetch completed.
...while the ctime for this mail is as below:
$ ls -lac -rw------- 1 vmail vmail 40851 2010-12-30 19:26 1198963359.P1256Q0M253583.ubuntu-test.localdomain,S=40851:2,S
I was assuming that for the maildirs X-SAVEDATE is derived from the message ctime? "01-Jan-1970 01:00:00 +0100" seem to be definitely wrong.
Thanks, e-frog
$ doveconf -n # 2.0.8 (89936539e3b8): /etc/dovecot/dovecot.conf # OS: Linux 2.6.35-24-generic-pae i686 Ubuntu 10.10 deliver_log_format = msgid=%m: from=%f: %$ dict { dictionary = mysql:/etc/dovecot/dovecot-dict-sql.conf.ext } lda_mailbox_autocreate = yes lda_mailbox_autosubscribe = yes mail_gid = vmail mail_home = /home/vmail/%Ld/%Ln mail_location = maildir:~/maildir:INDEX=~/index:CONTROL=~/control mail_plugins = quota virtual 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 namespace { hidden = no inbox = yes list = yes location = prefix = separator = / subscriptions = yes type = private } namespace { location = virtual:/etc/dovecot/virtual:INDEX=~/control/virtual prefix = virtual/ separator = / subscriptions = no type = private } passdb { args = /etc/dovecot/dovecot-sql.conf.ext driver = sql } plugin { antispam_backend = spool2dir antispam_spam = Junk antispam_spool2dir_notspam = /home/vmail/learn-ham/%%020lu-%u-%%05luh antispam_spool2dir_spam = /home/vmail/learn-spam/%%020lu-%u-%%05lus antispam_trash = Trash fts = squat fts_squat = partial=4 full=10 quota = dict:user::proxy::dictionary sieve = ~/dovecot.sieve sieve_before = /etc/dovecot/sieve-global/ sieve_dir = ~/sieve } postmaster_address = postmaster@ubuntu-test.localdomain protocols = imap lmtp sieve quota_full_tempfail = yes service auth { unix_listener /var/spool/postfix/private/dovecot-auth { group = postfix mode = 0660 user = postfix } unix_listener auth-userdb { mode = 0600 user = vmail } } service dict { unix_listener dict { mode = 0600 user = vmail } } service imap-login { inet_listener imaps { port = 0 } process_min_avail = 2 service_count = 0 } service imap { executable = imap postlogin } service lmtp { unix_listener /var/spool/postfix/private/dovecot-lmtp { group = postfix mode = 0660 user = postfix } user = vmail } service postlogin { executable = script-login /opt/bin/dovecot-postlogin.sh } ssl = required ssl_cert =
On Fri, 2010-12-31 at 11:36 +0100, e-frog wrote:
It looks like X-SAVEDATE is somehow wrong...
A fetch 1:* (internaldate x-savedate)
- 1 FETCH (INTERNALDATE "28-Dec-2007 14:49:58 +0100" X-SAVEDATE "01-Jan-1970 01:00:00 +0100") A OK Fetch completed.
Fixed: http://hg.dovecot.org/dovecot-2.0/rev/a45ce2faf82a
I was assuming that for the maildirs X-SAVEDATE is derived from the message ctime? "01-Jan-1970 01:00:00 +0100" seem to be definitely wrong.
Yes, but only when it's not already saved to dovecot.index.cache.
On 04.01.2011 11:05, wrote Timo Sirainen:
On Fri, 2010-12-31 at 11:36 +0100, e-frog wrote:
It looks like X-SAVEDATE is somehow wrong...
A fetch 1:* (internaldate x-savedate)
- 1 FETCH (INTERNALDATE "28-Dec-2007 14:49:58 +0100" X-SAVEDATE "01-Jan-1970 01:00:00 +0100") A OK Fetch completed.
Thanks Timo! Works now.
I was assuming that for the maildirs X-SAVEDATE is derived from the message ctime? "01-Jan-1970 01:00:00 +0100" seem to be definitely wrong.
Yes, but only when it's not already saved to dovecot.index.cache.
Ok.
participants (2)
-
e-frog
-
Timo Sirainen