Hi,

I’m running Dovecot 2.2.19 with Maildir as storage and LDA for delivery.

I noticed that if I set mailbox_list_index=yes and maildir_very_dirty_syncs=yes when I login via IMAP the STATUS command don’t “see” new messages in sub-folders (like Spam).

Example, a new message as arrived in Spam folder (I can see in Maildir/new/) but IMAP STATUS don’t see it:

. STATUS Spam (MESSAGES UNSEEN)
* STATUS Spam (MESSAGES 139 UNSEEN 0)

(in this case the date of “dovecot.list.index” files is not updated)

If I comment out mailbox_list_index=yes or maildir_very_dirty_syncs=yes I can see the new message:

. STATUS Spam (MESSAGES UNSEEN)
* STATUS Spam (MESSAGES 140 UNSEEN 1)

(in this case the date of “dovecot.list.index” files is updated after the STATUS command)

Instead the SELECT command works fine always.

An importante note, my dovecot LDA configuration (on MX servers) don’t update index files:

protocol lda {
  mail_location = maildir:~/Maildir:INDEX=MEMORY
  mail_plugins = quota acl expire fts fts_solr zlib sieve
}

These because I need to filter incoming email via Sieve but since I cannot use LMTP (and Director) on MX (but I have Director for POP/IMAP access) the only way for not corrupting dovecot.index files is not update their on delivery emails.

But reading http://wiki2.dovecot.org/MailLocation/Maildir this shouldn’t be a problem (Optimizations “maildir_very_dirty_syncs=yes” … It's still safe to deliver new mails to new/ …) since MX deliver new emails in new/.

Is a Dovecot limit or is a problem of my configuration?
Thanks

my configuration:

# 2.2.19
# Pigeonhole version 0.4.9
auth_cache_negative_ttl = 5 mins
auth_cache_size = 10 M
auth_cache_ttl = 20 mins
auth_master_user_separator = *
auth_worker_max_count = 50
deliver_log_format = msgid=%m, from=%f, subject="%s": %$
dict {
  acl = mysql:/etc/dovecot/dovecot-dict-sql.conf.ext
  expire = mysql:/etc/dovecot/dovecot-dict-sql.conf.ext
  sqlquota = mysql:/etc/dovecot/dovecot-dict-sql.conf.ext
}
disable_plaintext_auth = no
first_valid_gid = 89
first_valid_uid = 89
imap_client_workarounds = delay-newmail tb-extra-mailbox-sep tb-lsub-flags
imap_idle_notify_interval = 29 mins
imap_logout_format = in=%i out=%o session=<%{session}>
last_valid_gid = 89
last_valid_uid = 89
lda_mailbox_autocreate = yes
lda_mailbox_autosubscribe = yes
listen = 10.96.3.156
login_trusted_networks = 10.0.0.0/24
mail_fsync = always
mail_location = maildir:~/Maildir
mail_plugins = quota acl expire fts fts_solr zlib
mailbox_list_index = yes
maildir_very_dirty_syncs = yes
managesieve_notify_capability = mailto
managesieve_sieve_capability = fileinto reject envelope encoded-character subaddress comparator-i;ascii-numeric relational regex imap4flags copy include variables body enotify environment mailbox date index ihave duplicate vnd.dovecot.duplicate
mmap_disable = yes
namespace {
  list = children
  location = maildir:%%h/Maildir:INDEX=~/Maildir/shared/%%u
  prefix = shared/%%n/
  separator = /
  subscriptions = no
  type = shared
}
namespace inbox {
  inbox = yes
  location =
  mailbox Drafts {
    auto = subscribe
    special_use = \Drafts
  }
  mailbox Sent {
    auto = subscribe
    special_use = \Sent
  }
  mailbox "Sent Messages" {
    special_use = \Sent
  }
  mailbox Spam {
    auto = subscribe
    special_use = \Junk
  }
  mailbox Trash {
    auto = subscribe
    special_use = \Trash
  }
  prefix =
  separator = /
}
passdb {
  args = /etc/dovecot/dovecot-deny-sql.conf.ext
  deny = yes
  driver = sql
}
passdb {
  args = /etc/dovecot/extra/master-users
  driver = passwd-file
  master = yes
  pass = yes
}
passdb {
  args = /etc/dovecot/dovecot-sql.conf.ext
  driver = sql
}
plugin {
  acl = vfile
  acl_shared_dict = proxy::acl
  antispam_backend = mailtrain
  antispam_mail_notspam = --ham
  antispam_mail_sendmail = /usr/bin/sa-learn
  antispam_mail_spam = --spam
  antispam_spam = Spam
  antispam_trash = Trash
  expire = Trash
  expire2 = Spam
  expire_dict = proxy::expire
  fts = solr
  fts_solr = url=http://10.0.0.1:8983/solr/
  quota = maildir:UserQuota
  quota2 = dict:Quota Usage::noenforcing:proxy::sqlquota
  quota_grace = 10M
  quota_rule2 = Trash:storage=+100M
  quota_warning = storage=95%% quota-warning 95 %u
  quota_warning2 = storage=80%% quota-warning 80 %u
  sieve = ~/.dovecot.sieve
  sieve_before = /etc/dovecot/sieve/before.sieve
  sieve_dir = ~/sieve
  sieve_extensions = +vnd.dovecot.duplicate -vacation
  zlib_save = gz
  zlib_save_level = 6
}
pop3_client_workarounds = outlook-no-nuls oe-ns-eoh
pop3_fast_size_lookups = yes
pop3_logout_format = top=%t/%p, retr=%r/%b, del=%d/%m, size=%s, bytes=%i/%o, session=<%{session}>
protocols = imap pop3 sieve
sendmail_path = /var/qmail/bin/sendmail
service auth {
  client_limit = 6524
  unix_listener auth-userdb {
    group = vchkpw
    mode = 0660
    user = vpopmail
  }
}
service dict {
  process_limit = 500
  unix_listener dict {
    group = vchkpw
    mode = 0660
    user = vpopmail
  }
}
service imap-login {
  process_min_avail = 4
  service_count = 0
}
service imap-postlogin {
  executable = script-login /etc/dovecot/scripts/imap-postlogin.sh
  unix_listener imap-postlogin {
    group = vchkpw
    mode = 0660
    user = vpopmail
  }
  user = vpopmail
}
service imap {
  executable = imap imap-postlogin
  process_limit = 5000
  service_count = 100
  vsz_limit = 384 M
}
service managesieve-login {
  inet_listener sieve {
    port = 4190
  }
}
service pop3-login {
  process_min_avail = 4
  service_count = 0
}
service pop3-postlogin {
  executable = script-login /etc/dovecot/scripts/pop3-postlogin.sh
  unix_listener pop3-postlogin {
    group = vchkpw
    mode = 0660
    user = vpopmail
  }
  user = vpopmail
}
service pop3 {
  executable = pop3 pop3-postlogin
  process_limit = 1024
  service_count = 100
}
service quota-warning {
  executable = script /etc/dovecot/scripts/quota-warning.sh
  unix_listener quota-warning {
    user = vpopmail
  }
  user = vpopmail
}
ssl_cert = </etc/dovecot/ssl/wildcard.pem
ssl_key = </etc/dovecot/ssl/wildcard.key
ssl_protocols = !SSLv2 !SSLv3
submission_host = 127.0.0.1
userdb {
  driver = prefetch
}
userdb {
  args = /etc/dovecot/dovecot-sql.conf.ext
  driver = sql
}
verbose_proctitle = yes
protocol lda {
  mail_location = maildir:~/Maildir:INDEX=MEMORY
  mail_plugins = quota acl expire fts fts_solr zlib sieve
}
protocol imap {
  mail_max_userip_connections = 25
mail_plugins = quota acl expire fts fts_solr zlib imap_quota imap_acl imap_zlib
}
protocol sieve {
  mail_max_userip_connections = 2
}
protocol pop3 {
  mail_max_userip_connections = 5
}


--
Alessio Cecchi
Postmaster AT http://www.qboxmail.it
http://www.linkedin.com/in/alessice

Reply via email to