1 <!doctype sinfo system>
2 <!-- $Id: tm-en.sgml,v 1.2 1996/12/23 21:17:11 morioka Exp $ -->
4 <title>tm 7.98 Manual (English Version)
5 <author>MORIOKA Tomohiko <mail>morioka@jaist.ac.jp</mail>
15 This file documents tm, a MIME package for GNU Emacs.
21 The tm package is a set of modules to enjoy MIME on GNU Emacs. Using
25 <li> playback or view the MIME messages using tm-view
26 <li> compose MIME message using tm-edit
27 <li> use the enhanced MIME features with mh-e, GNUS, Gnus, RMAIL and VM
33 Please read following about each topics:
36 <li><a file="gnus-mime-en">tm-MUA for Gnus</a>
37 <li><a file="tm-gnus-en">tm-MUA for GNUS</a>
38 <li><a file="tm-mh-e-en">tm-MUA for mh-e</a>
39 <li><a file="tm-view-en">mime/viewer-mode</a>
40 <li><a file="tm-edit-en">mime/editor-mode</a>
50 <concept>7bit</concept> means any integer between 0 .. 127.
52 Any data represented by 7bit integers is called <concept>7bit
55 Textual string consisted of Control characters between 0 .. 31 and
56 127, and space represented by 32, and graphic characters between 33
57 .. 236 are called <concept>7bit (textual) string</concept>.
59 Traditional Internet <a node="MTA">MTA</a> can translate 7bit data, so
60 it is no need to translate by <a
61 node="Quoted-Printable">Quoted-Printable</a> or <a
62 node="Base64">Base64</a> for 7bit data.
64 However if there are too long lines, it can not translate by 7bit MTA
65 even if it is 7bit data. <dref>RFC 821</dref> and <dref>RFC
66 2045</dref> require lines in 7bit data must be less than 998 bytes.
67 So if a ``7bit data'' has a line more than 999 bytes, it is regarded
68 as <dref>binary</dref>. For example, Postscript file should be
69 encoded by Quoted-Printable.
75 <concept>8bit</concept> means any integer between 0 .. 255.
77 Any data represented by 8bit integers is called <concept>8bit
80 Textual string consisted of Control characters between 0 .. 31, 127,
81 and 128 .. 159, and space represented by 32, and graphic characters
82 between 33 .. 236 and 160 .. 255 are called <concept>8bit (textual)
85 For example, <dref>iso-8859-1</dref> or <dref>euc-kr</dref> are
86 coded-character-set represented by 8bit textual string.
88 Traditional Internet <a node="MTA">MTA</a> can translate only
89 <dref>7bit</dref> data, so if a 8bit data will be translated such MTA,
90 it must be encoded by <dref>Quoted-Printable</dref> or
93 However 8bit MTA are increasing today.
95 However if there are too long lines, it can not translate by 8bit MTA
96 even if it is 8bit data. <dref>RFC 2045</dref> require lines in 8bit
97 data must be less than 998 bytes. So if a ``8bit data'' has a line
98 more than 999 bytes, it is regarded as <dref>binary</dref>, so it must
99 be encoded by Base64 or Quoted-Printable.
102 <h3> 94-character set
103 <node> 94-character set
105 <concept>94-character set</concept> is a kind of 1 byte <dref>graphic
106 character set</dref>, each characters are in positions 02/01 (33) to
107 07/14 (126) or 10/01 (161) to 15/14 (254). (ex. <dref>ASCII</dref>,
111 <h3> 96-character set
112 <node> 96-character set
114 <concept>96-character set</concept> is a kind of 1 byte <dref>graphic
115 character set</dref>, each characters are in positions 02/00 (32) to
116 07/15 (126) or 10/00 (160) to 15/15 (255). (ex. ISO 8859)
119 <h3> 94x94-character set
120 <node> 94x94-character set
122 <concept>94x94-character set</concept> is a kind of 2 byte
123 <dref>graphic character set</dref>, each bytes are in positions 02/01
124 (33) to 07/14 (126) or 10/01 (161) to 15/14 (254). (ex. <dref>JIS
125 X0208</dref>, <dref>GB 2312</dref>)
131 <concept>ASCII</concept> is a <dref>94-character set</dref> contains
132 primary latin characters (A-Z, a-z), numbers and some characters. It
133 is a standard of the United States of America. It is a variant of <a
134 node="ISO 646">ISO 646</a>.
136 <standard abbrev="ASCII" title-en="Coded Character Set -- 7-Bit
137 American Standard Code for Information Interchange"
138 number="ANSI X3.4" year="1986">
144 <concept>Base64</concept> is a transfer encoding method of
145 <dref>MIME</dref> defined in <dref>RFC 2045</dref>.
147 The encoding process represents 24-bit groups of input bits as output
148 strings of 4 encoded characters. Encoded characters represent integer
149 0 .. 63 or <concept>pad</concept>. Base64 data must be 4 * n bytes,
150 so pad is used to adjust size.
152 These 65 characters are subset of all versions of ISO 646, including
153 US-ASCII, and all versions of EBCDIC. So it is safe even if it is
154 translated by non-Internet gateways.
160 Any byte stream is called <concept>binary</concept>.
162 It does not require structureof lines. It differs from from <a
163 node="8bit">8bit</a>.
165 In addition, if line structured data contain too long line (more than
166 998 bytes), it is regarded as binary.
172 A <a node="MIME charset">MIME charset</a> for simplified Chinese
173 mainly used in the Chinese mainland.
175 It is a <dref>8bit</dref> <dref>coded character set</dref> based on
176 <dref>ISO 2022</dref>. It extends <dref>ASCII</dref> to combine
177 <dref>GB 2312</dref>.
179 It is defined in <a node="RFC 1922">RFC 1922</a>.
185 A <a node="MIME charset">MIME charset</a> for traditional Chinese
186 mainly used in Taiwan and Hon Kong.
188 It is a <dref>8bit</dref> <dref>coded character set</dref> not based
189 on <dref>ISO 2022</dref>. It is a de-fact standard.
191 It is defined in <a node="RFC 1922">RFC 1922</a>.
193 cf. <report abbrev="BIG5" author="Institute for Information Industry"
194 title-en="Chinese Coded Character Set in Computer"
197 It corresponds to <dref>CNS 11643</dref>.
203 <dref>Graphic character set</dref>s for Chinese mainly written by
204 traditional Chinese mainly used in Taiwan and Hong Kong. It is a
205 standard of Taiwan. Currently there are seven <dref>94x94
206 character set</dref>.
208 Final byte of <dref>ISO 2022</dref> are following:
211 <dt>plane 1<dd>04/07 (`G')
212 <dt>plane 2<dd>04/08 (`H')
213 <dt>plane 3<dd>04/09 (`I')
214 <dt>plane 4<dd>04/10 (`J')
215 <dt>plane 5<dd>04/11 (`K')
216 <dt>plane 6<dd>04/12 (`L')
217 <dt>plane 7<dd>04/13 (`M')
220 <standard abbrev="CNS 11643-1992" title-en="Standard Interchange Code
221 for Generally-Used Chinese Characters" number="CNS
225 <h3> Coded character set, Character code
226 <node> coded character set
228 A set of unambiguous rules that establishes a character set and the
229 one-to-one relationship between the characters of the set and their
234 <node> code extension
236 The techniques for the encoding of characters that are not included in
237 the character set of a given code. (ex. <dref>ISO 2022</dref>)
240 <h3> Content-Disposition field
241 <node> Content-Disposition
243 A field to specify presentation of entity or file name. It is an
244 extension for <dref>MIME</dref>.
246 <rfc number="1806" type="Experimental" author="E R. Troost and
247 S. Dorner" title="Communicating Presentation Information
248 in Internet Messages: The Content-Disposition Header"
252 <h3> Content-Type field
253 <node> Content-Type field
255 Header field to represent information about body, such as <dref>media
256 type</dref>, <dref>MIME charset</dref>. It is defined in <dref>RFC
261 Historically, Content-Type field was proposed in RFC 1049. In it,
262 Content-Type did not distinguish type and subtype. However MIME
263 parser may be able to accept RFC 1049 based Content-Type as unknown
268 Content-Type field is defined as following:
271 ``Content-Type'' ``:'' <concept>type</concept> ``/''
272 <concept>subtype</concept> *( ``;'' <concept>parameter</concept> )
280 Content-Type: image/jpeg
286 Content-Type: text/plain; charset=iso-2022-jp
292 A part does not have content-type field is regarded as
296 Content-Type: text/plain; charset=us-ascii
303 And a part has unknown type/subtype is regarded as
307 Content-Type: application/octet-stream
317 In this document, `Emacs' means GNU Emacs released by FSF, and `emacs'
318 means any variants of GNU Emacs.
324 Representation non <dref>ASCII</dref> characters in header. It
325 is defined in <concept>RFC 2047</concept>.
327 <rfc number="2047" type="Standards Track" author="K. Moore"
328 title="MIME (Multipurpose Internet Mail Extensions) Part
329 Three: Message Header Extensions for Non-ASCII Text"
330 date="November 1996" obsolete="1521,1522,1590">
336 Method to insert whole <a node="RFC 822">Internet message</a> into
337 another Internet message.
339 For example, it is used to forward a message.
341 <cf node="message/rfc822">
347 A <dref>MIME charset</dref> for Korean.
349 It is a <dref>8bit</dref> <dref>coded character set</dref> based on
350 <dref>ISO 2022</dref>. It extends <dref>ASCII</dref> to combine
351 <dref>KS C5601</dref>.
353 It is defined in <dref>RFC 1557</dref>.
355 cf. <standard abbrev="euc-kr" org="Korea Industrial Standards
356 Association" title-en="Hangul Unix Environment"
357 number="KS C 5861" year="1992">
362 <rfc name="FTP" number="959" type="STD 9" author="Postel, J. and
363 J. Reynolds" title="File Transfer Protocol"
370 A <dref>94x94 character set</dref> for Chinese mainly written by
371 simplified Chinese mainly used in the Chinese mainland. It is a
374 Final byte of <dref>ISO 2022</dref> is 04/01 (`A').
376 <standard abbrev="GB 2312"
377 title-en="Code of Chinese Graphic Character Set for
378 Information Interchange - Primary Set" number="GB 2312"
385 A <dref>94x94 character set</dref> for Chinese as supplement to
386 <dref>GB 2312</dref>. It is a standard of China.
388 <standard abbrev="GB 8565.2" title-en="Information Processing - Coded
389 Character Sets for Text Communication - Part 2: Graphic
390 Characters used with Primary Set" number="GB 8565.2"
394 <h3> Graphic Character Set
395 <node> graphic character set
397 <dref>Coded character set</dref> for graphic characters.
403 A <a node="MIME charset">MIME charset</a> for simplified Chinese
404 mainly used in the Chinese mainland.
406 It extends <dref>ASCII</dref> to combine <dref>GB 2312</dref>, its
407 technique is like <dref>iso-2022-jp</dref>, but it is designed to be
408 ASCII printable to use special form for ESC sequence to designate GB
411 It is defined in RFC 1842 and 1843.
413 <rfc number="1842" type="Informational" author="Y. Wei, Y. Zhang,
414 J. Li, J. Ding and Y. Jiang" title="ASCII Printable
415 Characters-Based Chinese Character Encoding for Internet
416 Messages" date="August 1995">
417 <rfc number="1843" type="Informational" author="F. Lee" title="HZ - A
418 Data Format for Exchanging Files of Arbitrarily Mixed
419 Chinese and ASCII characters" date="August 1995">
425 It is a standard for character code structure and <dref>code
426 extension</dref> technique.
428 <standard abbrev="ISO 2022" org="International Organization for
429 Standardization (ISO)" title-en="Information Processing:
430 ISO 7-bit and 8-bit coded character sets: Code extension
431 techniques" number="ISO/IEC 2022" year="1994">
437 A <dref>MIME charset</dref> for Chinese.
439 It is a <dref>7bit</dref> <dref>coded character set</dref> based on
440 <dref>ISO 2022</dref>. It extends <dref>ASCII</dref> to combine
441 <dref>GB 2312</dref> and/or <a node="CNS 11643">CNS 11643 plain 1,
444 It is defined in <dref>RFC 1922</dref>.
448 <node> iso-2022-cn-ext
450 A <dref>MIME charset</dref> for Chinese.
452 It is a <dref>7bit</dref> <dref>coded character set</dref> based on
453 <dref>ISO 2022</dref>. It extends <dref>ASCII</dref> to combine
454 <dref>GB 2312</dref>, <a node="CNS 11643">CNS 11643 plain 1 .. 7</a>,
455 <dref>ISO-IR-165</dref> and other Chinese graphic character sets.
457 It is defined in <dref>RFC 1922</dref>.
460 MULE 2.3 and current XEmacs/mule can not use it correctly.
462 Emacs/mule can use it.
469 A <dref>MIME charset</dref> for Japanese.
471 It is a <dref>7bit</dref> <dref>coded character set</dref> based on
472 old <dref>ISO 2022</dref>. It switches <dref>ASCII</dref>, JIS
473 X0201-Latin, <a node="JIS C6226-1978">JIS X0208-1978</a> and <a
474 node="JIS X0208">JIS X0208-1983</a>.
476 It is defined in RFC 1468.
479 JIS X0208-1997? will define it in annex as non-<dref>ISO 2022</dref>
483 <rfc name="iso-2022-jp" number="1468" author="Murai J., M. Crispin,
484 and E. van der Poel" title="Japanese Character Encoding
485 for Internet Messages" date="June 1993">
491 A <dref>MIME charset</dref>, which is a multilingual extension of
492 <dref>iso-2022-jp</dref>.
494 It is defined in RFC 1554.
496 <rfc name="iso-2022-jp-2" number="1554" type="Informational"
497 author="Ohta M. and Handa K." title="ISO-2022-JP-2:
498 Multilingual Extension of ISO-2022-JP" date="December
505 A <a node="MIME charset">MIME charset</a> for Korean language (Hangul
508 It is based on <dref>ISO 2022</dref> <dref>code extension</dref>
509 technique to extend <dref>ASCII</dref> to use <dref>KS C5601</dref> as
510 <dref>7bit</dref> text.
512 It is defined in <dref>RFC 1557</dref>.
518 <standard abbrev="ISO 646" org="International Organization for
519 Standardization (ISO)" title-en="Information technology:
520 ISO 7-bit coded character set for information
521 interchange" number="ISO/IEC 646" year="1991">
527 <standard abbrev="ISO 8859-1" org="International Organization for
528 Standardization (ISO)" title-en="Information Processing
529 -- 8-bit Single-Byte Coded Graphic Character Sets --
530 Part 1: Latin Alphabet No.1" number="ISO 8859-1"
537 <concept>iso-8859-1</concept> is a <dref>MIME charset</dref> for
538 west-European languages written by Latin script.
540 It is a <dref>8bit</dref> <dref>coded character set</dref> based on
541 <dref>ISO 2022</dref>. It extends <dref>ASCII</dref> to combine
542 <dref>ISO 8859-1</dref>.
544 It is defined in <dref>RFC 2046</dref>.
550 <standard abbrev="ISO 8859-2" org="International Organization for
551 Standardization (ISO)" title-en="Information Processing
552 -- 8-bit Single-Byte Coded Graphic Character Sets --
553 Part 2: Latin alphabet No.2" number="ISO 8859-2"
560 <concept>iso-8859-2</concept> is a <dref>MIME charset</dref> for
561 east-European languages written by Latin script.
563 It is a <dref>8bit</dref> <dref>coded character set</dref> based on
564 <dref>ISO 2022</dref>. It extends <dref>ASCII</dref> to combine
565 <dref>ISO 8859-2</dref>.
567 It is defined in <dref>RFC 2046</dref>.
573 <standard abbrev="ISO 8859-3" org="International Organization for
574 Standardization (ISO)" title-en="Information
575 Processing -- 8-bit Single-Byte Coded Graphic
576 Character Sets -- Part 3: Latin alphabet No.3"
577 number="ISO 8859-3" year="1988">
583 <standard abbrev="ISO 8859-4" org="International Organization for
584 Standardization (ISO)" title-en="Information
585 Processing -- 8-bit Single-Byte Coded Graphic
586 Character Sets -- Part 4: Latin alphabet No.4"
587 number="ISO 8859-4" year="1988">
593 <standard abbrev="ISO 8859-5" org="International Organization for
594 Standardization (ISO)" title-en="Information Processing
595 -- 8-bit Single-Byte Coded Graphic Character Sets --
596 Part 5: Latin/Cyrillic alphabet" number="ISO 8859-5"
603 <concept>iso-8859-5</concept> is a <dref>MIME charset</dref> for
606 It is a <dref>8bit</dref> <dref>coded character set</dref> based on
607 <dref>ISO 2022</dref>. It extends <dref>ASCII</dref> to combine
608 <dref>ISO 8859-5</dref>.
610 It is defined in <dref>RFC 2046</dref>.
616 <standard abbrev="ISO 8859-6" org="International Organization for
617 Standardization (ISO)" title-en="Information
618 Processing -- 8-bit Single-Byte Coded Graphic
619 Character Sets -- Part 6: Latin/Arabic alphabet"
620 number="ISO 8859-6" year="1987">
626 <standard abbrev="ISO 8859-7" org="International Organization for
627 Standardization (ISO)" title-en="Information Processing
628 -- 8-bit Single-Byte Coded Graphic Character Sets --
629 Part 7: Latin/Greek alphabet" number="ISO 8859-7"
636 <concept>iso-8859-7</concept> is a <dref>MIME charset</dref> for
639 It is a <dref>8bit</dref> <dref>coded character set</dref> based on
640 <dref>ISO 2022</dref>. It extends <dref>ASCII</dref> to combine
641 <dref>ISO 8859-7</dref>.
643 It is defined in RFC 1947.
645 <rfc name="iso-8859-7" number="1947" type="Informational"
646 author="D. Spinellis" title="Greek Character Encoding
647 for Electronic Mail Messages" date="May 1996">
653 <standard abbrev="ISO 8859-8" org="International Organization for
654 Standardization (ISO)" title-en="Information
655 Processing -- 8-bit Single-Byte Coded Graphic
656 Character Sets -- Part 8: Latin/Hebrew alphabet"
657 number="ISO 8859-8" year="1988">
663 <standard abbrev="ISO 8859-9" org="International Organization for
664 Standardization (ISO)" title-en="Information
665 Processing -- 8-bit Single-Byte Coded Graphic
666 Character Sets -- Part 9: Latin alphabet No.5"
667 number="ISO 8859-9" year="1990">
670 <h3> ISO-IR-165, CCITT Extended GB <node> ISO-IR-165
672 A <dref>94x94-character set</dref> for Chinese mainly written by
673 simplified Chinese mainly used in the Chinese mainland registered by
676 It consists of <dref>GB 2312</dref>, <dref>GB 8865.2</dref> and
677 additional 150 characters.
679 Final byte of <dref>ISO 2022</dref> is 04/05 (`E').
685 It defines two <dref>94-character set</dref>, for Latin script (a
686 variant of <dref>ISO 646</dref>) and Katakana script, and 7bit and
687 8bit <dref>coded character set</dref>s.
689 It was renamed from <concept>JIS C6220-1976</concept>.
691 <standard abbrev="JIS X0201-1976" org="Japanese Standards Association"
692 title-en="Code for Information Interchange" number="JIS
695 In addition, revised version will be published in 1997.
697 <standard abbrev="JIS X0201-1997?" org="Japanese Standards
698 Association" title-en="7-bit and 8-bit coded character
699 sets for information interchange" number="JIS X 0201"
706 A <dref>94x94-character set</dref> for Japanese. It was renamed to
709 <cf node="JIS X0208">
715 A <dref>94x94-character set</dref> for Japanese. Japanese standard.
716 It was published in 1978, and revised in 1983 and 1990. In the
717 Internet message, 1983 edition is major.
719 JIS X0208 contains some symbols, numbers, primary Latin script,
720 Hiragana script, Katakana script, Greek script, Cyrillic script, box
721 drawing parts, Kanji (Ideographic characters used in Japanese).
722 Notice that some symbols and box drawing parts were added in 1983 and
723 some Kanjis were changed or swapped code points. So 1978 edition and
724 1983 edition are regarded as different graphic character set.
726 1990 edition added some characters, so designation of 1990 edition
727 requires `identify revised registration' sequence, ESC 02/06 4/0 as
728 prefix of designation sequence.
730 <standard abbrev="JIS X0208-1978" org="Japanese Standards Association"
731 title-en="Code of the Japanese graphic character set for
732 information interchange" number="JIS C6226" year="1978">
733 <standard abbrev="JIS X0208-1983,1990" org="Japanese Standards
734 Association" title-en="Code of the Japanese graphic
735 character set for information interchange" number="JIS
736 X0208" year="1983,1990">
739 In addition, revised version will be published in 1997. (It does not
740 change graphic character set)
742 <standard abbrev="JIS X0208-1997?" org="Japanese Standards
743 Association" title-en="7-bit and 8-bit double byte coded
744 Kanji sets for information interchange" number="JIS X
745 0208" year="1997? draft">
751 A <dref>94x94 character set</dref> for Japanese as supplement to
752 <dref>JIS X0208</dref>. It is a standard of Japan.
754 Final byte of <dref>ISO 2022</dref> is 04/04 (`D').
760 A <dref>MIME charset</dref> for Cyrillic script for Russian or other
763 It is a 1 byte <dref>8bit</dref> <dref>coded character set</dref>, not
764 based on <dref>ISO 2022</dref>. It is a de-fact standard.
766 It is defined in RFC 1489.
768 <rfc number="1489" author="A. Chernov" title="Registration of a
769 Cyrillic Character Set" date="July 1993">
775 A <dref>94x94-character set</dref> for Korean language (Hangul
776 script). Korean Standard. Final byte of <dref>ISO 2022</dref> is
779 <standard abbrev="KS C5601" org="Korea Industrial Standards
780 Association" title-en="Code for Information Interchange
781 (Hangul and Hanja)" number="KS C 5601" year="1987">
787 <concept>media type</concept> specifies the nature of the data in the
788 body of <dref>MIME</dref> <dref>entity</dref>. It consists of
789 <concept>type</concept> and <concept>subtype</concept>. It is defined
790 in <dref>RFC 2046</dref>.
792 Currently there are following types:
795 <li><concept>text</concept>
797 <li><concept>image</concept>
799 <li><concept>audio</concept>
801 <li><concept>video</concept>
803 <li><concept>application</concept>
805 <li><a node="multipart"><concept>multipart</concept></a>
807 <li><concept>message</concept>
811 And there are various subtypes, for example, application/octet-stream,
812 audio/basic, image/jpeg, <dref>multipart/mixed</dref>,
813 <dref>text/plain</dref>, video/mpeg...
815 You can refer registered media types at <a
816 href="ftp://ftp.isi.edu/in-notes/iana/assignments/media-types">MEDIA
819 In addition, you can use private type or subtype using
820 <concept>x-token</concept>, which as the prefix `x-'. However you can
821 not use them in public.
823 <cf node="Content-Type field">
829 In this document, it means mail defined in <dref>RFC 822</dref> and
830 news message defined in <dref>RFC 1036</dref>.
834 <node> message/rfc822
836 <concept>message/rfc822</concept> indicates that the body contains an
837 encapsulated message, with the syntax of an <dref>RFC 822</dref>
838 message. It is the replacement of traditional <dref>RFC 934</dref>
839 encapsulation. It is defined in <dref>RFC 2046</dref>.
845 Application program of tm-view to process for specified <dref>media
846 type</dref> when user plays an entity.
848 There are two kinds of methods, <concept>internal method</concept> and
849 <concept>external method</concept>. Internal method is written by
850 Emacs Lisp. External method is written by C or script languages and
851 called by asynchronous process call.
853 <cf file="tm-view-en" node="method">
859 MIME stands for <concept>Multipurpose Internet Mail
860 Extensions</concept>, it is an extension for <dref>RFC 822</dref>.
862 According to RFC 2045:
864 STD 11, RFC 822, defines a message representation protocol specifying
865 considerable detail about US-ASCII message headers, and leaves the
866 message content, or message body, as flat US-ASCII text. This set of
867 documents, collectively called the Multipurpose Internet Mail
868 Extensions, or MIME, redefines the format of messages to allow for
871 <li>textual message bodies in character sets other than US-ASCII,
873 <li>an extensible set of different formats for non-textual message
876 <li>multi-part message bodies, and
878 <li>textual header information in character sets other than US-ASCII.
882 It is defined in <dref>RFC 2045</dref>, <dref>RFC 2046</dref>, <a
883 node="encoded-word">RFC 2047</a>, <dref>RFC 2048</dref> and <dref>RFC
890 <dref>Coded character set</dref> used in <dref>Content-Type
891 field</dref> or charset parameter of <a
892 node="encoded-word">encoded-word</a>.
894 It is defined in <dref>RFC 2045</dref>.
896 <dref>iso-2022-jp</dref> or <dref>euc-kr</dref> are kinds of it. (In
897 this document, MIME charsets are written by small letters to
898 distinguish <dref>graphic character set</dref>. For example, ISO
899 8859-1 is a graphic character set, and iso-8859-1 is a MIME charset)
905 <concept>Message Transfer Agent</concept>. It means mail transfer
906 programs (ex. sendmail) and news servers.
914 <concept>Message User Agent</concept>. It means mail readers and news
923 Multilingual extension of GNU <dref>Emacs</dref> by HANDA Ken'ichi et
926 <inproc abbrev="MULE" author="Nishikimi M., Handa K. and Tomura S."
927 title-en="Mule: MULtilingual Enhancement to GNU Emacs"
928 book-en="Proc. of INET'93" date="August, 1993">
930 Now, FSF and HANDA Ken'ichi et al. are working to merge MULE feature
931 into Emacs, there is <a
932 href="ftp://etlport.etl.go.jp/pub/mule/mule-19.33-delta.taz">alpha
933 version of mule merged emacs</a>.
935 In addition, there is XEmacs with mule feature.
937 So now, there are 3 kinds of mule variants.
939 In this document, <concept>mule</concept> means any mule variants,
940 <concept>MULE</concept> means original MULE (..2.3),
941 <concept>Emacs/mule</concept> means mule merged Emacs,
942 <concept>XEmacs/mule</concept> means XEmacs with mule feature.
948 <concept>multipart</concept> means <dref>media type</dref> to insert
949 multiple <dref>entities</dref> in a single body. Or it also indicates
950 a message consists of multiple entities.
952 There are following subtypes registered in <dref>RFC 2046</dref>:
955 <li><dref>multipart/mixed</dref>
956 <li><dref>multipart/alternative</dref>
957 <li><dref>multipart/digest</dref>
958 <li><dref>multipart/parallel</dref>
962 and registered in <a node="Security multipart">RFC 1847</a>:
965 <li><dref>multipart/signed</dref>
966 <li><dref>multipart/encrypted</dref>
970 <h3> multipart/alternative
971 <node> multipart/alternative
973 <concept>multipart/digest</concept> is one of <dref>multipart</dref>
974 media types. This type is syntactically identical to
975 <dref>multipart/mixed</dref>, but the semantics are different. In
976 particular, each of the body parts is an ``alternative'' version of
977 the same information.
982 <h3> multipart/digest
983 <node> multipart/digest
985 <concept>multipart/digest</concept> is one of <dref>multipart</dref>
986 media types. This type is syntactically identical to
987 <dref>multipart/mixed</dref>, but the semantics are different. In
988 particular, in a digest, the default Content-Type value for a body
989 part is changed from <dref>text/plain</dref> to
990 <dref>message/rfc822</dref>.
992 This is the replacement of traditional <dref>RFC 1153</dref> based
993 <dref>encapsulation</dref>.
998 <h3> multipart/encrypted
999 <node> multipart/encrypted
1001 It is a <dref>Security multipart</dref> defined in
1002 RFC 1847, used to represent encrypted message.
1004 <cf node="PGP/MIME">
1007 <h3> multipart/mixed
1008 <node> multipart/mixed
1010 Primary and default subtype of <dref>multipart</dref>, it is used when
1011 the body parts are independent and need to be bundled in a particular
1014 <cf node="RFC 2046">
1017 <h3> multipart/parallel
1018 <node> multipart/parallel
1020 <concept>multipart/parallel</concept> is a subtype of
1021 <dref>multipart</dref>. This type is syntactically identical to
1022 <dref>multipart/mixed</dref>, but the semantics are different. In
1023 particular, in a parallel entity, the order of body parts is not
1026 <cf node="RFC 2046">
1029 <h3> multipart/signed
1030 <node> multipart/signed
1032 It is a <dref>Security multipart</dref> defined in
1033 RFC 1847, used to represent signed message.
1035 <cf node="PGP/MIME">
1041 A public key encryption program by Phil Zimmermann. It provides
1042 encryption and signature for <dref>message</dref>. PGP stands for
1043 <concept>Pretty Good Privacy</concept>.
1045 Traditional PGP uses <dref>RFC 934</dref> <dref>encapsulation</dref>.
1046 It is conflict with <dref>MIME</dref>. So <dref>PGP/MIME</dref> is
1047 defined. On the other hand, <dref>PGP-kazu</dref> was proposed to use
1048 PGP encapsulation in MIME. But it is obsoleted.
1050 <rfc name="PGP" number="1991" type="Informational" author="D. Atkins,
1051 W. Stallings and P. Zimmermann" title="PGP Message
1052 Exchange Formats" date="August 1996">
1059 In this document, <concept>PGP-kazu</concept> means a method to use
1060 traditional PGP encapsulation in <dref>MIME</dref>, proposed by
1063 PGP-kazu defines a <dref>media type</dref>,
1064 <concept>application/pgp</concept>.
1066 In application/pgp entity, PGP <dref>encapsulation</dref> is used.
1067 PGP encapsulation conflicts with MIME, so it requires PGP-processing
1068 to read as MIME message.
1070 It was obsoleted, so you should use <dref>PGP/MIME</dref>. However if
1071 you want to use traditional PGP message, it might be available.
1077 <dref>PGP</dref> and <dref>MIME</dref> integration proposed by Michael
1080 It is based on <a node="Security multipart">RFC 1847</a>, so it is
1081 harmonious with MIME, but it is not compatible with traditional PGP
1082 encapsulation. However MIME MUA can read PGP/MIME signed message even
1083 if it does not support PGP/MIME.
1085 <dref>PGP/MIME</dref> will be standard of PGP message.
1087 <rfc name="PGP/MIME" number="2015" type="Standards Track"
1088 author="M. Elkins" title="MIME Security with Pretty Good
1089 Privacy (PGP)" date="October 1996">
1092 <h3> Quoted-Printable
1093 <node> Quoted-Printable
1095 <concept>Quoted-Printable</concept> is a transfer encoding method of
1096 <dref>MIME</dref> defined in <dref>RFC 2045</dref>.
1098 If the data being encoded are mostly US-ASCII text, the encoded form
1099 of the data remains largely recognizable by humans.
1107 <rfc name="SMTP" number="821" type="STD 10" author="J. Postel"
1108 title="Simple Mail Transfer Protocol" date="August
1115 A RFC defines format of Internet mail message, mainly <concept>message
1120 news message is based on RFC 822, so <concept>Internet
1121 message</concept> may be more suitable than <concept>Internet
1125 <rfc number="822" type="STD 11" author="D. Crocker" title="Standard
1126 for the Format of ARPA Internet Text Messages"
1133 A RFC defines an <a node="encapsulation">
1134 <concept>encapsulation</concept></a> method for <a node="RFC
1135 822">Internet mail</a>.
1137 It conflicts with <dref>MIME</dref>, so you should use
1138 <dref>message/rfc822</dref>.
1140 <rfc number="934" author="Marshall T. Rose and Einar A. Stefferud"
1141 title="Proposed Standard for Message Encapsulation"
1142 date="January 1985">
1148 A RFC defines format of USENET message. It is a subset of <dref>RFC
1149 822</dref>. It is not Internet standard, but a lot of netnews
1150 excepting Usenet uses it.
1152 <rfc name="USENET" number="1036" author="M. Horton and R. Adams"
1153 title="Standard for Interchange of USENET Messages"
1154 date="December 1987" obsolete="850">
1160 <rfc number="1153" author="F. Wancho" title="Digest Message Format"
1167 A RFC defines <dref>MIME charset</dref>s for Korean,
1168 <dref>euc-kr</dref> and <dref>iso-2022-kr</dref>.
1170 <rfc number="1557" type="Informational" author="U. Choi, K. Chon and
1171 H. Park" title="Korean Character Encoding for Internet
1172 Messages" date="December 1993">
1178 A RFC defines <dref>MIME charset</dref>s for Chinese,
1179 <dref>iso-2022-cn</dref>, <dref>iso-2022-cn-ext</dref>,
1180 <dref>cn-gb</dref>, <dref>cn-big5</dref>, etc.
1182 In addition, it defines additional parameters of <dref>Content-Type
1183 field</dref> field, <concept>charset-edition</concept> and
1184 <concept>charset-extension</concept>.
1186 <rfc number="1922" type="Informational" author="Zhu, HF., Hu, DY.,
1187 Wang, ZG., Kao, TC., Chang, WCH. and Crispin, M."
1188 title="Chinese Character Encoding for Internet Messages"
1195 <rfc number="2045" type="Standards Track" author="N. Freed and
1196 N. Borenstein" title="Multipurpose Internet Mail
1197 Extensions (MIME) Part One: Format of Internet Message
1198 Bodies" date="November 1996" obsolete="1521, 1522,
1205 <rfc number="2046" type="Standards Track" author="N. Freed and
1206 N. Borenstein" title="Multipurpose Internet Mail
1207 Extensions (MIME) Part Two: Media Types"
1208 date="November 1996" obsolete="1521, 1522, 1590">
1214 <rfc number="2048" type="Standards Track" author="N. Freed, J. Klensin
1215 and J. Postel" title="Multipurpose Internet Mail
1216 Extensions (MIME) Part Four: Registration Procedures"
1217 date="November 1996" obsolete="1521, 1522, 1590">
1223 <rfc number="2049" type="Standards Track" author="N. Freed and
1224 N. Borenstein" title="Multipurpose Internet Mail
1225 Extensions (MIME) Part Five: Conformance Criteria and
1226 Examples" date="November 1996" obsolete="1521, 1522,
1233 A textual data represented by only <dref>coded character set</dref>.
1234 It does not have information about font or typesetting.
1235 <cf node="text/plain">
1238 <h3> Security multipart
1239 <node> Security multipart
1241 A format to represent signed/encrypted message in <dref>MIME</dref>.
1243 It defines two multipart media types, <a
1244 node="multipart/signed"><concept>multipart/signed</concept></a> and <a
1245 node="multipart/encrypted"><concept>multipart/encrypted</concept></a>.
1247 MOSS and <dref>PGP/MIME</dref> are based on it.
1249 <rfc name="Security multipart" number="1847" type="Standards Track"
1250 author="James Galvin, Gale Murphy, Steve Crocker and Ned
1251 Freed" title="Security Multiparts for MIME:
1252 Multipart/Signed and Multipart/Encrypted" date="October
1257 <node> text/enriched
1259 <rfc name="text/enriched" number="1896" author="P. Resnick and
1260 A. Walker" title="The text/enriched MIME Content-type"
1261 date="February 1996" obsolete="1563">
1267 <concept>text/plain</concept> is a <dref>media type</dref> for
1268 <dref>plain text</dref>, defined in <dref>RFC 2046</dref>.
1270 The default media type of ``text/plain; charset=us-ascii'' for
1271 Internet mail describes existing Internet practice. That is, it is
1272 the type of body defined by <dref>RFC 822</dref>.
1274 <cf node="MIME charset"><cf node="us-ascii">
1280 A libraries to provide user interface about <dref>MIME</dref> for
1281 emacs. tm stands for `tools for MIME'.
1283 <memo title="Unimportant notice(^-^;">
1286 <li> tm may not stand for ``tiny-mime''(^-^;
1287 <li> tm may not stand for initial of an author (^-^;
1288 <li> ``Tools for MIME'' may be strained (^-^;
1296 <dref>MUA</dref> or MUA extender using <a node="tm-kernel">tm</a>.
1298 <concept>tm oomori package</concept> has following extenders:
1301 <li><a file="tm-mh-e-en"><concept>tm-mh-e</concept></a>
1302 for <a file="mh-e">mh-e</a>
1303 <li><a file="tm-gnus_en"><concept>tm-gnus</concept></a> for GNUS
1304 <li><a file="gnus-mime-en"><concept>gnus-mime</concept></a> for Gnus
1305 <li><a file="tm-vm_en"><concept>tm-vm</concept></a> for VM
1306 <li><concept>tm-rmail</concept> for RMAIL
1313 A <a node="MIME charset">MIME charset</a> for primary Latin script
1314 mainly written by English or other languages.
1316 It is a 7bit <dref>coded character set</dref> based on <dref>ISO
1317 2022</dref>, it contains only
1318 <dref>ASCII</dref> and <dref>code extension</dref> is not allowed.
1320 It is standard coded character set of Internet mail. If MIME charset
1321 is not specified, <concept>us-ascii</concept> is used as default.
1323 In addition, <concept>ASCII</concept> of <dref>RFC 822</dref> should
1324 be interpreted as us-ascii.
1330 In the tm package, two files, <file>mime-setup.el</file> and
1331 <file>tm-setup.el</file>, are provided to ease the setup.
1333 The <file>mime-setup.el</file> is used for the whole MIME related
1334 setup including MIME encoding using <file>tm-edit.el</file>, while
1335 <file>tm-setup.el</file> is used to set up tm-MUA only.
1341 If you want normal setting, please use <concept>mime-setup</concept>.
1342 For example, please insert following into <file>~/.emacs</file>:
1349 As <file>mime-setup.el</file> loads <file>tm-setup.el</file>, you
1350 don't need to load <file>tm-setup.el</file> when you use
1351 <file>mime-setup.el</file> (Description of old version of Gnus FAQ is
1358 You can set up the <concept>automatic signature selection
1359 tool</concept> using <file>mime-setup</file>. If you want to
1360 automatically select the signature file depending on how the message
1361 headers show, add lines like shown below to your .emacs (Refer to the
1362 reference manual of <file>signature.el</file> for more details).
1365 (setq signature-file-alist
1366 '((("Newsgroups" . "jokes") . "~/.signature-jokes")
1367 (("Newsgroups" . ("zxr" "nzr")) . "~/.signature-sun")
1368 (("To" . ("ishimaru" "z-suzuki")) . "~/.signature-sun")
1369 (("To" . "tea") . "~/.signature-jokes")
1370 (("To" . ("sim" "oku" "takuo")) . "~/.signature-formal")
1375 <defvar name="mime-setup-use-signature">
1377 If it is not <code>nil</code>, <file>mime-setup.el</file> sets up for
1378 <file>signature.el</file>. Its default value is <code>t</code>.
1382 <defvar name="mime-setup-signature-key-alist">
1384 It defines key to bind signature inserting command for each
1385 major-mode. Its default value is following:
1388 ((mail-mode . "\C-c\C-w"))
1392 If you want to change, please rewrite it. For example:
1395 (set-alist 'mime-setup-signature-key-alist
1396 'news-reply-mode "\C-c\C-w")
1402 <defvar name="mime-setup-default-signature-key">
1404 If key to bind signature inserting command for a major-mode is not
1405 found from <code>mime-setup-signature-key-alist</code>, its value is
1406 used as key. Its default value is <code>"\C-c\C-s"</code>.
1410 <h3> Notices for GNUS
1411 <node> Notice about GNUS
1413 When <file>mime-setup.el</file> sets up for <file>signature.el</file>,
1414 it sets variable <code>gnus-signature-file</code> to <code>nil</code>.
1415 Therefore GNUS does not insert signature automatically when it is
1416 sending a message. Reason of this setting is following:
1418 GNUS inserts signature after <file>tm-edit.el</file> composed as MIME
1419 message. Therefore signature inserted by GNUS is not processed as a
1420 valid MIME part. In particular, for multipart message, signature
1421 places in outside of MIME part. So MIME MUA might not display it.
1423 Other notice is key bind. In historical reason, key bind to insert
1424 signature is <kbd>C-c C-s</kbd> (like <a file="mh-e">mh-e</a>) instead
1425 of <kbd>C-c C-w</kbd>. If you change to GNUS's default, please set
1429 (set-alist 'mime-setup-signature-key-alist 'news-reply-mode "\C-c\C-w")
1433 <h2> Setting not to use tm-edit
1436 <concept>tm-setup</concept> only sets up <a node="tm-MUA">tm-MUA</a>s.
1437 In other words, it is a setting to avoid to use tm-edit. If you don't
1438 want to compose MIME message or want to use other MIME composer,
1439 please use it instead of <file>mime-setup.el</file>.
1441 For example, please insert following into <file>~/.emacs</file>:
1451 If you use <file>mime-setup.el</file>, you you don't need to load
1452 <file>tm-setup.el</file>.
1457 <node> setting for VM
1459 If you use <concept>vm</concept>, please insert following in
1467 <memo title="Notice">
1469 If you use <concept>BBDB</concept>, please insert <code>(require
1470 'tm-vm)</code> <bf>after</bf> <code>(bbdb-insinuate-vm)</code>.
1474 <h2> Setting up without loading provided setup files
1475 <node> manual setting
1477 You may find the valuable hints in <file>mime-setup.el</file> or
1478 <file>tm-setup.el</file> if you want to set up MIME environment
1479 without loading the tm-provided setup files.
1483 Current tm provides some convenient features to expect tm-edit, and
1484 they can not use if <file>mime-setup.el</file> is not used. If you
1485 want to set up original setting to use tm-edit, please declare
1489 (provide 'mime-setup)
1495 <h1> How to report bug and about mailing list of tm
1498 If you write bug-reports and/or suggestions for improvement, please
1499 send them to the tm Mailing List:
1502 <li> Japanese <mail>bug-tm-ja@chamonix.jaist.ac.jp</mail>
1503 <li> English <mail>bug-tm-en@chamonix.jaist.ac.jp</mail>
1507 Notice that, we does not welcome bug reports about too old version.
1508 Bugs in old version might be fixed. So please try latest version at
1511 You should write <concept>good bug report</concept>. If you write
1512 only ``tm does not work'', we can not find such situations. At least,
1513 you should write name, type, variants and version of OS, emacs, tm and
1514 MUA, and setting. In addition, if error occurs, to send backtrace is
1515 very important. <cf file="emacs" node="Bugs">
1517 Bug may not appear only your environment, but also in a lot of
1518 environment (otherwise it might not bug). Therefor if you send mail
1519 to author directly, we must write a lot of mails. So please send mail
1520 to address for tm bugs instead of author.
1522 Via the tm ML, you can report tm bugs, obtain the latest release of
1523 tm, and discuss future enhancements to tm. To join the tm ML, send
1527 <li> Japanese <mail>tm-ja-admin@chamonix.jaist.ac.jp</mail>
1528 <li> English <mail>tm-en-admin@chamonix.jaist.ac.jp</mail>
1532 Since the user registration is done manually, please write the mail
1533 body in human-recognizable language (^_^).
1537 <node> Concept Index
1543 <node> Variable Index