]> code.delx.au - gnu-emacs/blob - man/sending.texi
*** empty log message ***
[gnu-emacs] / man / sending.texi
1 @c This is part of the Emacs manual.
2 @c Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 1997, 2000, 2001, 2002,
3 @c 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
4 @c See file emacs.texi for copying conditions.
5 @node Sending Mail, Rmail, Abbrevs, Top
6 @chapter Sending Mail
7 @cindex sending mail
8 @cindex mail
9 @cindex message
10
11 To send a message in Emacs, you start by typing a command (@kbd{C-x m})
12 to select and initialize the @samp{*mail*} buffer. Then you edit the text
13 and headers of the message in this buffer, and type another command
14 (@kbd{C-c C-s} or @kbd{C-c C-c}) to send the message.
15
16 @table @kbd
17 @item C-x m
18 Begin composing a message to send (@code{compose-mail}).
19 @item C-x 4 m
20 Likewise, but display the message in another window
21 (@code{compose-mail-other-window}).
22 @item C-x 5 m
23 Likewise, but make a new frame (@code{compose-mail-other-frame}).
24 @item C-c C-s
25 In Mail mode, send the message (@code{mail-send}).
26 @item C-c C-c
27 Send the message and bury the mail buffer (@code{mail-send-and-exit}).
28 @end table
29
30 @kindex C-x m
31 @findex compose-mail
32 @kindex C-x 4 m
33 @findex compose-mail-other-window
34 @kindex C-x 5 m
35 @findex compose-mail-other-frame
36 The command @kbd{C-x m} (@code{compose-mail}) selects a buffer named
37 @samp{*mail*} and initializes it with the skeleton of an outgoing
38 message. @kbd{C-x 4 m} (@code{compose-mail-other-window}) selects the
39 @samp{*mail*} buffer in a different window, leaving the previous current
40 buffer visible. @kbd{C-x 5 m} (@code{compose-mail-other-frame}) creates
41 a new frame to select the @samp{*mail*} buffer.
42
43 Because the mail-composition buffer is an ordinary Emacs buffer, you can
44 switch to other buffers while in the middle of composing mail, and switch
45 back later (or never). If you use the @kbd{C-x m} command again when you
46 have been composing another message but have not sent it, you are asked to
47 confirm before the old message is erased. If you answer @kbd{n}, the
48 @samp{*mail*} buffer remains selected with its old contents, so you can
49 finish the old message and send it. @kbd{C-u C-x m} is another way to do
50 this. Sending the message marks the @samp{*mail*} buffer ``unmodified,''
51 which avoids the need for confirmation when @kbd{C-x m} is next used.
52
53 If you are composing a message in the @samp{*mail*} buffer and want to
54 send another message before finishing the first, rename the
55 @samp{*mail*} buffer using @kbd{M-x rename-uniquely} (@pxref{Misc
56 Buffer}). Then you can use @kbd{C-x m} or its variants described above
57 to make a new @samp{*mail*} buffer. Once you've done that, you can work
58 with each mail buffer independently.
59
60 @vindex mail-default-directory
61 The variable @code{mail-default-directory} controls the default
62 directory for mail buffers, and also says where to put their auto-save
63 files.
64
65 @ignore
66 @c Commented out because it is not user-oriented;
67 @c it doesn't say how to do some job. -- rms.
68 @cindex directory servers
69 @cindex LDAP
70 @cindex PH/QI
71 @cindex names and addresses
72 There is an interface to directory servers using various protocols such
73 as LDAP or the CCSO white pages directory system (PH/QI), described in a
74 separate manual. It may be useful for looking up names and addresses.
75 @xref{Top,,EUDC, eudc, EUDC Manual}.
76 @end ignore
77
78 @menu
79 * Format: Mail Format. Format of the mail being composed.
80 * Headers: Mail Headers. Details of permitted mail header fields.
81 * Aliases: Mail Aliases. Abbreviating and grouping mail addresses.
82 * Mode: Mail Mode. Special commands for editing mail being composed.
83 * Amuse: Mail Amusements. Distracting the NSA; adding fortune messages.
84 * Methods: Mail Methods. Using alternative mail-composition methods.
85 @end menu
86
87 @node Mail Format
88 @section The Format of the Mail Buffer
89
90 In addition to the @dfn{text} or @dfn{body}, a message has @dfn{header
91 fields} which say who sent it, when, to whom, why, and so on. Some
92 header fields, such as @samp{Date} and @samp{Sender}, are created
93 automatically when you send the message. Others, such as the recipient
94 names, must be specified by you in order to send the message properly.
95
96 In the mail buffer, you can insert and edit header fields using
97 ordinary editing commands. Mail mode provides a commands to help you
98 edit some header fields, and some are preinitialized in the buffer
99 automatically when appropriate.
100
101 The line in the buffer that says
102
103 @example
104 --text follows this line--
105 @end example
106
107 @noindent
108 is a special delimiter that separates the headers you have specified from
109 the text. Whatever follows this line is the text of the message; the
110 headers precede it. The delimiter line itself does not appear in the
111 message actually sent. The text used for the delimiter line is controlled
112 by the variable @code{mail-header-separator}.
113
114 Here is an example of what the headers and text in the mail buffer
115 might look like.
116
117 @example
118 To: gnu@@gnu.org
119 CC: lungfish@@spam.org, byob@@spam.org
120 Subject: The Emacs Manual
121 --Text follows this line--
122 Please ignore this message.
123 @end example
124
125 @node Mail Headers
126 @section Mail Header Fields
127 @cindex headers (of mail message)
128
129 A header field in the mail buffer starts with a field name at the
130 beginning of a line, terminated by a colon. Upper and lower case are
131 equivalent in field names (and in mailing addresses also). After the
132 colon and optional whitespace comes the contents of the field.
133
134 You can use any name you like for a header field, but normally people
135 use only standard field names with accepted meanings. Here is a table
136 of fields commonly used in outgoing messages.
137
138 @table @samp
139 @item To
140 This field contains the mailing addresses to which the message is
141 addressed. If you list more than one address, use commas, not spaces,
142 to separate them.
143
144 @item Subject
145 The contents of the @samp{Subject} field should be a piece of text
146 that says what the message is about. The reason @samp{Subject} fields
147 are useful is that most mail-reading programs can provide a summary of
148 messages, listing the subject of each message but not its text.
149
150 @item CC
151 This field contains additional mailing addresses to send the message to,
152 like @samp{To} except that these readers should not regard the message
153 as directed at them.
154
155 @item BCC
156 This field contains additional mailing addresses to send the message to,
157 which should not appear in the header of the message actually sent.
158 Copies sent this way are called @dfn{blind carbon copies}.
159
160 @vindex mail-self-blind
161 @cindex copy of every outgoing message
162 To send a blind carbon copy of every outgoing message to yourself, set
163 the variable @code{mail-self-blind} to @code{t}. To send a blind carbon
164 copy of every message to some other @var{address}, set the variable
165 @code{mail-default-headers} to @code{"Bcc: @var{address}\n"}.
166
167 @item FCC
168 This field contains the name of one file and directs Emacs to append a
169 copy of the message to that file when you send the message. If the file
170 is in Rmail format, Emacs writes the message in Rmail format; otherwise,
171 Emacs writes the message in system mail file format. To specify
172 more than one file, use several @samp{FCC} fields, with one file
173 name in each field.
174
175 @vindex mail-archive-file-name
176 To put a fixed file name in the @samp{FCC} field each time you start
177 editing an outgoing message, set the variable
178 @code{mail-archive-file-name} to that file name. Unless you remove the
179 @samp{FCC} field before sending, the message will be written into that
180 file when it is sent.
181
182 @item From
183 Use the @samp{From} field to say who you are, when the account you are
184 using to send the mail is not your own. The contents of the @samp{From}
185 field should be a valid mailing address, since replies will normally go
186 there. If you don't specify the @samp{From} field yourself, Emacs uses
187 the value of @code{user-mail-address} as the default.
188
189 @item Reply-to
190 Use this field to direct replies to a different address. Most
191 mail-reading programs (including Rmail) automatically send replies to
192 the @samp{Reply-to} address in preference to the @samp{From} address.
193 By adding a @samp{Reply-to} field to your header, you can work around
194 any problems your @samp{From} address may cause for replies.
195
196 @cindex @env{REPLYTO} environment variable
197 @vindex mail-default-reply-to
198 To put a fixed @samp{Reply-to} address into every outgoing message, set
199 the variable @code{mail-default-reply-to} to that address (as a string).
200 Then @code{mail} initializes the message with a @samp{Reply-to} field as
201 specified. You can delete or alter that header field before you send
202 the message, if you wish. When Emacs starts up, if the environment
203 variable @env{REPLYTO} is set, @code{mail-default-reply-to} is
204 initialized from that environment variable.
205
206 @item In-reply-to
207 This field contains a piece of text describing the message you are
208 replying to. Some mail systems can use this information to correlate
209 related pieces of mail. Normally this field is filled in by Rmail
210 when you reply to a message in Rmail, and you never need to
211 think about it (@pxref{Rmail}).
212
213 @item References
214 This field lists the message IDs of related previous messages. Rmail
215 sets up this field automatically when you reply to a message.
216 @end table
217
218 The @samp{To}, @samp{CC}, and @samp{BCC} header fields can appear
219 any number of times, and each such header field can contain multiple
220 addresses, separated by commas. This way, you can specify any number
221 of places to send the message. These fields can also have
222 continuation lines: one or more lines starting with whitespace,
223 following the starting line of the field, are considered part of the
224 field. Here's an example of a @samp{To} field with a continuation
225 line:
226
227 @example
228 @group
229 To: foo@@here.net, this@@there.net,
230 me@@gnu.cambridge.mass.usa.earth.spiral3281
231 @end group
232 @end example
233
234 @vindex mail-from-style
235 When you send the message, if you didn't write a @samp{From} field
236 yourself, Emacs puts in one for you. The variable
237 @code{mail-from-style} controls the format:
238
239 @table @code
240 @item nil
241 Use just the email address, as in @samp{king@@grassland.com}.
242 @item parens
243 Use both email address and full name, as in @samp{king@@grassland.com (Elvis
244 Parsley)}.
245 @item angles
246 Use both email address and full name, as in @samp{Elvis Parsley
247 <king@@grassland.com>}.
248 @item system-default
249 Allow the system to insert the @samp{From} field.
250 @end table
251
252 @vindex mail-default-headers
253 You can direct Emacs to insert certain default headers into the
254 outgoing message by setting the variable @code{mail-default-headers}
255 to a string. Then @code{C-x m} inserts this string into the message
256 headers. If the default header fields are not appropriate for a
257 particular message, edit them as appropriate before sending the
258 message.
259
260 @node Mail Aliases
261 @section Mail Aliases
262 @cindex mail aliases
263 @cindex @file{.mailrc} file
264 @cindex mailrc file
265
266 You can define @dfn{mail aliases} in a file named @file{~/.mailrc}.
267 These are short mnemonic names which stand for mail addresses or groups of
268 mail addresses. Like many other mail programs, Emacs expands aliases
269 when they occur in the @samp{To}, @samp{From}, @samp{CC}, @samp{BCC}, and
270 @samp{Reply-to} fields, plus their @samp{Resent-} variants.
271
272 To define an alias in @file{~/.mailrc}, write a line in the following
273 format:
274
275 @example
276 alias @var{shortaddress} @var{fulladdresses}
277 @end example
278
279 @noindent
280 Here @var{fulladdresses} stands for one or more mail addresses for
281 @var{shortaddress} to expand into. Separate multiple addresses with
282 spaces; if an address contains a space, quote the whole address with a
283 pair of double-quotes.
284
285 For instance, to make @code{maingnu} stand for
286 @code{gnu@@gnu.org} plus a local address of your own, put in
287 this line:@refill
288
289 @example
290 alias maingnu gnu@@gnu.org local-gnu
291 @end example
292
293 @noindent
294 Addresses specified in this way should use doublequotes around an
295 entire address when the address contains spaces. But you need not
296 include doublequotes around parts of the address, such as the person's
297 full name. Emacs puts them in if they are needed. For example,
298
299 @example
300 alias chief-torturer "George W. Bush <bush@@whitehouse.gov>"
301 @end example
302
303 @noindent
304 is correct. Emacs will insert the address as @samp{"George W. Bush"
305 <bush@@whitehouse.gov>}.
306
307 Emacs also recognizes ``include'' commands in @samp{.mailrc} files.
308 They look like this:
309
310 @example
311 source @var{filename}
312 @end example
313
314 @noindent
315 The file @file{~/.mailrc} is used primarily by other mail-reading
316 programs; it can contain various other commands. Emacs ignores
317 everything in it except for alias definitions and include commands.
318
319 @findex define-mail-alias
320 Another way to define a mail alias, within Emacs alone, is with the
321 @code{define-mail-alias} command. It prompts for the alias and then the
322 full address. You can use it to define aliases in your @file{.emacs}
323 file, like this:
324
325 @example
326 (define-mail-alias "maingnu" "gnu@@gnu.org")
327 @end example
328
329 @vindex mail-aliases
330 @code{define-mail-alias} records aliases by adding them to a
331 variable named @code{mail-aliases}. If you are comfortable with
332 manipulating Lisp lists, you can set @code{mail-aliases} directly. The
333 initial value of @code{mail-aliases} is @code{t}, which means that
334 Emacs should read @file{.mailrc} to get the proper value.
335
336 @vindex mail-personal-alias-file
337 You can specify a different file name to use instead of
338 @file{~/.mailrc} by setting the variable
339 @code{mail-personal-alias-file}.
340
341 @findex expand-mail-aliases
342 Normally, Emacs expands aliases when you send the message. You do not
343 need to expand mail aliases before sending the message, but you can
344 expand them if you want to see where the mail will actually go. To do
345 this, use the command @kbd{M-x expand-mail-aliases}; it expands all mail
346 aliases currently present in the mail headers that hold addresses.
347
348 If you like, you can have mail aliases expand as abbrevs, as soon as
349 you type them in (@pxref{Abbrevs}). To enable this feature, execute the
350 following:
351
352 @example
353 (add-hook 'mail-mode-hook 'mail-abbrevs-setup)
354 @end example
355
356 @noindent
357 @findex define-mail-abbrev
358 @vindex mail-abbrevs
359 This can go in your @file{.emacs} file. @xref{Hooks}. If you use this
360 feature, you must use @code{define-mail-abbrev} instead of
361 @code{define-mail-alias}; the latter does not work with this package.
362 Note that the mail abbreviation package uses the variable
363 @code{mail-abbrevs} instead of @code{mail-aliases}, and that all alias
364 names are converted to lower case.
365
366 @kindex C-c C-a @r{(Mail mode)}
367 @findex mail-interactive-insert-alias
368 The mail abbreviation package also provides the @kbd{C-c C-a}
369 (@code{mail-interactive-insert-alias}) command, which reads an alias
370 name (with completion) and inserts its definition at point. This is
371 useful when editing the message text itself or a header field such as
372 @samp{Subject} in which Emacs does not normally expand aliases.
373
374 Note that abbrevs expand only if you insert a word-separator character
375 afterward. However, you can rebind @kbd{C-n} and @kbd{M->} to cause
376 expansion as well. Here's how to do that:
377
378 @smallexample
379 (add-hook 'mail-mode-hook
380 (lambda ()
381 (define-key
382 mail-mode-map [remap next-line] 'mail-abbrev-next-line)
383 (define-key
384 mail-mode-map [remap end-of-buffer] 'mail-abbrev-end-of-buffer)))
385 @end smallexample
386
387 @node Mail Mode
388 @section Mail Mode
389 @cindex Mail mode
390 @cindex mode, Mail
391
392 The major mode used in the mail buffer is Mail mode, which is much
393 like Text mode except that various special commands are provided on the
394 @kbd{C-c} prefix. These commands all have to do specifically with
395 editing or sending the message. In addition, Mail mode defines the
396 character @samp{%} as a word separator; this is helpful for using the
397 word commands to edit mail addresses.
398
399 Mail mode is normally used in buffers set up automatically by the
400 @code{mail} command and related commands. However, you can also switch
401 to Mail mode in a file-visiting buffer. This is a useful thing to do if
402 you have saved the text of a draft message in a file.
403
404 @menu
405 * Mail Sending:: Commands to send the message.
406 * Header Editing:: Commands to move to header fields and edit them.
407 * Citing Mail:: Copying all or part of a message you are replying to.
408 * Mail Mode Misc:: Spell checking, signatures, etc.
409 @end menu
410
411 @node Mail Sending
412 @subsection Mail Sending
413
414 Mail mode has two commands for sending the message you have been
415 editing:
416
417 @table @kbd
418 @item C-c C-s
419 Send the message, and leave the mail buffer selected (@code{mail-send}).
420 @item C-c C-c
421 Send the message, and select some other buffer (@code{mail-send-and-exit}).
422 @end table
423
424 @kindex C-c C-s @r{(Mail mode)}
425 @kindex C-c C-c @r{(Mail mode)}
426 @findex mail-send
427 @findex mail-send-and-exit
428 @kbd{C-c C-s} (@code{mail-send}) sends the message and marks the mail
429 buffer unmodified, but leaves that buffer selected so that you can
430 modify the message (perhaps with new recipients) and send it again.
431 @kbd{C-c C-c} (@code{mail-send-and-exit}) sends and then deletes the
432 window or switches to another buffer. It puts the mail buffer at the
433 lowest priority for reselection by default, since you are finished with
434 using it. This is the usual way to send the message.
435
436 In a file-visiting buffer, sending the message does not clear the
437 modified flag, because only saving the file should do that. Also, you
438 don't get a warning if you try to send the same message twice.
439
440 @c This is indexed in mule.texi, node "Recognize Coding".
441 @c @vindex sendmail-coding-system
442 When you send a message that contains non-@acronym{ASCII} characters, they need
443 to be encoded with a coding system (@pxref{Coding Systems}). Usually
444 the coding system is specified automatically by your chosen language
445 environment (@pxref{Language Environments}). You can explicitly specify
446 the coding system for outgoing mail by setting the variable
447 @code{sendmail-coding-system} (@pxref{Recognize Coding}).
448
449 If the coding system thus determined does not handle the characters in
450 a particular message, Emacs asks you to select the coding system to use,
451 showing a list of possible coding systems.
452
453 @cindex SMTP
454 @cindex Feedmail
455 @cindex Sendmail
456 @vindex send-mail-function
457 The variable @code{send-mail-function} controls how the default mail
458 user agent sends mail. It should be set to a function. The default
459 is @code{sendmail-send-it}, which delivers mail using the Sendmail
460 installation on the local host. To send mail through a SMTP server,
461 set it to @code{smtpmail-send-it} and set up the Emacs SMTP library
462 (@pxref{Top,,Emacs SMTP Library, smtpmail, Sending mail via SMTP}). A
463 third option is @code{feedmail-send-it}, see the commentary section of
464 the @file{feedmail.el} package for more information.
465
466 @node Header Editing
467 @subsection Mail Header Editing
468
469 Mail mode provides special commands to move to particular header
470 fields and to complete addresses in headers.
471
472 @table @kbd
473 @item C-c C-f C-t
474 Move to the @samp{To} header field, creating one if there is none
475 (@code{mail-to}).
476 @item C-c C-f C-s
477 Move to the @samp{Subject} header field, creating one if there is
478 none (@code{mail-subject}).
479 @item C-c C-f C-c
480 Move to the @samp{CC} header field, creating one if there is none
481 (@code{mail-cc}).
482 @item C-c C-f C-b
483 Move to the @samp{BCC} header field, creating one if there is none
484 (@code{mail-bcc}).
485 @item C-c C-f C-f
486 Move to the @samp{FCC} header field, creating one if there is none
487 (@code{mail-fcc}).
488 @item M-@key{TAB}
489 Complete a mailing address (@code{mail-complete}).
490 @end table
491
492 @kindex C-c C-f C-t @r{(Mail mode)}
493 @findex mail-to
494 @kindex C-c C-f C-s @r{(Mail mode)}
495 @findex mail-subject
496 @kindex C-c C-f C-c @r{(Mail mode)}
497 @findex mail-cc
498 @kindex C-c C-f C-b @r{(Mail mode)}
499 @findex mail-bcc
500 @kindex C-c C-f C-f @r{(Mail mode)}
501 @findex mail-fcc
502 There are five commands to move point to particular header fields, all
503 based on the prefix @kbd{C-c C-f} (@samp{C-f} is for ``field''). They
504 are listed in the table above. If the field in question does not exist,
505 these commands create one. We provide special motion commands for these
506 particular fields because they are the fields users most often want to
507 edit.
508
509 @findex mail-complete
510 @kindex M-TAB @r{(Mail mode)}
511 While editing a header field that contains mailing addresses, such
512 as @samp{To:}, @samp{CC:} and @samp{BCC:}, you can complete a mailing
513 address by typing @kbd{M-@key{TAB}} (@code{mail-complete}). It
514 inserts the full name corresponding to the address, if it can
515 determine the full name. The variable @code{mail-complete-style}
516 controls whether to insert the full name, and what style to use, as in
517 @code{mail-from-style} (@pxref{Mail Headers}). (If your window
518 manager defines @kbd{M-@key{TAB}} to switch windows, you can type
519 @kbd{@key{ESC} @key{TAB}} or @kbd{C-M-i}.)
520
521 For completion purposes, the valid mailing addresses are taken to be
522 the local users' names plus your personal mail aliases. You can
523 specify additional sources of valid addresses; see the customization
524 group @samp{mailalias} to see the variables for customizing this
525 feature (@pxref{Customization Groups}).
526
527 If you type @kbd{M-@key{TAB}} in the body of the message,
528 @code{mail-complete} invokes @code{ispell-complete-word}, as in Text
529 mode.
530
531 @node Citing Mail
532 @subsection Citing Mail
533 @cindex citing mail
534
535 Mail mode also has commands for yanking or @dfn{citing} all or part of
536 a message that you are replying to. These commands are active only when
537 you started sending a message using an Rmail command.
538
539 @table @kbd
540 @item C-c C-y
541 Yank the selected message from Rmail (@code{mail-yank-original}).
542 @item C-c C-r
543 Yank the region from the Rmail buffer (@code{mail-yank-region}).
544 @item C-c C-q
545 Fill each paragraph cited from another message
546 (@code{mail-fill-yanked-message}).
547 @end table
548
549 @kindex C-c C-y @r{(Mail mode)}
550 @findex mail-yank-original
551 When mail sending is invoked from the Rmail mail reader using an Rmail
552 command, @kbd{C-c C-y} can be used inside the mail buffer to insert
553 the text of the message you are replying to. Normally it indents each line
554 of that message three spaces and eliminates most header fields. A numeric
555 argument specifies the number of spaces to indent. An argument of just
556 @kbd{C-u} says not to indent at all and not to eliminate anything.
557 @kbd{C-c C-y} always uses the current message from the Rmail buffer,
558 so you can insert several old messages by selecting one in Rmail,
559 switching to @samp{*mail*} and yanking it, then switching back to
560 Rmail to select another.
561
562 @vindex mail-yank-prefix
563 You can specify the text for @kbd{C-c C-y} to insert at the beginning
564 of each line: set @code{mail-yank-prefix} to the desired string. (A
565 value of @code{nil} means to use indentation; this is the default.)
566 However, @kbd{C-u C-c C-y} never adds anything at the beginning of the
567 inserted lines, regardless of the value of @code{mail-yank-prefix}.
568
569 @kindex C-c C-r @r{(Mail mode)}
570 @findex mail-yank-region
571 To yank just a part of an incoming message, set the region in Rmail to
572 the part you want; then go to the @samp{*Mail*} message and type
573 @kbd{C-c C-r} (@code{mail-yank-region}). Each line that is copied is
574 indented or prefixed according to @code{mail-yank-prefix}.
575
576 @kindex C-c C-q @r{(Mail mode)}
577 @findex mail-fill-yanked-message
578 After using @kbd{C-c C-y} or @kbd{C-c C-r}, you can type @kbd{C-c C-q}
579 (@code{mail-fill-yanked-message}) to fill the paragraphs of the yanked
580 old message or messages. One use of @kbd{C-c C-q} fills all such
581 paragraphs, each one individually. To fill a single paragraph of the
582 quoted message, use @kbd{M-q}. If filling does not automatically
583 handle the type of citation prefix you use, try setting the fill prefix
584 explicitly. @xref{Filling}.
585
586 @node Mail Mode Misc
587 @subsection Mail Mode Miscellany
588
589 @table @kbd
590 @item C-c C-t
591 Move to the beginning of the message body text (@code{mail-text}).
592 @item C-c C-w
593 Insert the file @file{~/.signature} at the end of the message text
594 (@code{mail-signature}).
595 @item C-c C-i @var{file} @key{RET}
596 Insert the contents of @var{file} at the end of the outgoing message
597 (@code{mail-attach-file}).
598 @item M-x ispell-message
599 Perform spelling correction on the message text, but not on citations from
600 other messages.
601 @end table
602
603 @kindex C-c C-t @r{(Mail mode)}
604 @findex mail-text
605 @kbd{C-c C-t} (@code{mail-text}) moves point to just after the header
606 separator line---that is, to the beginning of the message body text.
607
608 @kindex C-c C-w @r{(Mail mode)}
609 @findex mail-signature
610 @vindex mail-signature
611 @kbd{C-c C-w} (@code{mail-signature}) adds a standard piece of text at
612 the end of the message to say more about who you are. The text comes
613 from the file @file{~/.signature} in your home directory. To insert
614 your signature automatically, set the variable @code{mail-signature} to
615 @code{t}; after that, starting a mail message automatically inserts the
616 contents of your @file{~/.signature} file. If you want to omit your
617 signature from a particular message, delete it from the buffer before
618 you send the message.
619
620 You can also set @code{mail-signature} to a string; then that string
621 is inserted automatically as your signature when you start editing a
622 message to send. If you set it to some other Lisp expression, the
623 expression is evaluated each time, and its value (which should be a
624 string) specifies the signature.
625
626 @findex ispell-message
627 You can do spelling correction on the message text you have written
628 with the command @kbd{M-x ispell-message}. If you have yanked an
629 incoming message into the outgoing draft, this command skips what was
630 yanked, but it checks the text that you yourself inserted. (It looks
631 for indentation or @code{mail-yank-prefix} to distinguish the cited
632 lines from your input.) @xref{Spelling}.
633
634 @kindex C-c C-i @r{(Mail mode)}
635 @findex mail-attach-file
636 To include a file in the outgoing message, you can use @kbd{C-x i},
637 the usual command to insert a file in the current buffer. But it is
638 often more convenient to use a special command, @kbd{C-c C-i}
639 (@code{mail-attach-file}). This command inserts the file contents at
640 the end of the buffer, after your signature if any, with a delimiter
641 line that includes the file name. Note that this is not a MIME
642 attachment.
643
644 @vindex mail-mode-hook
645 @vindex mail-setup-hook
646 Turning on Mail mode (which @kbd{C-x m} does automatically) runs the
647 normal hooks @code{text-mode-hook} and @code{mail-mode-hook}.
648 Initializing a new outgoing message runs the normal hook
649 @code{mail-setup-hook}; if you want to add special fields to your mail
650 header or make other changes to the appearance of the mail buffer, use
651 that hook. @xref{Hooks}.
652
653 The main difference between these hooks is just when they are
654 invoked. Whenever you type @kbd{M-x mail}, @code{mail-mode-hook} runs
655 as soon as the @samp{*mail*} buffer is created. Then the
656 @code{mail-setup} function inserts the default contents of the buffer.
657 After these default contents are inserted, @code{mail-setup-hook} runs.
658
659 @node Mail Amusements
660 @section Mail Amusements
661
662 @findex spook
663 @cindex NSA
664 @kbd{M-x spook} adds a line of randomly chosen keywords to an outgoing
665 mail message. The keywords are chosen from a list of words that suggest
666 you are discussing something subversive.
667
668 The idea behind this feature is the suspicion that the
669 NSA@footnote{The US National Security Agency.} snoops on
670 all electronic mail messages that contain keywords suggesting they might
671 find them interesting. (The NSA says they don't, but that's what they
672 @emph{would} say.) The idea is that if lots of people add suspicious
673 words to their messages, the NSA will get so busy with spurious input
674 that they will have to give up reading it all.
675
676 Here's how to insert spook keywords automatically whenever you start
677 entering an outgoing message:
678
679 @example
680 (add-hook 'mail-setup-hook 'spook)
681 @end example
682
683 Whether or not this confuses the NSA, it at least amuses people.
684
685 @findex fortune-to-signature
686 @cindex fortune cookies
687 You can use the @code{fortune} program to put a ``fortune cookie''
688 message into outgoing mail. To do this, add
689 @code{fortune-to-signature} to @code{mail-setup-hook}:
690
691 @example
692 (add-hook 'mail-setup-hook 'fortune-to-signature)
693 @end example
694
695 @node Mail Methods
696 @section Mail-Composition Methods
697 @cindex mail-composition methods
698
699 @cindex MH mail interface
700 @cindex Message mode for sending mail
701 In this chapter we have described the usual Emacs mode for editing
702 and sending mail---Mail mode. Emacs has alternative facilities for
703 editing and sending mail, including
704 MH-E and Message mode, not documented in this manual.
705 @xref{Top,,MH-E,mh-e, The Emacs Interface to MH}. @xref{Top,,Message,message,
706 Message Manual}. You can choose any of them as your preferred method.
707 The commands @code{C-x m}, @code{C-x 4 m} and @code{C-x 5 m} use
708 whichever agent you have specified, as do various other Emacs commands
709 and facilities that send mail.
710
711 @vindex mail-user-agent
712 To specify your mail-composition method, customize the variable
713 @code{mail-user-agent}. Currently legitimate values include
714 @code{sendmail-user-agent} (Mail mode), @code{mh-e-user-agent},
715 @code{message-user-agent} and @code{gnus-user-agent}.
716
717 If you select a different mail-composition method, the information
718 in this chapter about the @samp{*mail*} buffer and Mail mode does not
719 apply; the other methods use a different format of text in a different
720 buffer, and their commands are different as well.
721
722 @ignore
723 arch-tag: d8a3dfc3-5d87-45c5-a7f2-69871b8e4fd6
724 @end ignore