gnus: Maildir

 
 6.4.13.5 Maildir
 ................
 
 ‘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:
 <http://www.qmail.org/man/man5/maildir.html>.  ‘nnmaildir’ 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:
 
 ‘directory’
      For each of your ‘nnmaildir’ servers (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, ‘nnmaildir’ notices at these times.
 
      The value of the ‘directory’ parameter should be a Lisp form which
      is processed by ‘eval’ and ‘expand-file-name’ to get the path of
      the directory for this server.  The form is ‘eval’ed only when the
      server is opened; the resulting string is used until the server is
      closed.  (If you don’t know about forms and ‘eval’, 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 if ‘nnmaildir’ uses it
      too.  ‘"~/.nnmaildir"’ is a typical value.
 
 ‘target-prefix’
      This should be a Lisp form which is processed by ‘eval’ and
      ‘expand-file-name’.  The form is ‘eval’ed 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
      created with ‘target-prefix’ prepended to its name, and a symlink
      pointing to that maildir is created, named with the plain group
      name.  So if ‘directory’ is ‘"~/.nnmaildir"’ and ‘target-prefix’ is
      ‘"../maildirs/"’, then when you create the group ‘foo’, ‘nnmaildir’
      will create ‘~/.nnmaildir/../maildirs/foo’ as a maildir, and will
      create ‘~/.nnmaildir/foo’ as a symlink pointing to
      ‘../maildirs/foo’.
 
      You can set ‘target-prefix’ to a string without any slashes to
      create both maildirs and symlinks in the same ‘directory’; in this
      case, any maildirs found in ‘directory’ whose names start with
      ‘target-prefix’ will not be listed as groups (but the symlinks
      pointing to them will be).
 
      As a special case, if ‘target-prefix’ is ‘""’ (the default), then
      when you create a group, the maildir will be created in ‘directory’
      without a corresponding symlink.  Beware that you cannot use
      ‘gnus-group-delete-group’ on such groups without the ‘force’
      argument.
 
 ‘directory-files’
      This should be a function with the same interface as
      ‘directory-files’ (such as ‘directory-files’ itself).  It is used
      to scan the server’s ‘directory’ for maildirs.  This parameter is
      optional; the default is ‘nnheader-directory-files-safe’ if
      ‘nnheader-directory-files-is-safe’ is ‘nil’, and ‘directory-files’
      otherwise.  (‘nnheader-directory-files-is-safe’ is 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.)
 
 ‘get-new-mail’
      If non-‘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 ‘mail-sources’ according to
      ‘nnmail-split-methods’ or ‘nnmail-split-fancy’.  The default value
      is ‘nil’.
 
      Do _not_ use the same maildir both in ‘mail-sources’ and as an
      ‘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.