tm 7.100.
[elisp/tm.git] / doc / tm-edit-en.info
1 This is Info file tm-edit-en.info, produced by Makeinfo-1.63 from the
2 input file tm-edit-en.texi.
3
4 \1f
5 File: tm-edit-en.info,  Node: Top,  Next: Introduction,  Prev: (dir),  Up: (dir)
6
7 tm-edit 7.100 Reference Manual (English Version)
8 ************************************************
9
10    This file documents tm-edit, a MIME composer for GNU Emacs.
11
12 * Menu:
13
14 * Introduction::                What is tm-edit?
15 * mime/editor-mode::
16 * single-part operations::
17 * enclosure operation::
18 * other operations of mime/editor-mode::
19 * tag specification for inserted file::  Default media-type or encoding for inserted file
20 * transfer level::
21 * header::                      Using non-ASCII characters in header
22 * PGP::
23 * Acknowledgments::
24 * Concept Index::
25 * Function Index::
26 * Variable Index::
27
28 \1f
29 File: tm-edit-en.info,  Node: Introduction,  Next: mime/editor-mode,  Prev: Top,  Up: Top
30
31 What is tm-edit?
32 ****************
33
34    *tm-edit* is a general MIME composer for GNU Emacs.
35
36    tm-edit is based on mime.el by UMEDA Masanobu
37 <umerin@mse.kyutech.ac.jp>, who is famous as the author of GNUS.
38 tm-edit expands following points from `mime.el':
39
40    * based on RFC 1521/1522
41
42    * Content-Disposition field (*Note (tm-en)Content-Disposition::)
43      (RFC 1806) supports
44
45    * nested multi-part message (*Note (tm-en)multipart::)
46
47    * PGP (*Note PGP::) (PGP/MIME (RFC 2015) based on security multipart
48      (RFC 1847) and application/pgp based on traditional PGP)
49
50    * strength automatic specification for parameter of file type
51
52    In tm-MUA (*Note (tm-en)tm-MUA::), you can edit MIME message easily
53 to use tm-edit.
54
55 \1f
56 File: tm-edit-en.info,  Node: mime/editor-mode,  Next: single-part operations,  Prev: Introduction,  Up: Top
57
58 mime/editor-mode
59 ****************
60
61    *mime/editor-mode* is a minor mode to compose MIME message.  In this
62 mode, *tag* represents various kinds of data, you can edit multi part
63 (*Note (tm-en)multipart::) message.
64
65    There are 2 kinds of tags:
66
67    *  single-part tag
68
69    *  multi-part tag
70
71    single-part tag represents single part, this form is following:
72
73              --[[TYPE/SUBTYPE;PARAMETERS][ENCODING]
74              OPTIONAL-FIELDS]
75
76    TYPE/SUBTYPE and PARAMETERS indicates type/subtype and parameters of
77 Content-Type field (*Note (tm-en)Content-Type field::).  TYPE/SUBTYPE is
78 required, PARAMETERS is optional.
79
80    ENCODING indicates Content-Transfer-Encoding field.  It is optional
81 too.
82
83    OPTIONAL-FIELDS is to represent another fields except Content-Type
84 field and Content-Transfer-Encoding field.
85
86    multi-part tags represent multi part (*Note (tm-en)multipart::).
87 They consist of a pair of *multi-part beginning tag* and *multi-part
88 ending tag*.
89
90    multi-part beginning tag's form is following:
91
92              --<<TYPE>>-{
93
94    multi-part ending tag's form is following:
95
96              --}-<<TYPE>>
97
98    A region from multi-part beginning tag to multi-part ending tag is
99 called as *enclosure*.
100
101 \1f
102 File: tm-edit-en.info,  Node: single-part operations,  Next: enclosure operation,  Prev: mime/editor-mode,  Up: Top
103
104 single-part operations
105 **********************
106
107    Operations to make single-part are following:
108
109 `C-c C-x C-t'
110      Insert single-part tag indicates text part.
111
112 `C-c C-x C-i'
113      Insert file as a MIME attachment.  If `C-u' is followed by it, it
114      asks media-type, subtype or encoding even if their default values
115      are specified. (cf. *Note tag specification for inserted file::)
116
117 `C-c C-x C-e'
118      Insert external part.
119
120 `C-c C-x C-v'
121      Record audio input until `C-g' is pressed, and insert as a audio
122      part. (It requires /dev/audio in default.)
123
124 `C-c C-x C-y'
125      Insert current (mail or news) message. (It is MUA depended.)
126
127 `C-c C-x C-m'
128      Insert mail message. (It is MUA depended.)
129
130 `C-c C-x C-w, C-c C-x C-s'
131      Insert signature.
132
133 `C-c C-x C-k'
134      Insert PGP (*Note PGP::) public key. (It requires Mailcrypt
135      package.)
136
137 `C-c C-x t'
138      Insert any single-part tag.
139
140 \1f
141 File: tm-edit-en.info,  Node: enclosure operation,  Next: other operations of mime/editor-mode,  Prev: single-part operations,  Up: Top
142
143 enclosure operation
144 *******************
145
146    Operations to make enclosure are following:
147
148 `C-c C-x a'
149      Enclose specified region as multipart/alternative.
150
151 `C-c C-x p'
152      Enclose specified region as multipart/parallel.
153
154 `C-c C-x m'
155      Enclose specified region as multipart/mixed.
156
157 `C-c C-x d'
158      Enclose specified region as multipart/digest.
159
160 `C-c C-x s'
161      Digital-sign to specified region. (cf. *Note PGP::)
162
163 `C-c C-x e'
164      Encrypt to specified region. (cf. *Note PGP::)
165
166 `C-c C-x q'
167      avoid to encode tags in specified region.  In other words, tags is
168      interpreted as such string.  (In current version, it may be
169      incomplete.  Maybe PGP-signature does not work for this enclosure.)
170
171 \1f
172 File: tm-edit-en.info,  Node: other operations of mime/editor-mode,  Next: tag specification for inserted file,  Prev: enclosure operation,  Up: Top
173
174 other operations of mime/editor-mode
175 ************************************
176
177    There are another operations in mime/editor-mode.
178
179 `C-c C-c'
180      Send current editing message.
181
182 `C-c C-x C-p'
183      Preview current editing message. (*Note
184      (tm-view-en)mime/viewer-mode::)
185
186 `C-c C-x C-z'
187      Exit mime/editor-mode. (M-x mime/edit-again is available to
188      reedit.)
189
190 `C-c C-x ?'
191      Display help message.
192
193 `C-c C-x /'
194      Set current editing message to enable automatic splitting or not.
195      Form of automatic split messages is message/partial.
196
197 `C-c C-x 7'
198      Set 7bit (*Note (tm-en)7bit::) to transfer level (*Note transfer
199      level::).
200
201 `C-c C-x 8'
202      Set 8bit (*Note (tm-en)8bit::) to transfer level (*Note transfer
203      level::).
204
205 `C-c C-x v'
206      Set current editing message to digital-sign or not. (cf. *Note
207      PGP::)
208
209 `C-c C-x h'
210      Set current editing message to encrypt or not. (cf. *Note PGP::)
211
212 \1f
213 File: tm-edit-en.info,  Node: tag specification for inserted file,  Next: transfer level,  Prev: other operations of mime/editor-mode,  Up: Top
214
215 Default media-type or encoding for inserted file
216 ************************************************
217
218    When `C-c C-x C-i' (`mime-editor/insert-file') is pressed, tag
219 parameters for inserted file, such as media-type or encoding, are
220 detected by variable `mime-file-types'.
221
222    When `C-u' is followed by it or parameter is not found from the
223 variable, it asks from user.  (When `C-u' is followed by it, detected
224 value is used as default value)
225
226    If you want to change default value for file names, please change
227 variable `mime-file-types'.
228
229  - Variable: mime-file-types
230      Specification of default value of tag for file name of inserted
231      file.
232
233      It is a list of following list:
234
235                 (FILE_PAT TYPE SUBTYPE PARAMS ENCODING
236                  DISPOSITION_TYPE DISPOSITION_PARAMS)
237
238      Each elements of the list are following:
239
240     `FILE_PAT'
241           regular expression of file name
242
243     `TYPE'
244           media type
245
246     `SUBTYPE'
247           media subtype
248
249     `PARAMS'
250           parameters of Content-Type field
251
252     `ENCODING'
253           Content-Transfer-Encoding
254
255     `DISPOSITION_TYPE'
256           disposition-type
257
258     `DISPOSITION_PARAMS'
259           parameters of Content-Disposition field
260
261      Example: Specify application/rtf as default media type for `*.rtf'
262
263           (call-after-loaded
264            'tm-edit
265            (lambda ()
266              (set-alist 'mime-file-types
267                       "\\.rtf$"
268                       '("application" "rtf" nil nil
269                         "attachment" (("filename" . file)))
270                       )))
271
272 \1f
273 File: tm-edit-en.info,  Node: transfer level,  Next: header,  Prev: tag specification for inserted file,  Up: Top
274
275 transfer level
276 **************
277
278    Contents inserted in a message are represented by 7bit (*Note
279 (tm-en)7bit::), 8bit (*Note (tm-en)8bit::) or binary (*Note
280 (tm-en)binary::).
281
282    If a message is translated by 7bit-through MTA (*Note (tm-en)MTA::),
283 there is no need to encode 7bit data, but 8bit and binary data must be
284 encoded to 7bit data.
285
286    Similarly, if a message is translated by 8bit-through MTA, there is
287 no need to encode 7bit or 8bit data, but binary data must be encoded to
288 7bit or 8bit data.
289
290 *[Memo]*
291      EBCDIC MTA breaks 7bit data, so in this case, 7bit data must be
292      encoded by base64.  But I don't know EBCDIC. (^_^;
293
294      Similarly, I wish ASCII-printable only MTA and code-conversion MTA
295      disappeared. (^_^;
296
297      Maybe there are binary-through MTA, but I think it is not major.
298
299    *transfer level* represents how range data is available.  tm-edit
300 has a variable `mime-editor/transfer-level' to represent transfer level.
301
302  - Variable: mime-editor/transfer-level
303      transfer level.
304
305      If transfer level of a data is over it, a data is encoded to 7bit.
306
307      Currently, 7 or 8 is available.  Default value is 7.
308
309      In extension plan, EBCDIC will be 5, ASCII printable only will be
310      6, binary will be 9.  But it will not be implemented.
311
312 *[Memo]*
313      transfer level is only for body, not for header (*Note header::).
314      RFC 1521 extends RFC 822 (*Note (tm-en)RFC 822::) to use 8bit data
315      in body, but it requires to use us-ascii (*Note (tm-en)us-ascii::)
316      in header.
317
318 \1f
319 File: tm-edit-en.info,  Node: header,  Next: PGP,  Prev: transfer level,  Up: Top
320
321 Using non-ASCII characters in header
322 ************************************
323
324    RFC 1522 (*Note (tm-en)RFC 1522::) defines representation of
325 non-ASCII characters in header.
326
327    It is a format called as *encoded-word* (*Note
328 (tm-en)encoded-word::), it is available to represent every non-ASCII
329 characters by 7bit (*Note (tm-en)7bit::) to declare MIME charset (*Note
330 (tm-en)MIME charset::).
331
332 * Menu:
333
334 * evil setting in header::      If you can not allow encoded-word
335 * API about header::            Functions and variables about header
336
337 \1f
338 File: tm-edit-en.info,  Node: evil setting in header,  Next: API about header,  Prev: header,  Up: header
339
340 If you can not allow encoded-word
341 =================================
342
343    It is wrong to use "raw" non-ASCII characters in header not to use
344 encoded-word.  Because there are various kinds of coded character set
345 (*Note (tm-en)Coded character set::) in the Internet, so we can not
346 distinguish them if MIME charset (*Note (tm-en)MIME charset::) is not
347 declared.
348
349    For example, we can not distinguish iso-8859-1 (*Note
350 (tm-en)iso-8859-1::) and iso-8859-2 (*Note (tm-en)iso-8859-2::) if MIME
351 charset is not declared.
352
353    However you can not permit to use encoded-word, please set to
354 following variables:
355
356  - Variable: mime/field-encoding-method-alist
357      Association-list to specify field encoding method.  Its key is
358      field-name, value is encoding method.
359
360      field-name allows string or `t' meaning any fields.
361
362      Encoding method allows following: `nil' means no-conversion,
363      `mime' means to convert as encoded-word, symbol represent MIME
364      charset means to convert as the coded character set instead of to
365      convert as encoded-word.
366
367      field-name is searched from string.  If it is not found, `t' is
368      used.
369
370      Default value of `mime/field-encoding-method-alist' is following:
371
372           (("X-Nsubject" . iso-2022-jp-2)
373            ("Newsgroups" . nil)
374            (t            . mime)
375            ))
376
377    In addition, if you want to specify by coded character set instead of
378 field, please use `mime-eword/charset-encoding-alist'.  (cf. *Note API
379 about header::)
380
381 \1f
382 File: tm-edit-en.info,  Node: API about header,  Prev: evil setting in header,  Up: header
383
384 Functions and variables about header
385 ====================================
386
387  - Command: mime/encode-message-header &optional CODE-CONVERSION
388      It translate non-ASCII characters in message header of current
389      buffer into network representation, such as encoded-words.
390
391      If CODE-CONVERSION is non-`nil', field not encoded by encoded-word
392      is converted by `mime/field-encoding-method-alist'.
393
394  - Function: mime/encode-field STRING
395      It encodes STRING into encoded-words as a field.
396
397      Long lines are folded.
398
399  - Function: mime-eword/encode-string STRING &optional COLUMN MODE
400      It encodes STRING into encoded-words.
401
402      Long lines are folded.
403
404      COLUMN specifies start column.  If it is omitted, 0 is used.
405
406      MODE specifies where STRING is in.  Available values are `text',
407      `comment', `phrase'.  If it is omitted, `phrase' is used.
408
409  - Variable: mime-eword/charset-encoding-alist
410      Association-list of symbol represent MIME charset vs. nil, `"B"' or
411      `"Q"'.
412
413      `nil' means not to encode as encoded-word.  `"B"' means to use
414      B-encoding.  `"Q"' means to use Q-encoding.
415
416 \1f
417 File: tm-edit-en.info,  Node: PGP,  Next: Acknowledgments,  Prev: header,  Up: Top
418
419 PGP
420 ***
421
422    tm-edit provides PGP encryption, signature and inserting public-key
423 features based on *PGP/MIME* (*Note (tm-en)PGP/MIME::) (RFC 2015) or
424 *PGP-kazu* (*Note (tm-en)PGP-kazu::) (draft-kazu-pgp-mime-00.txt).
425
426    This feature requires pgp command and Mailcrypt package (*Note
427 (mailcrypt)::).
428
429    If you want to use this feature, please set `pgp-elkins' or
430 `pgp-kazu' to variable `mimed-editor/signing-type' and variable
431 `mime-editor/encrypting-type'.
432
433    If `pgp-elkins' is specified, PGP/MIME is used.  If `pgp-kazu' is
434 specified, PGP-kazu is used.
435
436  - Variable: mime-editor/signing-type
437      Format of PGP signature.
438
439      It allows `pgp-elkins' or `pgp-kazu'.
440
441      Default value is `nil'.
442
443  - Variable: mime-editor/encrypting-type
444      Format of PGP encryption.
445
446      It allows `pgp-elkins' or `pgp-kazu'.
447
448      Default value is `nil'.
449
450 \1f
451 File: tm-edit-en.info,  Node: Acknowledgments,  Next: Concept Index,  Prev: PGP,  Up: Top
452
453 Acknowledgments
454 ***************
455
456    First of all, I thank UMEDA Masanobu for his work of `mime.el',
457 which is the origin of tm-edit, and permission to rewrite his work as
458 tm-edit.
459
460    I thank members of two tm mailing lists, Japanese and English
461 version.
462
463 \1f
464 File: tm-edit-en.info,  Node: Concept Index,  Next: Function Index,  Prev: Acknowledgments,  Up: Top
465
466 Concept Index
467 *************
468
469 * Menu:
470
471 * enclosure:                            mime/editor-mode.
472 * encoded-word:                         header.
473 * mime/editor-mode:                     mime/editor-mode.
474 * multi-part beginning tag:             mime/editor-mode.
475 * multi-part ending tag:                mime/editor-mode.
476 * PGP-kazu:                             PGP.
477 * PGP/MIME:                             PGP.
478 * tag:                                  mime/editor-mode.
479 * tm-edit:                              Introduction.
480 * transfer level:                       transfer level.
481
482 \1f
483 File: tm-edit-en.info,  Node: Function Index,  Next: Variable Index,  Prev: Concept Index,  Up: Top
484
485 Function Index
486 **************
487
488 * Menu:
489
490 * mime-eword/encode-string:             API about header.
491 * mime/encode-field:                    API about header.
492 * mime/encode-message-header:           API about header.
493
494 \1f
495 File: tm-edit-en.info,  Node: Variable Index,  Prev: Function Index,  Up: Top
496
497 Variable Index
498 **************
499
500 * Menu:
501
502 * mime-editor/encrypting-type:          PGP.
503 * mime-editor/signing-type:             PGP.
504 * mime-editor/transfer-level:           transfer level.
505 * mime-eword/charset-encoding-alist:    API about header.
506 * mime-file-types:                      tag specification for inserted file.
507 * mime/field-encoding-method-alist:     evil setting in header.
508
509
510 \1f
511 Tag Table:
512 Node: Top\7f99
513 Node: Introduction\7f780
514 Node: mime/editor-mode\7f1599
515 Node: single-part operations\7f2919
516 Node: enclosure operation\7f3937
517 Node: other operations of mime/editor-mode\7f4785
518 Node: tag specification for inserted file\7f5857
519 Node: transfer level\7f7534
520 Node: header\7f9167
521 Node: evil setting in header\7f9785
522 Node: API about header\7f11382
523 Node: PGP\7f12593
524 Node: Acknowledgments\7f13527
525 Node: Concept Index\7f13875
526 Node: Function Index\7f14556
527 Node: Variable Index\7f14874
528 \1f
529 End Tag Table