[Dovecot] Dovecot 2.1 mbox + maildir

Alan Brown ajb2 at mssl.ucl.ac.uk
Wed May 30 19:15:05 EEST 2012


> From: Timo Sirainen<tss at iki.fi>

> On Mon, 2012-05-28 at 14:50 +0100, Alan Brown wrote:
>> >  What syntax is needed to make this work?
>> >
>> >  The 2.0 wiki recomendations don't work - I can see the inboxes or the
>> >  folders but not both at once and there are lots of error messages about
>> >  prefix clashes if I simply use the existing 2.0.20 conf file on 2.1.6
> Are you saying that it works in v2.0 but not in v2.1?

yes.

> Then something's
> wrong. Show your doveconf -n output and what error messages you see.

Attached to this email (dovecot 2.0 and 2.1 -n outputs)

In both cases, we use the same local config file, included from 
dovecot.conf (I've included both of these too)

The error message is:

May 30 17:00:31 msslat dovecot: imap(foobar): Error: user foobar: 
Initialization failed: namespace configuration error: Duplicate 
namespace prefix: ""
May 30 17:00:31 msslat dovecot: imap(foobar): Error: Invalid user 
settings. Refer to server log for more information.
May 30 17:00:31 msslat dovecot: master: Warning: Killed with signal 15 
(by pid=18489 uid=0 code=kill)


Attempting to tweak MAIL.conf to fix this error simply resulted in 
various states of "broken", so any help untangling this will be greatly 
appreciated.



-------------- next part --------------
## Dovecot configuration file

# If you're in a hurry, see http://wiki2.dovecot.org/QuickConfiguration

# "doveconf -n" command gives a clean output of the changed settings. Use it
# instead of copy&pasting files when posting to the Dovecot mailing list.

# '#' character and everything after it is treated as comments. Extra spaces
# and tabs are ignored. If you want to use either of these explicitly, put the
# value inside quotes, eg.: key = "# char and trailing whitespace  "

# Default values are shown for each setting, it's not required to uncomment
# those. These are exceptions to this though: No sections (e.g. namespace {})
# or plugin settings are added by default, they're listed only as examples.
# Paths are also just examples with the real defaults being based on configure
# options. The paths listed here are for configure --prefix=/usr
# --sysconfdir=/etc --localstatedir=/var

# Protocols we want to be serving.
#protocols = imap pop3 lmtp

# A comma separated list of IPs or hosts where to listen in for connections. 
# "*" listens in all IPv4 interfaces, "::" listens in all IPv6 interfaces.
# If you want to specify non-default ports or anything more complex,
# edit conf.d/master.conf.
#listen = *, ::

# Base directory where to store runtime data.
#base_dir = /var/run/dovecot/

# Greeting message for clients.
#login_greeting = Dovecot ready.

# Space separated list of trusted network ranges. Connections from these
# IPs are allowed to override their IP addresses and ports (for logging and
# for authentication checks). disable_plaintext_auth is also ignored for
# these networks. Typically you'd specify your IMAP proxy servers here.
#login_trusted_networks =

# Sepace separated list of login access check sockets (e.g. tcpwrap)
#login_access_sockets = 

# Show more verbose process titles (in ps). Currently shows user name and
# IP address. Useful for seeing who are actually using the IMAP processes
# (eg. shared mailboxes or if same uid is used for multiple accounts).
#verbose_proctitle = no

# Should all processes be killed when Dovecot master process shuts down.
# Setting this to "no" means that Dovecot can be upgraded without
# forcing existing client connections to close (although that could also be
# a problem if the upgrade is e.g. because of a security fix).
#shutdown_clients = yes

# If non-zero, run mail commands via this many connections to doveadm server,
# instead of running them directly in the same process.
#doveadm_worker_count = 0
# UNIX socket or host:port used for connecting to doveadm server
#doveadm_socket_path = doveadm-server

# Space separated list of environment variables that are preserved on Dovecot
# startup and passed down to all of its child processes. You can also give
# key=value pairs to always set specific settings.
#import_environment = TZ

##
## Dictionary server settings
##

# Dictionary can be used to store key=value lists. This is used by several
# plugins. The dictionary can be accessed either directly or though a
# dictionary server. The following dict block maps dictionary names to URIs
# when the server is used. These can then be referenced using URIs in format
# "proxy::<name>".

dict {
  #quota = mysql:/etc/dovecot/dovecot-dict-sql.conf.ext
  #expire = sqlite:/etc/dovecot/dovecot-dict-sql.conf.ext
}

# Most of the actual configuration gets included below. The filenames are
# first sorted by their ASCII value and parsed in that order. The 00-prefixes
# in filenames are intended to make it easier to understand the ordering.
!include conf.d/*.conf
!include ./MAIL.conf

# A config file can also tried to be included without giving an error if
# it's not found:
#!include_try local.conf
#!include_try /etc/dovecot/local.conf

-------------- next part --------------
# 2.0.1: /stage/mail-common/etc/dovecot.conf
# OS: Linux 2.6.18-194.11.3.el5 x86_64 Red Hat Enterprise Linux Server release 5.5 (Tikanga) gfs2
auth_cache_size = 100M
auth_cache_ttl = 300 s
auth_failure_delay = 5 s
auth_worker_max_count = 1000
base_dir = /stage/mail-common/var/run/dovecot/
dict {
  expire = db:/stage/mail-common/var/lib/dovecot/expire.db
}
first_valid_uid = 100
listen = *
login_greeting = MSSL IMAP ready.
mail_access_groups = mail
mail_location = maildir:/stage/mail/imap1/%u/Maildir:CONTROL=/stage/mail/control/%u/maildir:INDEX=/stage/mail/indexes/%u/maildir
mbox_read_locks = dotlock fcntl
mbox_write_locks = dotlock fcntl flock lockf
namespace {
  hidden = yes
  inbox = yes
  location = mbox:/stage/mail/imap1/%u/mail:INBOX=/stage/mail/inboxes/%u:CONTROL=/stage/mail/control/%u/INBOX:INDEX=/stage/mail/indexes/%u/INBOX
  prefix = "#mbox/"
  separator = /
  type = private
}
namespace {
  location = maildir:/stage/mail/imap1/%u/Maildir:CONTROL=/stage/mail/control/%u/maildir:INDEX=/stage/mail/indexes/%u/maildir
#  prefix = 
  separator = /
  type = private
}
namespace {
  location = mbox:/stage/mail/imap1/%u/mail:CONTROL=/stage/mail/control/%u/mbox:INDEX=/stage/mail/indexes/%u/mbox
  prefix = OLD/
  separator = /
  type = private
}
passdb {
  driver = pam
}
plugin {
#  convert_alt_hierarchy_char = _
#  convert_mail = mbox:/stage/mail/imap1/%u/convert
#  convert_skip_broken_mailboxes = yes
#  expire = Trash 7 Spam 30 Junk 30
#  expire_dict = proxy::expire
}
protocols = imap
service anvil {
  client_limit = 5080
}
service auth {
  user = root
  client_limit = 5080
}
service imap-login {
#                         PAL 23-Nov-2010
  inet_listener imap {
    #port = 143
    address = * # opverrides 10-master.conf for the moment
  }
  inet_listener imaps {
    port = 993
    # ssl = yes
  }
  inet_listener 80-imaps {
    port = 80
    ssl = yes
  }
  inet_listener 443-imaps {
    port = 443
    ssl = yes
  }
#                         end - PAL 23-Nov-2010
  client_limit = 8192
  process_limit = 2028
  process_min_avail = 10
  vsz_limit = 512M
}
service imap {
  process_limit = 3052
}
service pop3-login {
  client_limit = 8192
  process_limit = 2028
  process_min_avail = 10
  vsz_limit = 128M
}
service pop3 {
  process_limit = 3052
}
ssl_ca = </stage/mail-common/etc/pki/CA/MSSL_signing_certificate.pem
ssl_cert = </stage/mail-common/etc/pki/dovecot/certs/imaps.crt
ssl_key = </stage/mail-common/etc/pki/dovecot/private/imaps.key
userdb {
  driver = passwd
}
valid_chroot_dirs = /stage/mail:/stage/home
verbose_proctitle = yes
protocol imap {
#  mail_max_userip_connections = 20
# bumped to 100 - ajb2 2012-1-12
  mail_max_userip_connections = 100
#  mail_plugins = convert
disable_plaintext_auth=no
}
protocol lda {
  hostname = imap.mssl.ucl.ac.uk
  postmaster_address = postmaster at mssl.ucl.ac.uk
  quota_full_tempfail = yes
}
-------------- next part --------------
# 2.1.6: /etc/dovecot/dovecot.conf
# OS: Linux 2.6.18-308.8.1.el5 x86_64 Red Hat Enterprise Linux Server release 5.8 (Tikanga) gfs2
auth_cache_size = 100 M
auth_cache_ttl = 5 mins
auth_failure_delay = 5 secs
auth_worker_max_count = 1000
base_dir = /stage/mail-common/var/run/dovecot/
dict {
  expire = db:/stage/mail-common/var/lib/dovecot/expire.db
}
first_valid_uid = 100
listen = *
login_greeting = MSSL IMAP ready.
mail_access_groups = mail
mail_location = maildir:/stage/mail/imap1/%u/Maildir:CONTROL=/stage/mail/control/%u/maildir:INDEX=/stage/mail/indexes/%u/maildir
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 ihave
mbox_read_locks = dotlock fcntl
mbox_write_locks = dotlock fcntl flock lockf
namespace {
  hidden = yes
  inbox = yes
  location = mbox:/stage/mail/imap1/%u/mail:INBOX=/stage/mail/inboxes/%u:CONTROL=/stage/mail/control/%u/INBOX:INDEX=/stage/mail/indexes/%u/INBOX
  prefix = "#mbox/"
  separator = /
  type = private
}
namespace {
  location = maildir:/stage/mail/imap1/%u/Maildir:CONTROL=/stage/mail/control/%u/maildir:INDEX=/stage/mail/indexes/%u/maildir
  prefix = 
  separator = /
  type = private
}
namespace {
  location = mbox:/stage/mail/imap1/%u/mail:CONTROL=/stage/mail/control/%u/mbox:INDEX=/stage/mail/indexes/%u/mbox
  prefix = OLD/
  separator = /
  type = private
}
namespace inbox {
  inbox = yes
  location = 
  mailbox Drafts {
    special_use = \Drafts
  }
  mailbox Junk {
    special_use = \Junk
  }
  mailbox Sent {
    special_use = \Sent
  }
  mailbox "Sent Messages" {
    special_use = \Sent
  }
  mailbox Trash {
    special_use = \Trash
  }
  prefix = 
}
passdb {
  driver = pam
}
passdb {
  driver = pam
}
plugin {
  sieve = ~/.dovecot.sieve
  sieve_dir = ~/sieve
}
protocols = imap
service anvil {
  client_limit = 5080
}
service auth {
  client_limit = 5080
  user = root
}
service imap-login {
  client_limit = 8192
  inet_listener 443-imaps {
    port = 443
    ssl = yes
  }
  inet_listener 80-imaps {
    port = 80
    ssl = yes
  }
  inet_listener imap {
    address = *
  }
  inet_listener imaps {
    port = 993
  }
  process_limit = 2028
  process_min_avail = 10
  vsz_limit = 512 M
}
service imap {
  process_limit = 3052
}
service pop3-login {
  client_limit = 8192
  process_limit = 2028
  process_min_avail = 10
  vsz_limit = 128 M
}
service pop3 {
  process_limit = 3052
}
ssl = required
ssl_ca = </stage/mail-common/etc/pki/CA/MSSL_signing_certificate.pem
ssl_cert = </stage/mail-common/etc/pki/dovecot/certs/imaps.crt
ssl_key = </stage/mail-common/etc/pki/dovecot/private/imaps.key
userdb {
  driver = passwd
}
userdb {
  driver = passwd
}
valid_chroot_dirs = /stage/mail:/stage/home
verbose_proctitle = yes
protocol lda {
  hostname = imap.mssl.ucl.ac.uk
  postmaster_address = postmaster at mssl.ucl.ac.uk
  quota_full_tempfail = yes
}
protocol imap {
  disable_plaintext_auth = no
  mail_max_userip_connections = 100
}
-------------- next part --------------
# 2.0.20: /etc/dovecot/dovecot.conf
# OS: Linux 2.6.18-308.4.1.el5 x86_64 Red Hat Enterprise Linux Server release 5.8 (Tikanga) gfs2
auth_cache_size = 100 M
auth_cache_ttl = 5 mins
auth_failure_delay = 5 secs
auth_worker_max_count = 1000
base_dir = /stage/mail-common/var/run/dovecot/
dict {
  expire = db:/stage/mail-common/var/lib/dovecot/expire.db
}
first_valid_uid = 100
listen = *
login_greeting = MSSL IMAP ready.
mail_access_groups = mail
mail_location = maildir:/stage/mail/imap1/%u/Maildir:CONTROL=/stage/mail/control/%u/maildir:INDEX=/stage/mail/indexes/%u/maildir
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 ihave
mbox_read_locks = dotlock fcntl
mbox_write_locks = dotlock fcntl flock lockf
namespace {
  hidden = yes
  inbox = yes
  location = mbox:/stage/mail/imap1/%u/mail:INBOX=/stage/mail/inboxes/%u:CONTROL=/stage/mail/control/%u/INBOX:INDEX=/stage/mail/indexes/%u/INBOX
  prefix = "#mbox/"
  separator = /
  type = private
}
namespace {
  location = maildir:/stage/mail/imap1/%u/Maildir:CONTROL=/stage/mail/control/%u/maildir:INDEX=/stage/mail/indexes/%u/maildir
  prefix = 
  separator = /
  type = private
}
namespace {
  location = mbox:/stage/mail/imap1/%u/mail:CONTROL=/stage/mail/control/%u/mbox:INDEX=/stage/mail/indexes/%u/mbox
  prefix = OLD/
  separator = /
  type = private
}
passdb {
  driver = pam
}
passdb {
  driver = pam
}
plugin {
  sieve = ~/.dovecot.sieve
  sieve_dir = ~/sieve
}
protocols = imap
service anvil {
  client_limit = 5080
}
service auth {
  client_limit = 5080
  user = root
}
service imap-login {
  client_limit = 8192
  inet_listener 443-imaps {
    port = 443
    ssl = yes
  }
  inet_listener 80-imaps {
    port = 80
    ssl = yes
  }
  inet_listener imap {
    address = *
  }
  inet_listener imaps {
    port = 993
  }
  process_limit = 2028
  process_min_avail = 10
  vsz_limit = 512 M
}
service imap {
  process_limit = 3052
}
service pop3-login {
  client_limit = 8192
  process_limit = 2028
  process_min_avail = 10
  vsz_limit = 128 M
}
service pop3 {
  process_limit = 3052
}
ssl = required
ssl_ca = </stage/mail-common/etc/pki/CA/MSSL_signing_certificate.pem
ssl_cert = </stage/mail-common/etc/pki/dovecot/certs/imaps.crt
ssl_key = </stage/mail-common/etc/pki/dovecot/private/imaps.key
userdb {
  driver = passwd
}
userdb {
  driver = passwd
}
valid_chroot_dirs = /stage/mail:/stage/home
verbose_proctitle = yes
protocol lda {
  hostname = imap.mssl.ucl.ac.uk
  postmaster_address = postmaster at mssl.ucl.ac.uk
  quota_full_tempfail = yes
}
protocol imap {
  disable_plaintext_auth = no
  mail_max_userip_connections = 100
}


More information about the dovecot mailing list