Handle of "subscription" file/folder for IMAP

Gedalya gedalya at gedalya.net
Fri Nov 21 23:21:40 UTC 2014


On 11/21/2014 06:03 PM, Jorge Bastos wrote:
>> OK that's better, the screenshot helps too.
>> There are a number of funny things here.
>> First of all, dovecot.sieve belongs in the *home* directory, not in
>> Maildir. The home directory can be, typically, the parent directory of
>> the Maildir.
>> Like in: domains/example.com/user1/Maildir - the user1/ is the home
>> directory and dovecot.sieve lives there.
>>
>> Would you please post your complete dovecot config (output of the
>> command: dovecot -n) and also an example output of ls -la of your
>> directory structure?
>>
>> See also http://dovecot.org/mailinglists.html
> Sure, here it is:

 From conf.d/10-mail.conf:

# By default LIST command returns all entries in maildir beginning with 
a dot.
# Enabling this option makes Dovecot return only entries which are 
directories.
# This is done by stat()ing each entry, so it causes more disk I/O.
# (For systems setting struct dirent->d_type, this check is free and it's
# done always regardless of this setting)
#maildir_stat_dirs = no

So basically the behavior is "correct" in your case. You have the 
directory entries .dovecot.sieve and .subscriptions, which is anyway a 
directory indeed, so that's not even a bug.
Move all your maildirs to /home/mail/%d/%u/Maildir and then update 
mail_location accordingly.
Then move out the sieve files - .dovecot.sieve, sieve/, 
.dovecot.sieve.log, .dovecot.svbin  to the home directory.

It looks like these are not system users, so you may need to set 
mail_home explicitly to set up the home directory to /home/mail/%d/%u

See
http://wiki2.dovecot.org/MailLocation
http://wiki2.dovecot.org/MailLocation/Maildir
http://wiki2.dovecot.org/VirtualUsers/Home


>
> root at fastmail:/home/mail/a.com/a at a.com# l
> total 108
> drwx------ 13 5000 5000  4096 Nov 20 22:19 ./
> drwx------  3 5000 5000  4096 Nov  3 23:06 ../
> drwx------  2 5000 5000  4096 Nov 20 22:07 cur/
> -rw-------  1 5000 5000  9920 Nov 21 03:25 dovecot.index.cache
> -rw-------  1 5000 5000 12908 Nov 20 22:19 dovecot.index.log
> -rw-------  1 5000 5000   202 Nov 10 22:35 .dovecot.lda-dupes
> -rw-------  1 5000 5000   312 Nov 10 22:23 dovecot.mailbox.log
> lrwxrwxrwx  1 5000 5000    23 Nov  9 12:21 .dovecot.sieve ->
> sieve/managesieve.sieve
> -rw-------  1 5000 5000   461 Nov  9 12:28 .dovecot.sieve.log
> -rw-------  1 5000 5000   270 Nov  9 15:43 .dovecot.svbin
> -rw-------  1 5000 5000   782 Nov 19 23:26 dovecot-uidlist
> -rw-------  1 5000 5000     8 Nov  8 16:32 dovecot-uidvalidity
> -r--r--r--  1 5000 5000     0 Nov  3 23:06 dovecot-uidvalidity.54580a72
> drwx------  5 5000 5000  4096 Nov  8 16:33 .Drafts/
> drwx------  5 5000 5000  4096 Nov  8 16:33 .Junk/
> drwx------  5 5000 5000  4096 Nov  8 18:50 .Junk E-mail/
> drwx------  2 5000 5000  4096 Nov 19 23:44 new/
> drwx------  5 5000 5000  4096 Nov  8 16:33 .ola ' aaaa \r/
> drwx------  5 5000 5000  4096 Nov  8 16:33 .Sent Items/
> drwx------  3 5000 5000  4096 Nov  9 15:42 sieve/
> -rw-------  1 5000 5000    69 Nov 10 22:23 subscriptions
> drwx------  5 5000 5000  4096 Nov  8 21:15 .subscriptions/
> drwx------  2 5000 5000  4096 Nov 19 23:26 tmp/
> drwx------  5 5000 5000  4096 Nov  8 21:15 .Trash/
> root at fastmail:/home/mail/a.com/a at a.com#
>
>
> doveconf:
> # 2.2.13: /etc/dovecot/dovecot.conf
> # OS: Linux 3.14.23x x86_64 Debian 7.6 ext4
> auth_mechanisms = plain login
> dict {
>    sqlquota = mysql:/etc/dovecot/dovecot-dict-sql.conf.ext
> }
> disable_plaintext_auth = no
> listen = *
> login_greeting = myserver
> mail_location = maildir:/home/mail/%d/%u
> mail_plugins = quota
> mail_privileged_group = mail
> 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
> 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 {
>    args = /etc/dovecot/dovecot-sql.conf.ext
>    driver = sql
> }
> plugin {
>    quota = dict:User Quota::proxy::sqlquota
>    quota_exceeded_message = Quota exceeded (mailbox for user is full) / Conta
> de destino cheia (o email de destino tem a caixa cheia)
>    quota_rule = *:storage=100M
>    sieve = ~/.dovecot.sieve
>    sieve_dir = ~/sieve
>    sieve_max_script_size = 10M
> }
> postmaster_address = trash at email.pt
> protocols = imap lmtp pop3 sieve
> service dict {
>    unix_listener dict {
>      mode = 0777
>    }
> }
> service imap {
>    process_limit = 1024
> }
> service lmtp {
>    inet_listener lmtp {
>      address = 0.0.0.0
>      port = 24
>    }
>    process_min_avail = 10
>    unix_listener /var/spool/postfix/private/dovecot-lmtp {
>      group = postfix
>      mode = 0666
>      user = postfix
>    }
> }
> service pop3-login {
>    inet_listener pop3 {
>      port = 110
>    }
> }
> service pop3 {
>    process_limit = 1024
> }
> ssl = no
> ssl_cert = </etc/dovecot/dovecot.pem
> ssl_key = </etc/dovecot/private/dovecot.pem
> userdb {
>    args = /etc/dovecot/dovecot-sql.conf.ext
>    driver = sql
> }
> protocol lmtp {
>    mail_plugins = quota sieve
> }
> protocol imap {
>    mail_plugins = quota imap_quota
> }



More information about the dovecot mailing list