Previous: Hooking New Back Ends Into Gnus, Up: Back End Interface

##### 11.7.2.6 Mail-like Back Ends

One of the things that separate the mail back ends from the rest of the back ends is the heavy dependence by most of the mail back ends on common functions in `nnmail.el`. For instance, here's the definition of `nnml-request-scan`:

         (deffoo nnml-request-scan (&optional group server)
           (setq nnml-article-file-alist nil)
           (nnmail-get-new-mail 'nnml 'nnml-save-nov nnml-directory group))

It simply calls `nnmail-get-new-mail` with a few parameters, and `nnmail` takes care of all the moving and splitting of the mail.

This function takes four parameters.

method
  This should be a symbol to designate which back end is responsible for the call.
exit-function
  This function should be called after the splitting has been performed.
temp-directory
  Where the temporary files should be stored.
group
  This optional argument should be a group name if the splitting is to be performed for one group only.

`nnmail-get-new-mail` will call back-end`-save-mail` to save each article. back-end`-active-number` will be called to find the article number assigned to this article.

The function also uses the following variables: back-end`-get-new-mail` (to see whether to get new mail for this back end); and back-end`-group-alist` and back-end`-active-file` to generate the new active file. back-end`-group-alist` should be a group-active alist, like this:

         (("a-group" (1 . 10))
          ("some-group" (34 . 39)))