0
|
1
|
|
2 * Alpha release
|
|
3
|
|
4 This release has not been extensively tested, I don't recommend putting it
|
|
5 into production usage yet. All the IMAP4rev1 features are fully supported,
|
|
6 except custom message flags still need to be implemented. There's several
|
|
7 minor problems left, see TODO file.
|
|
8
|
|
9 * Mail storages
|
|
10
|
|
11 Maildir is the preferred storage with most robust implementation. mbox
|
|
12 support is available but currently it relies a little bit on good luck, I
|
|
13 made it mostly for personal use and I strongly recommend using maildir if
|
|
14 at all possible.
|
|
15
|
|
16 Maildir folders are done like with courier. INBOX is the ~/Maildir
|
|
17 directory, all the other folders named as ".<folder>.<subfolder>.<etc>"
|
|
18 under it, any directories not starting with a dot are simply ignored.
|
|
19 Deleting folders is made atomic by renaming them as "..<folder name>" and
|
|
20 deleting the directory after that. So, all directories beginning with ".."
|
|
21 are deleted whenever they're noticed. Indexes are stored into each folder's
|
|
22 root directory.
|
|
23
|
|
24 mbox storage currently requires that all mail is in user-writable
|
|
25 directory, eg. ~/mail. Especially using /var/mail/user is NOT supported.
|
|
26 You may however create a ~/mail/inbox hardlink (or symlink if not chrooted)
|
|
27 to pointing to /var/mail/user. All files in the mail directory are
|
|
28 considered as mailboxes. Directories specify subfolders in IMAP. "inbox"
|
|
29 file specifies the INBOX folder and can not be named otherwise. Indexes are
|
|
30 stored into ".imap/<mailbox name>/" directories.
|
|
31
|
|
32 imap process detects the storage from MAIL-environment which is preferred
|
|
33 to be in format "<storage>:<data>", for example "maildir:~/Maildir". It's
|
|
34 anyway allowed to be in pretty much any format as long as some of the
|
|
35 storages recognizes it as a valid data, so for example "MAIL=~/mail" is
|
|
36 first checked by maildir storage to see if it's valid maildir and
|
|
37 mbox storage after that.
|
|
38
|
|
39 If the MAIL environment isn't given at all, all the storages are gone
|
|
40 through which try to find a valid directory for themselves to use. Also as
|
|
41 a special case, if MAILDIR environment exists, maildir storage is used with
|
|
42 the directory specified in it.
|
|
43
|
|
44 Maildir storage is autodetected by checking if <directory>/cur/ exists and
|
|
45 we have rwx access to it. If directory isn't known, / and ~/Maildir are
|
|
46 checked. / is checked because we could be chrooted.
|
|
47
|
|
48 mbox storage is autodetected by checking if .imap/ (+rwx), inbox (+rw) or
|
|
49 mbox (+rw) exists in directory. If directory isn't known, / is tried first.
|
|
50 After that, ~/mail and ~/Mail directories are used if they're found without
|
|
51 checking if they even contain any files.
|
|
52
|
|
53 * Code
|
|
54
|
|
55 The code is split into a several libraries and binaries:
|
|
56
|
|
57 src/master - imap-master binary (see docs/design.txt)
|
|
58 src/login - imap-login binary
|
|
59 src/auth - imap-auth binary
|
|
60 src/imap - imap binary
|
|
61
|
|
62 src/lib - Generic library functions
|
|
63 src/lib-mail - RFC-822 and MIME parsering code
|
|
64 src/lib-imap - IMAP-specific functions for parsing, sending, etc.
|
|
65 src/lib-index - Mailbox indexing library, slightly IMAP-specific
|
|
66 src/lib-storage - Mail storage separated into interface and implementation.
|
|
67 imap binary uses only the interface so it's possible to
|
|
68 add support for any kind of mail storage (eg. SQL).
|
|
69
|
|
70 * RFCs conformed
|
|
71
|
|
72 822 - Standard for ARPA Internet Text Messages
|
|
73 2822 - Internet Message Format (updated rfc822)
|
|
74 2045..2049 - Multipurpose Internet Mail Extensions (MIME)
|
|
75
|
|
76 2060 - IMAP4rev1
|
|
77 2180 - IMAP4 Multi-Accessed Mailbox Practice
|
|
78
|
|
79 2595 - Using TLS with IMAP, POP3 and ACAP
|
|
80 2831 - Using Digest Authentication as a SASL Mechanism (DIGEST-MD5)
|
|
81
|
|
82 rfc2831
|
|
83
|
|
84 * Contact info
|
|
85
|
|
86 Timo Sirainen <tss@iki.fi>, http://dovecot.procontrol.fi/
|