gnus: Archived 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’.  The default is
 ‘"sent.%Y-%m"’, which gives you one archive group per month.
 
    For archiving interesting messages in a group you read, see the ‘B c’
 (‘gnus-summary-copy-article’) command (SeeMail 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.
 
    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.
 
 ‘gnus-gcc-self-resent-messages’
      Like the ‘gcc-self’ group parameter, applied only for unmodified
      messages that ‘gnus-summary-resend-message’ (SeeSummary Mail
      Commands) resends.  Non-‘nil’ value of this variable takes
      precedence over any existing ‘Gcc’ header.
 
      If this is ‘none’, no ‘Gcc’ copy will be made.  If this is ‘t’,
      messages resent will be ‘Gcc’ copied to the current group.  If this
      is a string, it specifies a group to which resent messages will be
      ‘Gcc’ copied.  If this is ‘nil’, ‘Gcc’ will be done according to
      existing ‘Gcc’ header(s), if any.  If this is ‘no-gcc-self’, that
      is the default, resent messages will be ‘Gcc’ copied to groups that
      existing ‘Gcc’ header specifies, except for the current group.
 
 ‘gnus-gcc-pre-body-encode-hook’
 ‘gnus-gcc-post-body-encode-hook’
 
      These hooks are run before/after encoding the message body of the
      Gcc copy of a sent message.  The current buffer (when the hook is
      run) contains the message including the message header.  Changes
      made to the message will only affect the Gcc copy, but not the
      original message.  You can use these hooks to edit the copy (and
      influence subsequent transformations), e.g., remove MML secure tags
      (SeeSigning and encrypting).