Next: Posting Styles, Previous: Mail and Post, Up: Composing Messages

### 5.5 Archived Messages

Gnus provides a few different methods for storing the mail and news you send. The default method is to use the archive virtual server to store the messages. If you want to disable this completely, the `gnus-message-archive-group` variable should be `nil`, which is the default.

For archiving interesting messages in a group you read, see the `B c` (`gnus-summary-copy-article`) command (see Mail Group Commands).

`gnus-message-archive-method` says what virtual server Gnus is to use to store sent messages. The default is `"archive"`, and when actually being used it is expanded into:

         (nnfolder "archive"
                   (nnfolder-directory   "~/Mail/archive")
                   (nnfolder-active-file "~/Mail/archive/active")
                   (nnfolder-get-new-mail nil)
                   (nnfolder-inhibit-expiry t))

> Note: a server like this is saved in the `~/.newsrc.eld` file first so that it may be used as a real method of the server which is named `"archive"` (that is, for the case where `gnus-message-archive-method` is set to `"archive"`) ever since. If it once has been saved, it will never be updated by default even if you change the value of `gnus-message-archive-method` afterward. Therefore, the server `"archive"` doesn't necessarily mean the `nnfolder` server like this at all times. If you want the saved method to reflect always the value of `gnus-message-archive-method`, set the `gnus-update-message-archive-method` variable to a non-`nil` value. The default value of this variable is `nil`.

You can, however, use any mail select method (`nnml`, `nnmbox`, etc.). `nnfolder` is a quite likable select method for doing this sort of thing, though. If you don't like the default directory chosen, you could say something like:

         (setq gnus-message-archive-method
               '(nnfolder "archive"
                          (nnfolder-inhibit-expiry t)
                          (nnfolder-active-file "~/News/sent-mail/active")
                          (nnfolder-directory "~/News/sent-mail/")))

Gnus will insert `Gcc` headers in all outgoing messages that point to one or more group(s) on that server. Which group to use is determined by the `gnus-message-archive-group` variable.

This variable can be used to do the following:

a string
  Messages will be saved in that group.

  Note that you can include a select method in the group name, then the message will not be stored in the select method given by `gnus-message-archive-method`, but in the select method specified by the group name, instead. Suppose `gnus-message-archive-method` has the default value shown above. Then setting `gnus-message-archive-group` to `"foo"` means that outgoing messages are stored in ‘`nnfolder+archive:foo`’, but if you use the value `"nnml:foo"`, then outgoing messages will be stored in ‘`nnml:foo`’.

a list of strings
  Messages will be saved in all those groups.
an alist of regexps, functions and forms
  When a key “matches”, the result is used.
`nil`
  No message archiving will take place. This is the default.

Let's illustrate:

Just saving to a single group called ‘`MisK`’:

         (setq gnus-message-archive-group "MisK")

Saving to two groups, ‘`MisK`’ and ‘`safe`’:

         (setq gnus-message-archive-group '("MisK" "safe"))

Save to different groups based on what group you are in:

         (setq gnus-message-archive-group
               '(("^alt" "sent-to-alt")
                 ("mail" "sent-to-mail")
                 (".*" "sent-to-misc")))

More complex stuff:

         (setq gnus-message-archive-group
               '((if (message-news-p)
                     "misc-news"
                   "misc-mail")))

How about storing all news messages in one file, but storing all mail messages in one file per month:

         (setq gnus-message-archive-group
               '((if (message-news-p)
                     "misc-news"
                   (concat "mail." (format-time-string "%Y-%m")))))

Now, when you send a message off, it will be stored in the appropriate group. (If you want to disable storing for just one particular message, you can just remove the `Gcc` header that has been inserted.) The archive group will appear in the group buffer the next time you start Gnus, or the next time you press `F` in the group buffer. You can enter it and read the articles in it just like you'd read any other group. If the group gets really big and annoying, you can simply rename if (using `G r` in the group buffer) to something nice—‘`misc-mail-september-1995`’, or whatever. New messages will continue to be stored in the old (now empty) group.

`gnus-gcc-mark-as-read`
  If non-`nil`, automatically mark `Gcc` articles as read.
`gnus-gcc-externalize-attachments`
  If `nil`, attach files as normal parts in Gcc copies; if a regexp and matches the Gcc group name, attach files as external parts; if it is `all`, attach local files as external parts; if it is other non-`nil`, the behavior is the same as `all`, but it may be changed in the future.