1 <!doctype sinfo system>
2 <!-- $Id: tm-edit-en.sgml,v 1.1 1996/11/29 19:09:44 morioka Exp $ -->
4 <title>tm-edit 7.90 Reference Manual (English Version)
5 <author>MORIOKA Tomohiko <mail>morioka@jaist.ac.jp</mail>
15 This file documents tm-edit, a MIME composer for GNU Emacs.
22 <concept>tm-edit</concept> is a general MIME composer for GNU Emacs.
24 tm-edit is based on mime.el by UMEDA Masanobu
25 <mail>umerin@mse.kyutech.ac.jp</mail>, who is famous as the author of
26 GNUS. tm-edit expands following points from <file>mime.el</file>:
30 based on RFC 1521/1522
32 <a file="tm-en" node="Content-Disposition">Content-Disposition
33 field</a> (RFC 1806) supports
35 nested <a file="tm-en" node="multipart">multi-part message</a>
37 <dref>PGP</dref> (PGP/MIME (RFC 2015) based on security multipart (RFC
38 1847) and application/pgp based on traditional PGP)
40 strength automatic specification for parameter of file type
44 In <dref file="tm-en">tm-MUA</dref>, you can edit MIME message easily
49 <node> mime/editor-mode
51 <concept>mime/editor-mode</concept> is a minor mode to compose MIME
52 message. In this mode, <concept>tag</concept> represents various
53 kinds of data, you can edit <a file="tm-en" node="multipart">multi
56 There are 2 kinds of tags:
63 single-part tag represents single part, this form is following:
66 --[[TYPE/SUBTYPE;PARAMETERS][ENCODING]
70 TYPE/SUBTYPE and PARAMETERS indicates type/subtype and parameters of
71 <dref file="tm-en">Content-Type field</dref>. TYPE/SUBTYPE is
72 required, PARAMETERS is optional.
74 ENCODING indicates Content-Transfer-Encoding field. It is optional
77 OPTIONAL-FIELDS is to represent another fields except Content-Type
78 field and Content-Transfer-Encoding field.
80 multi-part tags represent <a file="tm-en" node="multipart">multi
81 part</a>. They consist of a pair of <concept>multi-part beginning
82 tag</concept> and <concept>multi-part ending tag</concept>.
84 multi-part beginning tag's form is following:
90 multi-part ending tag's form is following:
96 A region from multi-part beginning tag to multi-part ending tag is
97 called as <concept>enclosure</concept>.
100 <h1> single-part operations
101 <node> single-part operations
103 Operations to make single-part are following:
108 Insert single-part tag indicates text part.
112 Insert file as a MIME attachment.
116 Insert external part.
120 Record audio input until <kbd>C-g</kbd> is pressed, and insert as a
121 audio part. (It requires /dev/audio in default.)
125 Insert current (mail or news) message. (It is MUA depended.)
129 Insert mail message. (It is MUA depended.)
131 <dt><key>C-c C-x C-w</key>, <key>C-c C-x C-s</key>
137 Insert <dref>PGP</dref> public key. (It requires Mailcrypt package.)
141 Insert any single-part tag.
146 <h1> enclosure operation
147 <node> enclosure operation
149 Operations to make enclosure are following:
154 Enclose specified region as multipart/alternative.
158 Enclose specified region as multipart/parallel.
162 Enclose specified region as multipart/mixed.
166 Enclose specified region as multipart/digest.
170 Digital-sign to specified region. <cf node="PGP">
174 Encrypt to specified region. <cf node="PGP">
177 avoid to encode tags in specified region. In other words, tags is
178 interpreted as such string. (In current version, it may be
179 incomplete. Maybe PGP-signature does not work for this enclosure.)
183 <h1> other operations of mime/editor-mode
184 <node> other operations of mime/editor-mode
186 There are another operations in mime/editor-mode.
191 Send current editing message.
195 Preview current editing message. (<ref file="tm-view-en"
196 node="mime/viewer-mode">)
200 Exit mime/editor-mode. (<key>M-x mime/edit-again</key> is available to
205 Display help message.
209 Set current editing message to enable automatic splitting or not.
210 Form of automatic split messages is message/partial.
214 Set <dref file="tm-en">7bit</dref> to <dref>transfer level</dref>.
218 Set <dref file="tm-en">8bit</dref> to <dref>transfer level</dref>.
222 Set current editing message to digital-sign or not. <cf node="PGP">
226 Set current editing message to encrypt or not. <cf node="PGP">
231 <node> transfer level
233 Contents inserted in a message are represented by <dref
234 file="tm-en">7bit</dref>, <dref file="tm-en">8bit</dref> or <dref
235 file="tm-en">binary</dref>.
237 If a message is translated by 7bit-through <dref
238 file="tm-en">MTA</dref>, there is no need to encode 7bit data, but
239 8bit and binary data must be encoded to 7bit data.
241 Similarly, if a message is translated by 8bit-through MTA, there is no
242 need to encode 7bit or 8bit data, but binary data must be encoded to
246 EBCDIC MTA breaks 7bit data, so in this case, 7bit data must be
247 encoded by base64. But I don't know EBCDIC. (^_^;
249 Similarly, I wish ASCII-printable only MTA and code-conversion MTA
252 Maybe there are binary-through MTA, but I think it is not major.
255 <concept>transfer level</concept> represents how range data is
256 available. tm-edit has a variable
257 <code>mime-editor/transfer-level</code> to represent transfer level.
260 <defvar name="mime-editor/transfer-level">
264 If transfer level of a data is over it, a data is encoded to 7bit.
266 Currently, 7 or 8 is available. Default value is 7.
268 In extension plan, EBCDIC will be 5, ASCII printable only will be 6,
269 binary will be 9. But it will not be implemented.
274 transfer level is only for body, not for <a node="header">header</a>.
275 RFC 1521 extends <dref file="tm-en">RFC 822</dref> to use 8bit data in
276 body, but it requires to use <dref file="tm-en">us-ascii</dref> in
281 <h1> Using non-ASCII characters in header
284 <dref file="tm-en">RFC 1522</dref> defines representation of non-ASCII
285 characters in header.
287 It is a format called as <a file="tm-en"
288 node="encoded-word"><concept>encoded-word</concept></a>, it is
289 available to represent every non-ASCII characters by <dref
290 file="tm-en">7bit</dref> to declare <dref file="tm-en">MIME
294 <h2> If you can not allow encoded-word
295 <node> evil setting in header
297 It is wrong to use ``raw'' non-ASCII characters in header not to use
298 encoded-word. Because there are various kinds of <a file="tm-en"
299 node="Coded character set">coded character set</a> in the Internet, so
300 we can not distinguish them if <dref file="tm-en">MIME charset</dref>
303 For example, we can not distinguish <dref
304 file="tm-en">iso-8859-1</dref> and <dref
305 file="tm-en">iso-8859-2</dref> if MIME charset is not declared.
307 However you can not permit to use encoded-word, please set to
311 <defvar name="mime/field-encoding-method-alist">
313 Association-list to specify field encoding method. Its key is
314 field-name, value is encoding method.
316 field-name allows string or <code>t</code> meaning any fields.
318 Encoding method allows following: <code>nil</code> means
319 no-conversion, <code>mime</code> means to convert as encoded-word,
320 symbol represent MIME charset means to convert as the coded character
321 set instead of to convert as encoded-word.
323 field-name is searched from string. If it is not found,
324 <code>t</code> is used.
326 Default value of <code>mime/field-encoding-method-alist</code> is
330 (("X-Nsubject" . iso-2022-jp-2)
338 In addition, if you want to specify by coded character set instead of
339 field, please use <code>mime-eword/charset-encoding-alist</code>.
340 <cf node="API about header">
343 <h2> Functions and variables about header
344 <node> API about header
346 <define type="Command" name="mime/encode-message-header">
347 <opts> code-conversion
349 It translate non-ASCII characters in message header of current buffer
350 into network representation, such as encoded-words.
352 If <var>code-conversion</var> is non-<code>nil</code>, field not
353 encoded by encoded-word is converted by
354 <code>mime/field-encoding-method-alist</code>.
357 <defun name="mime/encode-field">
360 It encodes <var>string</var> into encoded-words as a field.
362 Long lines are folded.
365 <defun name="mime-eword/encode-string">
366 <args> string <opts> column mode
368 It encodes <var>string</var> into encoded-words.
370 Long lines are folded.
372 <var>column</var> specifies start column. If it is omitted, 0 is
375 <var>mode</var> specifies where <var>string</var> is in. Available
376 values are <code>text</code>, <code>comment</code>,
377 <code>phrase</code>. If it is omitted, <code>phrase</code> is used.
380 <defvar name="mime-eword/charset-encoding-alist">
382 Association-list of symbol represent MIME charset vs. nil,
383 <code>"B"</code> or <code>"Q"</code>.
385 <code>nil</code> means not to encode as encoded-word.
386 <code>"B"</code> means to use B-encoding.
387 <code>"Q"</code> means to use Q-encoding.
394 tm-edit provides PGP encryption, signature and inserting public-key
395 features based on <a file="tm-en"
396 node="PGP/MIME"><concept>PGP/MIME</concept></a> (RFC 2015) or <a
397 file="tm-en" node="PGP-kazu"><concept>PGP-kazu</concept></a>
398 (draft-kazu-pgp-mime-00.txt).
400 This feature requires pgp command and <a file="mailcrypt">Mailcrypt
403 If you want to use this feature, please set <code>pgp-elkins</code> or
404 <code>pgp-kazu</code> to variable
405 <code>mimed-editor/signing-type</code> and variable
406 <code>mime-editor/encrypting-type</code>.
408 If <code>pgp-elkins</code> is specified, PGP/MIME is used. If
409 <code>pgp-kazu</code> is specified, PGP-kazu is used.
412 <defvar name="mime-editor/signing-type">
414 Format of PGP signature.
416 It allows <code>pgp-elkins</code> or <code>pgp-kazu</code>.
418 Default value is <code>nil</code>.
421 <defvar name="mime-editor/encrypting-type">
423 Format of PGP encryption.
425 It allows <code>pgp-elkins</code> or <code>pgp-kazu</code>.
427 Default value is <code>nil</code>.
438 <node> Function Index
444 <node> Variable Index