nnmaildir stores mail in the maildir format, with each maildir
corresponding to a group in Gnus. This format is documented here:
http://cr.yp.to/proto/maildir.html and here:
also stores extra information in the .nnmaildir/ directory
within a maildir.
Maildir format was designed to allow concurrent deliveries and
reading, without needing locks. With other back ends, you would have
your mail delivered to a spool of some kind, and then you would
configure Gnus to split mail from that spool into your groups. You
can still do that with
nnmaildir, but the more common
configuration is to have your mail delivered directly to the maildirs
that appear as group in Gnus.
nnmaildir is designed to be perfectly reliable: C-g will
never corrupt its data in memory, and
SIGKILL will never
corrupt its data in the filesystem.
nnmaildir stores article marks and NOV data in each
maildir. So you can copy a whole maildir from one Gnus setup to
another, and you will keep your marks.
Virtual server settings:
nnmaildirservers (it's very unlikely that you'd need more than one), you need to create a directory and populate it with maildirs or symlinks to maildirs (and nothing else; do not choose a directory already used for other purposes). Each maildir will be represented in Gnus as a newsgroup on that server; the filename of the symlink will be the name of the group. Any filenames in the directory starting with ‘.’ are ignored. The directory is scanned when you first start Gnus, and each time you type g in the group buffer; if any maildirs have been removed or added,
nnmaildirnotices at these times.
The value of the
directory parameter should be a Lisp form
which is processed by
expand-file-name to get
the path of the directory for this server. The form is
only when the server is opened; the resulting string is used until the
server is closed. (If you don't know about forms and
don't worry—a simple string will work.) This parameter is not
optional; you must specify it. I don't recommend using
"~/Mail" or a subdirectory of it; several other parts of Gnus
use that directory by default for various things, and may get confused
nnmaildir uses it too.
"~/.nnmaildir" is a typical
expand-file-name. The form is
evaled only when the server is opened; the resulting string is used until the server is closed.
When you create a group on an
nnmaildir server, the maildir is
target-prefix prepended to its name, and a symlink
pointing to that maildir is created, named with the plain group name.
"../maildirs/", then when you create
nnmaildir will create
~/.nnmaildir/../maildirs/foo as a maildir, and will create
~/.nnmaildir/foo as a symlink pointing to
You can set
target-prefix to a string without any slashes to
create both maildirs and symlinks in the same
this case, any maildirs found in
directory whose names start
target-prefix will not be listed as groups (but the
symlinks pointing to them will be).
As a special case, if
"" (the default),
then when you create a group, the maildir will be created in
directory without a corresponding symlink. Beware that you
gnus-group-delete-group on such groups without the
directory-filesitself). It is used to scan the server's
directoryfor maildirs. This parameter is optional; the default is
nnheader-directory-files-is-safeis checked only once when the server is opened; if you want to check it each time the directory is scanned, you'll have to provide your own function that does that.)
nil, then after scanning for new mail in the group maildirs themselves as usual, this server will also incorporate mail the conventional Gnus way, from
nnmail-split-fancy. The default value is
Do not use the same maildir both in
mail-sources and as
nnmaildir group. The results might happen to be useful, but
that would be by chance, not by design, and the results might be
different in the future. If your split rules create new groups,
remember to supply a
create-directory server parameter.