33.4.1 Mail Sending

C-c C-c

Send the message, and bury the mail buffer (message-send-and-exit).

C-c C-s

Send the message, and leave the mail buffer selected (message-send).

The usual command to send a message is C-c C-c (message-send-and-exit). This sends the message and then buries the mail buffer, putting it at the lowest priority for reselection. If you want it to kill the mail buffer instead, change the variable message-kill-buffer-on-exit to t.

The command C-c C-s (message-send) sends the message and leaves the buffer selected. Use this command if you want to modify the message (perhaps with new recipients) and send it again.

Sending a message runs the hook message-send-hook. It also marks the mail buffer as unmodified, except if the mail buffer is also a file-visiting buffer (in that case, only saving the file does that, and you don’t get a warning if you try to send the same message twice).

The variable message-send-mail-function controls how the message is delivered (send-mail-function is used for Mail mode). The value of send-mail-function should be one of the following functions:


Query for a delivery method (one of the other entries in this list), and use that method for this message; then save the method to send-mail-function, so that it is used for future deliveries. This is the default, unless you have already set the variables for sending mail via smtpmail-send-it (see below).


Send mail through an external mail host, such as your Internet service provider’s outgoing SMTP mail server. If you have not told Emacs how to contact the SMTP server, it prompts for this information, which is saved in the smtpmail-smtp-server variable and the file ~/.authinfo. See Emacs SMTP Library in Sending mail via SMTP.


Send mail using the system’s default sendmail program, or equivalent. This requires the system to be set up for delivering mail directly via SMTP.


Pass the mail buffer on to the system’s designated mail client. See the commentary section in the file mailclient.el for details.


This is similar to sendmail-send-it, but allows you to queue messages for later sending. See the commentary section in the file feedmail.el for details.

When you send a message containing non-ASCII characters, they need to be encoded with a coding system (see Coding Systems). Usually the coding system is specified automatically by your chosen language environment (see Language Environments). You can explicitly specify the coding system for outgoing mail by setting the variable sendmail-coding-system (see Recognizing Coding Systems). If the coding system thus determined does not handle the characters in a particular message, Emacs asks you to select the coding system to use, showing a list of possible coding systems. See Choosing Coding Systems for Output.