Go to the first, previous, next, last section, table of contents.

# Composing Messages

All commands for posting and mailing will put you in a message buffer where you can edit the article all you like, before you send the article by pressing `C-c C-c`. See section `Top' in The Message Manual. If you are in a foreign news group, and you wish to post the article using the foreign server, you can give a prefix to `C-c C-c` to make Gnus try to post using the foreign server.

- Mail: Mailing and replying.
- Post: Posting and following up.
- Posting Server: What server should you post via?
- Mail and Post: Mailing and posting at the same time.
- Archived Messages: Where Gnus stores the messages you've sent.

Also see see section Canceling Articles for information on how to remove articles you shouldn't have posted.

## Mail

Variables for customizing outgoing mail:

`gnus-uu-digest-headers`
  List of regexps to match headers included in digested messages. The headers will be included in the sequence they are matched.

## Post

Variables for composing news articles:

`gnus-sent-message-ids-file`
  Gnus will keep a `Message-ID` history file of all the mails it has sent. If it discovers that it has already sent a mail, it will ask the user whether to re-send the mail. (This is primarily useful when dealing with SOUP packets and the like where one is apt to sent the same packet multiple times.) This variable says what the name of this history file is. It is ``~/News/Sent-Message-IDs'` by default. Set this variable to `nil` if you don't want Gnus to keep a history file.
`gnus-sent-message-ids-length`
  This variable says how many `Message-ID`s to keep in the history file. It is 1000 by default.

## Posting Server

When you press those magical `C-c C-c` keys to ship off your latest (extremely intelligent, of course) article, where does it go?

Thank you for asking. I hate you.

It can be quite complicated. Normally, Gnus will use the same native server. However. If your native server doesn't allow posting, just reading, you probably want to use some other server to post your (extremely intelligent and fabulously interesting) articles. You can then set the `gnus-post-method` to some other method:

    (setq gnus-post-method '(nnspool ""))

Now, if you've done this, and then this server rejects your article, or this server is down, what do you do then? To override this variable you can use a non-zero prefix to the `C-c C-c` command to force using the "current" server for posting.

If you give a zero prefix (i. e., `C-u 0 C-c C-c`) to that command, Gnus will prompt you for what method to use for posting.

You can also set `gnus-post-method` to a list of select methods. If that's the case, Gnus will always prompt you for what method to use for posting.

## Mail and Post

Here's a list of variables that are relevant to both mailing and posting:

`gnus-mailing-list-groups`
  If your news server offers groups that are really mailing lists that are gatewayed to the NNTP server, you can read those groups without problems, but you can't post/followup to them without some difficulty. One solution is to add a `to-address` to the group parameters (see section Group Parameters). An easier thing to do is set the `gnus-mailing-list-groups` to a regexp that match the groups that really are mailing lists. Then, at least, followups to the mailing lists will work most of the time. Posting to these groups (`a`) is still a pain, though.

You may want to do spell-checking on messages that you send out. Or, if you don't want to spell-check by hand, you could add automatic spell-checking via the `ispell` package:

    (add-hook 'message-send-hook 'ispell-message)

## Archived Messages

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

`gnus-message-archive-method` says what virtual server Gnus is to use to store sent messages. It is `(nnfolder "archive" (nnfolder-directory "~/Mail/archive/"))` by default, but you can use any mail select method (`nnml`, `nnmbox`, etc.). However, `nnfolder` is a quite likeable select method for doing this sort of thing. 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:

- a string Messages will be saved in that group.
- 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.

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")))

This is the default.

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" (current-time))))))

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.

That's the default method of archiving sent mail. Gnus also offers two other variables for the people who don't like the default method. In that case you should set `gnus-message-archive-group` to `nil`; this will disable archiving.

XEmacs 19.13 doesn't have `format-time-string`, so you'll have to use a different value for `gnus-message-archive-group` there.

`gnus-outgoing-message-group`
  All outgoing messages will be put in this group. If you want to store all your outgoing mail and articles in the group ``nnml:archive'`, you set this variable to that value. This variable can also be a list of group names. If you want to have greater control over what group to put each message in, you can set this variable to a function that checks the current newsgroup name and then returns a suitable group name (or list of names).

Go to the first, previous, next, last section, table of contents.