]> code.delx.au - gnu-emacs/blob - man/sending.texi
(Sending Mail): Minor cleanup.
[gnu-emacs] / man / sending.texi
1 @c This is part of the Emacs manual.
2 @c Copyright (C) 1985,86,87,93,94,95,97,2000,2001, 2003
3 @c Free Software Foundation, Inc.
4 @c See file emacs.texi for copying conditions.
5 @node Sending Mail, Rmail, Picture, 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 Mail mode provides a few commands to help you edit some header fields,
97 and some are preinitialized in the buffer automatically at times. You can
98 insert and edit header fields using ordinary editing commands.
99
100 The line in the buffer that says
101
102 @example
103 --text follows this line--
104 @end example
105
106 @noindent
107 is a special delimiter that separates the headers you have specified from
108 the text. Whatever follows this line is the text of the message; the
109 headers precede it. The delimiter line itself does not appear in the
110 message actually sent. The text used for the delimiter line is controlled
111 by the variable @code{mail-header-separator}.
112
113 Here is an example of what the headers and text in the mail buffer
114 might look like.
115
116 @example
117 To: gnu@@gnu.org
118 CC: lungfish@@spam.org, byob@@spam.org
119 Subject: The Emacs Manual
120 --Text follows this line--
121 Please ignore this message.
122 @end example
123
124 @node Mail Headers
125 @section Mail Header Fields
126 @cindex headers (of mail message)
127
128 A header field in the mail buffer starts with a field name at the
129 beginning of a line, terminated by a colon. Upper and lower case are
130 equivalent in field names (and in mailing addresses also). After the
131 colon and optional whitespace comes the contents of the field.
132
133 You can use any name you like for a header field, but normally people
134 use only standard field names with accepted meanings. Here is a table
135 of fields commonly used in outgoing messages.
136
137 @table @samp
138 @item To
139 This field contains the mailing addresses to which the message is
140 addressed. If you list more than one address, use commas, not spaces,
141 to separate them.
142
143 @item Subject
144 The contents of the @samp{Subject} field should be a piece of text
145 that says what the message is about. The reason @samp{Subject} fields
146 are useful is that most mail-reading programs can provide a summary of
147 messages, listing the subject of each message but not its text.
148
149 @item CC
150 This field contains additional mailing addresses to send the message to,
151 like @samp{To} except that these readers should not regard the message
152 as directed at them.
153
154 @item BCC
155 This field contains additional mailing addresses to send the message to,
156 which should not appear in the header of the message actually sent.
157 Copies sent this way are called @dfn{blind carbon copies}.
158
159 @vindex mail-self-blind
160 @cindex copy of every outgoing message
161 To send a blind carbon copy of every outgoing message to yourself, set
162 the variable @code{mail-self-blind} to @code{t}. To send a blind carbon
163 copy of every message to some other @var{address}, set the variable
164 @code{mail-default-headers} to @code{"Bcc: @var{address}\n"}.
165
166 @item FCC
167 This field contains the name of one file and directs Emacs to append a
168 copy of the message to that file when you send the message. If the file
169 is in Rmail format, Emacs writes the message in Rmail format; otherwise,
170 Emacs writes the message in system mail file format. To specify
171 more than one file, use several @samp{FCC} fields, with one file
172 name in each field.
173
174 @vindex mail-archive-file-name
175 To put a fixed file name in the @samp{FCC} field each time you start
176 editing an outgoing message, set the variable
177 @code{mail-archive-file-name} to that file name. Unless you remove the
178 @samp{FCC} field before sending, the message will be written into that
179 file when it is sent.
180
181 @item From
182 Use the @samp{From} field to say who you are, when the account you are
183 using to send the mail is not your own. The contents of the @samp{From}
184 field should be a valid mailing address, since replies will normally go
185 there. If you don't specify the @samp{From} field yourself, Emacs uses
186 the value of @code{user-mail-address} as the default.
187
188 @item Reply-to
189 Use this field to direct replies to a different address. Most
190 mail-reading programs (including Rmail) automatically send replies to
191 the @samp{Reply-to} address in preference to the @samp{From} address.
192 By adding a @samp{Reply-to} field to your header, you can work around
193 any problems your @samp{From} address may cause for replies.
194
195 @cindex @env{REPLYTO} environment variable
196 @vindex mail-default-reply-to
197 To put a fixed @samp{Reply-to} address into every outgoing message, set
198 the variable @code{mail-default-reply-to} to that address (as a string).
199 Then @code{mail} initializes the message with a @samp{Reply-to} field as
200 specified. You can delete or alter that header field before you send
201 the message, if you wish. When Emacs starts up, if the environment
202 variable @env{REPLYTO} is set, @code{mail-default-reply-to} is
203 initialized from that environment variable.
204
205 @item In-reply-to
206 This field contains a piece of text describing the message you are
207 replying to. Some mail systems can use this information to correlate
208 related pieces of mail. Normally this field is filled in by Rmail
209 when you reply to a message in Rmail, and you never need to
210 think about it (@pxref{Rmail}).
211
212 @item References
213 This field lists the message IDs of related previous messages. Rmail
214 sets up this field automatically when you reply to a message.
215 @end table
216
217 The @samp{To}, @samp{CC}, and @samp{BCC} header fields can appear
218 any number of times, and each such header field can contain multiple
219 addresses, separated by commas. This way, you can specify any number
220 of places to send the message. These fields can also have
221 continuation lines: one or more lines starting with whitespace,
222 following the starting line of the field, are considered part of the
223 field. Here's an example of a @samp{To} field with a continuation
224 line:@refill
225
226 @example
227 @group
228 To: foo@@here.net, this@@there.net,
229 me@@gnu.cambridge.mass.usa.earth.spiral3281
230 @end group
231 @end example
232
233 @vindex mail-from-style
234 When you send the message, if you didn't write a @samp{From} field
235 yourself, Emacs puts in one for you. The variable
236 @code{mail-from-style} controls the format:
237
238 @table @code
239 @item nil
240 Use just the email address, as in @samp{king@@grassland.com}.
241 @item parens
242 Use both email address and full name, as in @samp{king@@grassland.com (Elvis
243 Parsley)}.
244 @item angles
245 Use both email address and full name, as in @samp{Elvis Parsley
246 <king@@grassland.com>}.
247 @item system-default
248 Allow the system to insert the @samp{From} field.
249 @end table
250
251 @vindex mail-default-headers
252 You can direct Emacs to insert certain default headers into the
253 outgoing message by setting the variable @code{mail-default-headers}
254 to a string. Then @code{C-x m} inserts this string into the message
255 headers. If the default header fields are not appropriate for a
256 particular message, edit them as appropriate before sending the
257 message.
258
259 @node Mail Aliases
260 @section Mail Aliases
261 @cindex mail aliases
262 @cindex @file{.mailrc} file
263 @cindex mailrc file
264
265 You can define @dfn{mail aliases} in a file named @file{~/.mailrc}.
266 These are short mnemonic names which stand for mail addresses or groups of
267 mail addresses. Like many other mail programs, Emacs expands aliases
268 when they occur in the @samp{To}, @samp{From}, @samp{CC}, @samp{BCC}, and
269 @samp{Reply-to} fields, plus their @samp{Resent-} variants.
270
271 To define an alias in @file{~/.mailrc}, write a line in the following
272 format:
273
274 @example
275 alias @var{shortaddress} @var{fulladdresses}
276 @end example
277
278 @noindent
279 Here @var{fulladdresses} stands for one or more mail addresses for
280 @var{shortaddress} to expand into. Separate multiple addresses with
281 spaces; if an address contains a space, quote the whole address with a
282 pair of double-quotes.
283
284 For instance, to make @code{maingnu} stand for
285 @code{gnu@@gnu.org} plus a local address of your own, put in
286 this line:@refill
287
288 @example
289 alias maingnu gnu@@gnu.org local-gnu
290 @end example
291
292 @noindent
293 Addresses specified in this way should use doublequotes around an
294 entire address when the address contains spaces. But you need not
295 include doublequotes around parts of the address, such as the person's
296 full name. Emacs puts them in if they are needed. For example,
297
298 @example
299 alias chief-torturer "George W. Bush <bush@whitehouse.gov>"
300 @end example
301
302 @noindent
303 is correct. Emacs will insert the address as @samp{"George W. Bush"
304 <bush@whitehouse.gov>}.
305
306 Emacs also recognizes ``include'' commands in @samp{.mailrc} files.
307 They look like this:
308
309 @example
310 source @var{filename}
311 @end example
312
313 @noindent
314 The file @file{~/.mailrc} is used primarily by other mail-reading
315 programs; it can contain various other commands. Emacs ignores
316 everything in it except for alias definitions and include commands.
317
318 @findex define-mail-alias
319 Another way to define a mail alias, within Emacs alone, is with the
320 @code{define-mail-alias} command. It prompts for the alias and then the
321 full address. You can use it to define aliases in your @file{.emacs}
322 file, like this:
323
324 @example
325 (define-mail-alias "maingnu" "gnu@@gnu.org")
326 @end example
327
328 @vindex mail-aliases
329 @code{define-mail-alias} records aliases by adding them to a
330 variable named @code{mail-aliases}. If you are comfortable with
331 manipulating Lisp lists, you can set @code{mail-aliases} directly. The
332 initial value of @code{mail-aliases} is @code{t}, which means that
333 Emacs should read @file{.mailrc} to get the proper value.
334
335 @vindex mail-personal-alias-file
336 You can specify a different file name to use instead of
337 @file{~/.mailrc} by setting the variable
338 @code{mail-personal-alias-file}.
339
340 @findex expand-mail-aliases
341 Normally, Emacs expands aliases when you send the message. You do not
342 need to expand mail aliases before sending the message, but you can
343 expand them if you want to see where the mail will actually go. To do
344 this, use the command @kbd{M-x expand-mail-aliases}; it expands all mail
345 aliases currently present in the mail headers that hold addresses.
346
347 If you like, you can have mail aliases expand as abbrevs, as soon as
348 you type them in (@pxref{Abbrevs}). To enable this feature, execute the
349 following:
350
351 @example
352 (add-hook 'mail-mode-hook 'mail-abbrevs-setup)
353 @end example
354
355 @noindent
356 @findex define-mail-abbrev
357 @vindex mail-abbrevs
358 This can go in your @file{.emacs} file. @xref{Hooks}. If you use this
359 feature, you must use @code{define-mail-abbrev} instead of
360 @code{define-mail-alias}; the latter does not work with this package.
361 Note that the mail abbreviation package uses the variable
362 @code{mail-abbrevs} instead of @code{mail-aliases}, and that all alias
363 names are converted to lower case.
364
365 @kindex C-c C-a @r{(Mail mode)}
366 @findex mail-interactive-insert-alias
367 The mail abbreviation package also provides the @kbd{C-c C-a}
368 (@code{mail-interactive-insert-alias}) command, which reads an alias
369 name (with completion) and inserts its definition at point. This is
370 useful when editing the message text itself or a header field such as
371 @samp{Subject} in which Emacs does not normally expand aliases.
372
373 Note that abbrevs expand only if you insert a word-separator character
374 afterward. However, you can rebind @kbd{C-n} and @kbd{M->} to cause
375 expansion as well. Here's how to do that:
376
377 @smallexample
378 (add-hook 'mail-mode-hook
379 (lambda ()
380 (define-key
381 mail-mode-map [remap next-line] 'mail-abbrev-next-line)
382 (define-key
383 mail-mode-map [remap end-of-buffer] 'mail-abbrev-end-of-buffer)))
384 @end smallexample
385
386 @node Mail Mode
387 @section Mail Mode
388 @cindex Mail mode
389 @cindex mode, Mail
390
391 The major mode used in the mail buffer is Mail mode, which is much
392 like Text mode except that various special commands are provided on the
393 @kbd{C-c} prefix. These commands all have to do specifically with
394 editing or sending the message. In addition, Mail mode defines the
395 character @samp{%} as a word separator; this is helpful for using the
396 word commands to edit mail addresses.
397
398 Mail mode is normally used in buffers set up automatically by the
399 @code{mail} command and related commands. However, you can also switch
400 to Mail mode in a file-visiting buffer. This is a useful thing to do if
401 you have saved the text of a draft message in a file.
402
403 @menu
404 * Mail Sending:: Commands to send the message.
405 * Header Editing:: Commands to move to header fields and edit them.
406 * Citing Mail:: Copying all or part of a message you are replying to.
407 * Mail Mode Misc:: Spell checking, signatures, etc.
408 @end menu
409
410 @node Mail Sending
411 @subsection Mail Sending
412
413 Mail mode has two commands for sending the message you have been
414 editing:
415
416 @table @kbd
417 @item C-c C-s
418 Send the message, and leave the mail buffer selected (@code{mail-send}).
419 @item C-c C-c
420 Send the message, and select some other buffer (@code{mail-send-and-exit}).
421 @end table
422
423 @kindex C-c C-s @r{(Mail mode)}
424 @kindex C-c C-c @r{(Mail mode)}
425 @findex mail-send
426 @findex mail-send-and-exit
427 @kbd{C-c C-s} (@code{mail-send}) sends the message and marks the mail
428 buffer unmodified, but leaves that buffer selected so that you can
429 modify the message (perhaps with new recipients) and send it again.
430 @kbd{C-c C-c} (@code{mail-send-and-exit}) sends and then deletes the
431 window or switches to another buffer. It puts the mail buffer at the
432 lowest priority for reselection by default, since you are finished with
433 using it. This is the usual way to send the message.
434
435 In a file-visiting buffer, sending the message does not clear the
436 modified flag, because only saving the file should do that. As a
437 result, you don't get a warning if you try to send the same message
438 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,, Sending mail via SMTP,smtpmail}). A third option is
463 @code{feedmail-send-it}, see the commentary section of the
464 @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