Mercurial > hg > xemacs-beta
comparison man/xemacs/sending.texi @ 0:376386a54a3c r19-14
Import from CVS: tag r19-14
author | cvs |
---|---|
date | Mon, 13 Aug 2007 08:45:50 +0200 |
parents | |
children | ec9a17fef872 |
comparison
equal
deleted
inserted
replaced
-1:000000000000 | 0:376386a54a3c |
---|---|
1 | |
2 @node Sending Mail, Reading Mail, Picture, Top | |
3 @chapter Sending Mail | |
4 @cindex mail | |
5 @cindex message | |
6 | |
7 To send a message in Emacs, start by typing the command (@kbd{C-x m}) | |
8 to select and initialize the @samp{*mail*} buffer. You can then edit the text | |
9 and headers of the message in the mail buffer, and type the command | |
10 (@kbd{C-c C-c}) to send the message. | |
11 | |
12 @table @kbd | |
13 @item C-x m | |
14 Begin composing a message to send (@code{mail}). | |
15 @item C-x 4 m | |
16 Likewise, but display the message in another window | |
17 (@code{mail-other-window}). | |
18 @item C-c C-c | |
19 In Mail mode, send the message and switch to another buffer | |
20 (@code{mail-send-and-exit}). | |
21 @end table | |
22 | |
23 @kindex C-x m | |
24 @findex mail | |
25 @kindex C-x 4 m | |
26 @findex mail-other-window | |
27 The command @kbd{C-x m} (@code{mail}) selects a buffer named | |
28 @samp{*mail*} and initializes it with the skeleton of an outgoing message. | |
29 @kbd{C-x 4 m} (@code{mail-other-window}) selects the @samp{*mail*} buffer | |
30 in a different window, leaving the previous current buffer visible.@refill | |
31 | |
32 Because the buffer for mail composition is an ordinary Emacs buffer, you can | |
33 switch to other buffers while in the middle of composing mail, and switch | |
34 back later (or never). If you use the @kbd{C-x m} command again when you | |
35 have been composing another message but have not sent it, a new mail | |
36 buffer will be created; in this way, you can compose multiple messages | |
37 at once. You can switch back to and complete an unsent message by using | |
38 the normal buffer selection mechanisms. | |
39 | |
40 @kbd{C-u C-x m} is another way to switch back to a message in progress: | |
41 it will search for an existing, unsent mail message buffer and select it. | |
42 | |
43 @menu | |
44 * Format: Mail Format. Format of the mail being composed. | |
45 * Headers: Mail Headers. Details of allowed mail header fields. | |
46 * Mode: Mail Mode. Special commands for editing mail being composed. | |
47 @end menu | |
48 | |
49 @node Mail Format, Mail Headers, Sending Mail, Sending Mail | |
50 @section The Format of the Mail Buffer | |
51 | |
52 In addition to the @dfn{text} or contents, a message has @dfn{header | |
53 fields}, which say who sent it, when, to whom, why, and so on. Some header | |
54 fields, such as the date and sender, are created automatically after the | |
55 message is sent. Others, such as the recipient names, must be specified by | |
56 you in order to send the message properly. | |
57 | |
58 Mail mode provides a few commands to help you edit some header fields, | |
59 and some are preinitialized in the buffer automatically at times. You can | |
60 insert or edit any header fields using ordinary editing commands. | |
61 | |
62 The line in the buffer that says: | |
63 | |
64 @example | |
65 --text follows this line-- | |
66 @end example | |
67 | |
68 @vindex mail-header-separator | |
69 @noindent | |
70 is a special delimiter that separates the headers you have specified from | |
71 the text. Whatever follows this line is the text of the message; the | |
72 headers precede it. The delimiter line itself does not appear in the | |
73 message actually sent. The text used for the delimiter line is controlled | |
74 by the variable @code{mail-header-separator}. | |
75 | |
76 Here is an example of what the headers and text in the @samp{*mail*} buffer | |
77 might look like. | |
78 | |
79 @example | |
80 To: rms@@mc | |
81 CC: mly@@mc, rg@@oz | |
82 Subject: The XEmacs User's Manual | |
83 --Text follows this line-- | |
84 Please ignore this message. | |
85 @end example | |
86 | |
87 @node Mail Headers, Mail Mode, Mail Format, Sending Mail | |
88 @section Mail Header Fields | |
89 @cindex headers (of mail message) | |
90 | |
91 There are several header fields you can use in the @samp{*mail*} buffer. | |
92 Each header field starts with a field name at the beginning of a line, | |
93 terminated by a colon. It does not matter whether you use upper or lower | |
94 case in the field name. After the colon and optional whitespace comes the | |
95 contents of the field. | |
96 | |
97 @table @samp | |
98 @item To | |
99 This field contains the mailing addresses of the message. | |
100 | |
101 @item Subject | |
102 The contents of the @samp{Subject} field should be a piece of text that | |
103 says what the message is about. Subject fields are useful because most | |
104 mail-reading programs can provide a summary of messages, listing the | |
105 subject of each message but not its text. | |
106 | |
107 @item CC | |
108 This field contains additional mailing addresses to send the message | |
109 to, but whose readers should not regard the message as addressed to | |
110 them. | |
111 | |
112 @item BCC | |
113 This field contains additional mailing addresses to send the message | |
114 to, but which should not appear in the header of the message actually | |
115 sent. | |
116 | |
117 @item FCC | |
118 This field contains the name of one file (in Unix mail file format) to | |
119 which a copy of the message should be appended when the message is | |
120 sent. | |
121 | |
122 @item From | |
123 Use the @samp{From} field to say who you are, when the account you are | |
124 using to send the mail is not your own. The contents of the | |
125 @samp{From} field should be a valid mailing address, since replies | |
126 will normally go there. | |
127 | |
128 @item Reply-To | |
129 Use the @samp{Reply-To} field to direct replies to a different | |
130 address, not your own. @samp{From} and | |
131 @samp{Reply-To} have the same effect on where replies go, but they convey a | |
132 different meaning to the person who reads the message. | |
133 | |
134 @item In-Reply-To | |
135 This field contains a piece of text describing a message you are | |
136 replying to. Some mail systems can use the information to correlate | |
137 related pieces of mail. This field is normally filled in by your mail | |
138 handling package when you are replying to a message and you never need | |
139 to think about it. | |
140 @end table | |
141 | |
142 @noindent | |
143 The @samp{To}, @samp{CC}, @samp{BCC} and @samp{FCC} fields can appear | |
144 any number of times, to specify many places to send the message. | |
145 | |
146 @noindent | |
147 The @samp{To}, @samp{CC}, and @samp{BCC}, fields can have continuation | |
148 lines. All the lines starting with whitespace, following the line on | |
149 which the field starts, are considered part of the field. For | |
150 example,@refill | |
151 | |
152 @example | |
153 To: foo@@here, this@@there, | |
154 me@@gnu.cambridge.mass.usa.earth.spiral3281 | |
155 @end example | |
156 | |
157 @noindent | |
158 @vindex mail-abbrev-mailrc-file | |
159 If you have a @file{~/.mailrc} file, Emacs scans it for mail aliases the | |
160 first time you try to send mail in an Emacs session. Emacs expands | |
161 aliases found in the @samp{To}, @samp{CC}, and @samp{BCC} fields where | |
162 appropriate. You can set the variable @code{mail-abbrev-mailrc-file} to | |
163 the name of the file with mail aliases. If @code{nil}, @file{~/.mailrc} | |
164 is used. | |
165 | |
166 @cindex .mailrc file | |
167 Your @file{.mailrc} file ensures that word-abbrevs are defined for each | |
168 of your mail aliases when point is in a @samp{To}, @samp{CC}, | |
169 @samp{BCC}, or @samp{From} field. The aliases are defined in your | |
170 @file{.mailrc} file or in a file specified by the @b{MAILRC} | |
171 environment variable if it exists. Your mail aliases expand any time | |
172 you type a word-delimiter at the end of an abbreviation. | |
173 | |
174 In this version of Emacs, what you see is what you get: in contrast to | |
175 some other versions, no abbreviations are expanded after you have sent the | |
176 mail. This means you don't suffer the annoyance of having the system do | |
177 things behind your back --- if the system rewrites an address you typed, | |
178 you know it immediately, instead of after the mail has been sent and | |
179 it's too late to do anything about it. For example, you will never | |
180 again be in trouble because you forgot to delete an old alias from your | |
181 @file{.mailrc} and a new local user is given a userid which conflicts | |
182 with one of your aliases. | |
183 | |
184 @vindex mail-abbrev-mode-regexp | |
185 Your mail alias abbrevs are in effect only when point is in an | |
186 appropriate header field. The mail aliases will not expand in the body | |
187 of the message, or in other header fields. The default mode-specific | |
188 abbrev table @code{mail-mode-abbrev-table} is used instead if defined. | |
189 That means if you have been using mail-mode specific abbrevs, this code | |
190 will not adversely affect you. You can control which header fields the | |
191 abbrevs are used in by changing the variable @code{mail-abbrev-mode-regexp}. | |
192 | |
193 If auto-fill mode is on, abbrevs wrap at commas instead of at word | |
194 boundaries, and header continuation lines will be properly indented. | |
195 | |
196 @findex mail-interactive-insert-alias | |
197 You can also insert a mail alias with @code{mail-interactive-insert-alias}. | |
198 This function, which is bound to @kbd{C-c C-a}, prompts you for an alias | |
199 (with completion) and inserts its expansion at point. | |
200 | |
201 In this version of Emacs, it is possible to have lines like the | |
202 following in your @file{.mailrc} file: | |
203 | |
204 @example | |
205 alias someone "John Doe <doe@@quux.com>" | |
206 @end example | |
207 | |
208 That is, if you want an address to have embedded spaces, simply surround | |
209 it with double-quotes. The quotes are necessary because the format of | |
210 the @file{.mailrc} file uses spaces as address delimiters. | |
211 | |
212 Aliases in the @file{.mailrc} file may be nested. For example, assume | |
213 you define aliases like: | |
214 @example | |
215 alias group1 fred ethel | |
216 alias group2 larry curly moe | |
217 alias everybody group1 group2 | |
218 @end example | |
219 | |
220 When you now type @samp{everybody} on the @samp{To} line, it will expand to: | |
221 @example | |
222 fred, ethyl, larry, curly, moe | |
223 @end example | |
224 | |
225 Aliases may contain forward references; the alias of @samp{everybody} in the | |
226 example above can preceed the aliases of @samp{group1} and @samp{group2}. | |
227 | |
228 In this version of Emacs, you can use the @code{source} @file{.mailrc} command | |
229 for reading aliases from some other file as well. | |
230 | |
231 Aliases may contain hyphens, as in @code{"alias foo-bar foo@@bar"}, even | |
232 though word-abbrevs normally cannot contain hyphens. | |
233 | |
234 To read in the contents of another @file{.mailrc}-type file from Emacs, use the | |
235 command @code{M-x merge-mail-aliases}. The @code{rebuild-mail-aliases} | |
236 command is similar, but deletes existing aliases first. | |
237 | |
238 @vindex mail-alias-seperator-string | |
239 If you want multiple addresses separated by a string other than @samp{,} | |
240 (a comma), then set the variable @code{mail-alias-seperator-string} to | |
241 it. This has to be a comma bracketed by whitespace if you want any kind | |
242 of reasonable behavior. | |
243 | |
244 @vindex mail-archive-file-name | |
245 If the variable @code{mail-archive-file-name} is non-@code{nil}, it | |
246 should be a string naming a file. Each time you start to edit a message | |
247 to send, an @samp{FCC} field is entered for that file. Unless you | |
248 remove the @samp{FCC} field, every message is written into that | |
249 file when it is sent. | |
250 | |
251 @node Mail Mode,, Mail Headers, Sending Mail | |
252 @section Mail Mode | |
253 | |
254 The major mode used in the @samp{*mail*} buffer is Mail mode. Mail | |
255 mode is similar to Text mode, but several commands are provided on | |
256 the @kbd{C-c} prefix. These commands all deal specifically with | |
257 editing or sending the message. | |
258 | |
259 @table @kbd | |
260 @item C-c C-s | |
261 Send the message, and leave the @samp{*mail*} buffer selected | |
262 (@code{mail-send}). | |
263 @item C-c C-c | |
264 Send the message, and select some other buffer (@code{mail-send-and-exit}). | |
265 @item C-c C-f C-t | |
266 Move to the @samp{To} header field, creating one if there is none | |
267 (@code{mail-to}). | |
268 @item C-c C-f C-s | |
269 Move to the @samp{Subject} header field, creating one if there is | |
270 none (@code{mail-subject}). | |
271 @item C-c C-f C-c | |
272 Move to the @samp{CC} header field, creating one if there is none | |
273 (@code{mail-cc}). | |
274 @item C-c C-w | |
275 Insert the file @file{~/.signature} at the end of the message text | |
276 (@code{mail-signature}). | |
277 @item C-c C-y | |
278 Yank the selected message (@code{mail-yank-original}). | |
279 @item C-c C-q | |
280 Fill all paragraphs of yanked old messages, each individually | |
281 (@code{mail-fill-yanked-message}). | |
282 @item @key{button3} | |
283 Pops up a menu of useful mail-mode commands. | |
284 @end table | |
285 | |
286 @kindex C-c C-s (Mail mode) | |
287 @kindex C-c C-c (Mail mode) | |
288 @findex mail-send | |
289 @findex mail-send-and-exit | |
290 There are two ways to send a message. @kbd{C-c C-c} | |
291 (@code{mail-send-and-exit}) is the usual way to send the message. It | |
292 sends the message and then deletes the window (if there is another | |
293 window) or switches to another buffer. It puts the @samp{*mail*} buffer | |
294 at the lowest priority for automatic reselection, since you are finished | |
295 with using it. @kbd{C-c C-s} (@code{mail-send}) sends the | |
296 message and marks the @samp{*mail*} buffer unmodified, but leaves that | |
297 buffer selected so that you can modify the message (perhaps with new | |
298 recipients) and send it again. | |
299 | |
300 @kindex C-c C-f C-t (Mail mode) | |
301 @findex mail-to | |
302 @kindex C-c C-f C-s (Mail mode) | |
303 @findex mail-subject | |
304 @kindex C-c C-f C-c (Mail mode) | |
305 @findex mail-cc | |
306 Mail mode provides some other special commands that are useful for | |
307 editing the headers and text of the message before you send it. There are | |
308 three commands defined to move point to particular header fields, all based | |
309 on the prefix @kbd{C-c C-f} (@samp{C-f} is for ``field''). They are | |
310 @kbd{C-c C-f C-t} (@code{mail-to}) to move to the @samp{To} field, @kbd{C-c | |
311 C-f C-s} (@code{mail-subject}) for the @samp{Subject} field, and @kbd{C-c | |
312 C-f C-c} (@code{mail-cc}) for the @samp{CC} field. These fields have | |
313 special motion commands because they are edited most frequently. | |
314 | |
315 | |
316 @kindex C-c C-w (Mail mode) | |
317 @findex mail-signature | |
318 @kbd{C-c C-w} (@code{mail-signature}) adds a standard piece of text at | |
319 the end of the message to say more about who you are. The text comes | |
320 from the file @file{.signature} in your home directory. | |
321 | |
322 @kindex C-c C-y (Mail mode) | |
323 @findex mail-yank-original | |
324 When you use an Rmail command to send mail from the Rmail mail reader, | |
325 you can use @kbd{C-c C-y} @code{mail-yank-original} inside the | |
326 @samp{*mail*} buffer to insert the | |
327 text of the message you are replying to. Normally Rmail indents each line | |
328 of that message four spaces and eliminates most header fields. A | |
329 numeric argument specifies the number of spaces to indent. An argument | |
330 of just @kbd{C-u} says not to indent at all and not to eliminate | |
331 anything. @kbd{C-c C-y} always uses the current message from the | |
332 @samp{RMAIL} buffer, so you can insert several old messages by selecting | |
333 one in @samp{RMAIL}, switching to @samp{*mail*} and yanking it, then | |
334 switching back to @samp{RMAIL} to select another.@refill | |
335 | |
336 @kindex C-c C-q (Mail mode) | |
337 @findex mail-fill-yanked-message | |
338 After using @kbd{C-c C-y}, you can use the command @kbd{C-c C-q} | |
339 (@code{mail-fill-yanked-message}) to fill the paragraphs of the yanked | |
340 old message or messages. One use of @kbd{C-c C-q} fills all such | |
341 paragraphs, each one separately. | |
342 | |
343 Clicking the right mouse button in a mail buffer pops up a menu of | |
344 the above commands, for easy access. | |
345 | |
346 @vindex mail-mode-hook | |
347 Turning on Mail mode (which @kbd{C-x m} does automatically) calls the | |
348 value of @code{text-mode-hook}, if it is not void or @code{nil}, and | |
349 then calls the value of @code{mail-mode-hook} if that is not void or | |
350 @code{nil}. |