Understanding Dovecot IMAP and Maildir

Understanding Dovecot IMAP and Maildir
5 (100%) 1 vote

Maildir (run by Courier IMAP or Dovecot) is a mail format used in conjunction with an MTA to store email on the server as separate files within folders. This post covers Courier IMAP as a service, not in terms of mail client usage.

Directory Structure

A user’s email is store in ”’/home/user/mail/<domain>/<emailuser>/…”’. Below is a sample directory structure of an email account:

  • /home/username/mail (mail folder)

    • /domain.com (domain)

    • admin (email user)

    • maildirsize (quota/usage summary, expendable)

    • cur (default inbox for read email)

    • new (default email for unread email)

    • Drafts ( sample folder )

      • – cur (read email)

      • – new (unread email)

  • /home/username/etc

    • /domain.com (domain)

      • passwd (contains email account list and UIDs, similar to /etc/passwd)

      • shadow (contains email passwords, similar to /etc/shadow)

      • quota (contains email account quota info)

Folders

So basically, each email user has its own folder, each containing the main inbox (cur/new), and separate email folders. Each separate inbox folder also contains a ”’cur”’ and ”’new”’ folder.

  • cur – read email
  • new – unread email

Email that is marked as read by the IMAP client (outlook, etc) is moved from ‘new’ to ‘cur’ .

Etc Files

Here’s a sample passwd file:

admin:x:510:510::/home/user/mail/domain.com/admin:/bin/bash
support:x:513:513::/home/user/mail/domain.com/support:/bin/bash

Similar to the /etc/password on the server, the file contains some critical pieces of information. From left to right:

  • username
  • password (x indicates the password is in a shadow file)
  • UID (should match main user’s UID in /etc/password)
  • GID (should match main user’s GID in /etc/password)
  • home folder (location of the email account’s mail folders)
  • shell (not relevant)

Permissions

There is a script in cPanel to attempt to fix user mail permissions, and is generally safe to run:

/scripts/mailperm

The permissions should be as follows:

– /home/user/etc (user:mail, 755)
– domain.com (user:mail, 770)
– passwd (user:mail, 644)
– shadow (user:mail, 644)

The other permissions can be 755 user:user, as those files don’t affect email delivery.

 

– /domain.com (domain)

– /admin (email user)

– maildirsize (quota/usage summary, expendable)

– cur (default inbox for read email)

– new (default email for unread email)

– Drafts ( sample folder )

– cur (read email)

– new (unread email)

– /home/username/etc

– /domain.com (domain)

– passwd (contains email account list and UIDs, similar to /etc/passwd)

– shadow (contains email passwords, similar to /etc/shadow)

– quota (contains email account quota info)

Don't be selfish, share!Tweet about this on TwitterShare on RedditShare on TumblrBuffer this pageDigg thisShare on FacebookFlattr the authorEmail this to someoneShare on Google+Pin on PinterestPrint this pageShare on LinkedInShare on StumbleUpon

1 Comment

Leave a Reply

Your email address will not be published. Required fields are marked *

Log in