7.3.3 Client-Side IMAP Splitting

Many people prefer to do the sorting/splitting of mail into their mail boxes on the IMAP server. That way they don’t have to download the mail they’re not all that interested in.

If you do want to do client-side mail splitting, then the following variables are relevant:

nnimap-inbox

This is the IMAP mail box that will be scanned for new mail. This can also be a list of mail box names.

nnimap-split-methods

Uses the same syntax as nnmail-split-methods (see Splitting Mail), except the symbol default, which means that it should use the value of the nnmail-split-methods variable.

nnimap-split-fancy

Uses the same syntax as nnmail-split-fancy.

nnimap-unsplittable-articles

List of flag symbols to ignore when doing splitting. That is, articles that have these flags won’t be considered when splitting. The default is ‘(%Deleted %Seen)’.

By default, the nnimap back end only retrieves the message headers; the option nnimap-split-download-body (which is a regular customization option, not a server variable) tells it to retrieve the message bodies as well. We don’t set this by default because it will slow IMAP down, and that is not an appropriate decision to make on behalf of the user.

Here’s a complete example nnimap backend with a client-side “fancy” splitting method:

(nnimap "imap.example.com"
        (nnimap-inbox "INBOX")
        (nnimap-split-fancy
         (| ("MailScanner-SpamCheck" "spam" "spam.detected")
            (to "foo@bar.com" "foo")
            "undecided")))