+Wed Dec 4 05:42:36 1996 MORIOKA Tomohiko <morioka@jaist.ac.jp>
+
+ * emu: Version 7.37 was released.
+ * bitmap-mule: Version 7.15 was released.
+ * tl: Version 7.61.14 was released.
+ * MU: Version 0.36 was released.
+ * tm: Version 7.95 was released.
+ * tm-vm: Version 7.76 was released.
+ * gnus-mime: Version 0.12.1 was released.
+ * sinfo: Version 3.3 was released.
+
+Wed Dec 4 05:32:48 1996 MORIOKA Tomohiko <morioka@jaist.ac.jp>
+
+ * Makefile: Add bitmap-mule/.
+
+Wed Dec 4 05:15:10 1996 MORIOKA Tomohiko <morioka@jaist.ac.jp>
+
+ * Makefile: gnus-mime/*.ol and gnus-mime/*.tex were abolished.
+
+Wed Dec 4 05:13:13 1996 MORIOKA Tomohiko <morioka@jaist.ac.jp>
+
+ * Makefile: gnus-mime/mk-gnus-mime -> gnus-mime/Gnus-MIME-MK.
+
+Wed Dec 4 05:10:43 1996 MORIOKA Tomohiko <morioka@jaist.ac.jp>
+
+ * Makefile: Add sinfo (SGML based Emacs info system).
+
+Wed Dec 4 04:49:14 1996 MORIOKA Tomohiko <morioka@jaist.ac.jp>
+
+ * tm-ew-d.el, tm-ew-e.el:
+ - RFC 1522 -> RFC 2047.
+ - Keywords were modified.
+
+ * tm-edit.el: RFC 1521 and 1522 -> RFC 2045, 2046, 2047, 2048 and
+ 2049.
+
+Mon Dec 2 22:02:43 1996 MORIOKA Tomohiko <morioka@jaist.ac.jp>
+
+ * tm-ew-d.el (mime-eword/decode-region): Regexp to find
+ linear-white-space divides two encoded-words was changed.
+
+Mon Dec 2 19:15:36 1996 MORIOKA Tomohiko <morioka@jaist.ac.jp>
+
+ * doc/tm-ja.sgml:
+ - RFC 1521, 1522 -> RFC 2045 .. 2049.
+ - Delete ``What is MIME?'' and ``How is MIME?''.
+
+Mon Dec 2 16:07:55 1996 MORIOKA Tomohiko <morioka@jaist.ac.jp>
+
+ * README.en:
+ - Separate tm-gnus and gnus-mime.
+ - RFC 1522 -> RFC 2047.
+
+Mon Dec 2 15:29:41 1996 Shuhei KOBAYASHI <shuhei-k@jaist.ac.jp>
+
+ * tm-ew-d.el (mime/unfolding): Save LWSP-char.
+
+Sat Nov 30 18:40:09 1996 Shuhei KOBAYASHI <shuhei-k@jaist.ac.jp>
+
+ * tm-bbdb.el: Trailing whitespace was stripped.
+
+Fri Nov 29 23:41:10 1996 Shuhei KOBAYASHI <shuhei-k@jaist.ac.jp>
+
+ * tm-bbdb.el (tm-bbdb/pop-up-bbdb-buffer): Use `framepop-banish'
+ if framepop is enabled.
+ (Suggested by Marc Girod <girod@trshp.trs.ntc.nokia.com>
+ [tm-en:975])
+
+Wed Nov 27 15:15:16 1996 MORIOKA Tomohiko <morioka@jaist.ac.jp>
+
+ * Makefile: tl/etl8x16-bitmap.bdf was moved to ../bitmap-mule/.
+
+Wed Nov 27 11:50:51 1996 MORIOKA Tomohiko <morioka@jaist.ac.jp>
+
+ * Makefile: tm/inst-tm was renamed to tm/TM-MK.
+
+Wed Nov 27 11:48:53 1996 MORIOKA Tomohiko <morioka@jaist.ac.jp>
+
+ * TM-MK: Renamed from inst-tm.
+
+Wed Nov 27 11:47:49 1996 MORIOKA Tomohiko <morioka@jaist.ac.jp>
+
+ * inst-tm: Add ../bitmap/.
+
+Wed Nov 27 11:45:46 1996 MORIOKA Tomohiko <morioka@jaist.ac.jp>
+
+ * TM-CFG: `TM_PACKAGE_PREFIX' and `TM_LISPDIR' were abolished.
+
+Tue Nov 26 18:45:51 1996 Shuhei KOBAYASHI <shuhei-k@jaist.ac.jp>
+
+ * tm-bbdb.el: 'bbdb is required implicitly.
+
+ * tm-ew-d.el (mime/decode-encoded-word): Catch errors.
+ (mime/decode-encoded-text): Check validity of encoded-word.
+
+ * tm-def.el (base64-token-regexp): padding character (`=') was
+ removed.
+ (base64-token-padding-regexp): New variable; including padding
+ character.
+ (mime/B-encoded-text-regexp): Use `base64-token-padding-regexp'.
+
+Tue Nov 26 12:45:24 1996 MORIOKA Tomohiko <morioka@jaist.ac.jp>
+
+ * TM-CFG: add ../bitmap-mule/.
+
+Mon Nov 18 12:11:15 1996 MORIOKA Tomohiko <morioka@jaist.ac.jp>
+
+ * Makefile: forgot to add gnus-mime/mk-gnus-mime. (^_^;;;
+
+\f
Sat Nov 16 07:51:41 1996 MORIOKA Tomohiko <morioka@jaist.ac.jp>
* emu: Version 7.34 was released.
* tm-gnus: Version 7.27.3 was released.
* gnus-mime: Version 0.12 was released.
+ * Makefile: Add emu package.
+
* tm-edit.el (mime-editor/signing-type): Use `pgp-elkins' as
default value.
(mime-editor/encrypting-type): Use `pgp-elkins' as default value.
#
-# $Id: Makefile,v 7.30 1996/10/16 00:35:29 morioka Exp morioka $
+# $Id: Makefile,v 7.40 1996/12/04 05:42:36 morioka Exp morioka $
#
-VERSION = 7.94
+VERSION = 7.95
SHELL = /bin/sh
MAKE = make
EXEC_PREFIX =
TM_FILES = tm/README.en tm/ChangeLog \
- tm/Makefile tm/inst-tm tm/TM-ELS tm/TM-CFG \
+ tm/Makefile tm/TM-MK tm/TM-ELS tm/TM-CFG \
tm/tm-def.el \
tm/tm-eword.el tm/tm-ew-d.el tm/tm-ew-e.el \
tm/tm-view.el tm/tm-parse.el \
tm-mh-e/*.ol tm-mh-e/*.texi tm-mh-e/*.info tm-mh-e/*.tex
GNUS_MIME_FILES = gnus-mime/Makefile gnus-mime/*-path \
- gnus-mime/Gnus-MIME-ELS gnus-mime/*.el \
+ gnus-mime/Gnus-MIME-* gnus-mime/*.el \
gnus-mime/*.sgml gnus-mime/*.texi gnus-mime/*.info \
- gnus-mime/*.ol gnus-mime/*.tex gnus-mime/ChangeLog
+ gnus-mime/ChangeLog
TM_GNUS_FILES = tm-gnus/Makefile tm-gnus/*-path tm-gnus/mk-tgnus \
tm-gnus/TGNUS-ELS tm-gnus/*.el tm-gnus/ChangeLog \
MEL_FILES = mel/*.el mel/Makefile mel/mk-mel mel/MEL-ELS mel/ChangeLog
-MU_FILES = mu/*.el mu/MU-ELS mu/ChangeLog
+MU_FILES = mu/MU-ELS mu/*.el mu/ChangeLog
-TL_FILES = tl/README.en tl/Makefile tl/mk-tl tl/TL-ELS \
- tl/*.el tl/*.bdf \
- tl/doc/*.ol tl/doc/*.tex tl/doc/*.texi tl/ChangeLog
+TL_FILES = tl/README.en tl/Makefile tl/mk-tl tl/TL-ELS \
+ tl/*.el tl/doc/*.ol tl/doc/*.tex tl/doc/*.texi tl/ChangeLog
-EMU_FILES = emu/EMU-ELS emu/*.el emu/ChangeLog
+BITMAP_FILES = bitmap-mule/BITMAP-* bitmap-mule/Makefile \
+ bitmap-mule/*.el bitmap-mule/*.bdf \
+ bitmap-mule/README.* bitmap-mule/ChangeLog
+
+EMU_FILES = emu/EMU-ELS emu/*.el emu/ChangeLog
+
+SINFO_FILES = sinfo/SINFO-* sinfo/Makefile \
+ sinfo/*.dtd sinfo/*.el sinfo/*-mapping sinfo/ChangeLog
FILES = $(TM_FILES) $(TM_MUA_FILES) $(MEL_FILES) $(MU_FILES) \
- $(TL_FILES) $(EMU_FILES)
+ $(TL_FILES) $(BITMAP_FILES) $(EMU_FILES) $(SINFO_FILES)
elc:
- $(EMACS) $(FLAGS) -l inst-tm -f compile-tm $(PREFIX) $(EXEC_PREFIX)
+ $(EMACS) $(FLAGS) -l TM-MK -f compile-tm $(PREFIX) $(EXEC_PREFIX)
# $(SHELL) .gnus-compile
install-elc: elc
- $(EMACS) $(FLAGS) -l inst-tm -f install-tm $(PREFIX) $(EXEC_PREFIX)
+ $(EMACS) $(FLAGS) -l TM-MK -f install-tm $(PREFIX) $(EXEC_PREFIX)
all: $(UTILS) $(DVI) elc
install: $(UTILS) methods install-elc
- $(EMACS) $(FLAGS) -l inst-tm -f install-execs $(PREFIX) $(EXEC_PREFIX)
+ $(EMACS) $(FLAGS) -l TM-MK -f install-execs $(PREFIX) $(EXEC_PREFIX)
clean:
[README for tm (English Version)]
by MORIOKA Tomohiko <morioka@jaist.ac.jp>
and KOBAYASHI Shuhei <shuhei-k@jaist.ac.jp>
-$Id: README.en,v 7.24 1996/10/14 09:33:14 morioka Exp $
+$Id: README.en,v 7.25 1996/12/02 16:07:55 morioka Exp $
1 What's tm?
- tm-ew-e.el : MIME encoded-word encoder
- tm-def : definition module for tm
- tm-MUAs : MIME extender for MUAs
- - tm-mh-e : tm-MUA for mh-e
- - tm-gnus : tm-MUA for GNUS
- - tm-rmail : tm-MUA for RMAIL
- - tm-vm : tm-MUA for vm
- - tm-mail : tm-MUA library module for mail-mode
+ - tm-mh-e : tm-MUA for mh-e
+ - gnus-mime : tm-MUA for Gnus
+ - tm-gnus : tm-MUA for GNUS
+ - tm-rmail : tm-MUA for RMAIL
+ - tm-vm : tm-MUA for vm
+ - tm-mail : tm-MUA library module for mail-mode
- mime-setup: set up module for MIME
- tm-setup: set up only reading
please modify the variables `PREFIX' and `EXEC_PREFIX'.
-4.2 tm-gnus (optional)
-
- If you use optional GNUS or Gnus, which is not included in the Emacs
-distribution, you must edit the following files before running make.
-
- If you use Emacs 18.* and GNUS 3.*, please edit tm/gnus/g3-path.
-
- If you use Emacs 18.* and GNUS 4.*, please edit tm/gnus/g4-path.
-
- If you use Gnus 5.[01].*, please edit tm/gnus/g5-path.
-
- If you use Gnus 5.2.*, please edit tm/gnus/s-path.
-
-
-4.3 edit external methods (optional)
+4.2 edit external methods (optional)
You can edit external methods in `tm/methods/' directory for your
environment.
package, please modify tmdecode to use decode-b instead of mmencode.
-4.4 make
+4.3 make
Run `make all'.
% make all EMACS=mule
-4.5 install
+4.4 install
Run `make install'.
Please insert `(load "mime-setup")' in ~/.emacs.
-6.1 automatic MIME preview support
+6.1 gnus-mime
- tm-gnus provides automatic MIME preview feature for GNUS 3.15 or
-later, Gnus 5.0.*, Gnus 5.1, and Gnus 5.2.
+ gnus-mime provides automatic MIME preview feature for Gnus.
If you don't want to use automatic MIME preview feature, please
insert in ~/.emacs:
- (setq tm-gnus/automatic-mime-preview nil)
+ (setq gnus-show-mime nil)
- In addition, Gnus 5.2 has automatic MIME preview supporting feature.
-Of course, tm-gnus provides this feature for other GNUS and Gnus, but
-it is unnatural.
+ In addition, Gnus 5.2 is designed to support automatic MIME preview
+feature. Of course, gnus-mime provides this feature for Gnus 5.0.*
+and Gnus 5.1.*, but it is unnatural.
- When automatic MIME preview mode, GNUS and Gnus do MIME processing
-if a message has a Mime-Version field. If it does not have one, GNUS
-and Gnus does not do MIME processing, in default.
+ When automatic MIME preview mode, Gnus do MIME processing if a
+message has a Mime-Version field. If it does not have one, Gnus does
+not do MIME processing, in default.
- Gnus 5.0.*, 5.1 and Gnus 5.2 have a variable `gnus-strict-mime'. If
+ Gnus 5.0.*, 5.1 and Gnus 5.2 have a variable `gnus-strict-mime'. If
you insert
(setq gnus-strict-mime nil)
Mime-Version field.
In Gnus 5.2, if `gnus-strict-mime' is not nil, variable
-`gnus-decode-encoded-word-method' is called. tm-gnus uses it to decode
-RFC 1522 encoded-words. So it is not necessary to reset
+`gnus-decode-encoded-word-method' is called. gnus-mime uses it to
+decode RFC 2047 encoded-words. So it is not necessary to reset
`gnus-strict-mime'.
-6.2 VM
+6.2 tm-gnus
+
+ tm-gnus provides automatic MIME preview feature for GNUS 3.15 or
+later.
+
+ If you don't want to use automatic MIME preview feature, please
+insert in ~/.emacs:
+
+ (setq tm-gnus/automatic-mime-preview nil)
+
+
+6.3 VM
If you use vm, please insert `(require 'tm-vm)' in ~/.vm.
(require 'tm-vm) *after* (bbdb-insinuate-vm).
-6.3 PGP
+6.4 PGP
If you have the PGP and Mailcrypt packages, you can use PGP with
MIME. Currently, PGP/MIME (RFC 2015) and draft-kazu-pgp-mime-00.txt
======================================================================
-6.4 code sample for hilit19
+6.5 code sample for hilit19
======================================================================
(cond (window-system
======================================================================
-6.5 code sample for browse-url
+6.6 code sample for browse-url
If you have browse-url.el (included in Gnus 5.*, September Gnus and
Emacs 19.30 or later), you can use URL button in
10 TODO
-- MUA specific key binding system for mime/viewer-mode
- better identification calculus system as successor of atype system
- development of internal method for message/external-body based on
tm-ftp
;;; -*-Emacs-Lisp-*-
;;;
-;;; $Id: TM-CFG,v 7.24 1996/11/15 12:12:47 morioka Exp $
+;;; $Id: TM-CFG,v 7.26 1996/11/27 11:45:46 morioka Exp $
;;;
(defvar default-load-path load-path)
(lambda (path)
(expand-file-name path (getenv "PWD"))
))
- '("." "../emu" "../tl" "../mu" "../mel"
+ '("." "../emu" "../tl" "../bitmap-mule"
+ "../mu" "../mel"
"../tm-mh-e" "../gnus-mime" "../tm-gnus"
"../tm-mail" "../tm-vm")
)
(expand-file-name "../../../.." exec-directory)
))
-;; Please specify tm package prefix [optional]
-(setq TM_PACKAGE_PREFIX "")
-
;; Please specify tl prefix [optional]
;;(setq TL_PREFIX "tl")
(setq TL_PREFIX
"tl"
""))
+;; Please specify prefix for ``bitmap-mule'' [optional]
+(setq BITMAP_PREFIX "bitmap")
+
;; Please specify MU prefix [optional]
(setq MU_PREFIX "mu")
;;
;; <LISPDIR> = <PREFIX>/DATA_PREFIX/<install-elisp-prefix>/
;; <LISPDIR>/mime-setup.{el|elc}
-;; <LISPDIR>/<TM_PACKAGE_PREFIX>/<TL_PREFIX>/ --- tl lisp files
-;; <LISPDIR>/<TM_PACKAGE_PREFIX>/<MU_PREFIX>/ --- MU lisp files
-;; <LISPDIR>/<TM_PACKAGE_PREFIX>/<MEL_PREFIX>/ --- MEL lisp files
-;; <LISPDIR>/<TM_PACKAGE_PREFIX>/<TM_PREFIX>/ --- tm lisp files
+;; <LISPDIR>/<TL_PREFIX>/ --- tl lisp files
+;; <LISPDIR>/<BITMAP_PREFIX>/ --- bitmap lisp files
+;; <LISPDIR>/<MU_PREFIX>/ --- MU lisp files
+;; <LISPDIR>/<MEL_PREFIX>/ --- MEL lisp files
+;; <LISPDIR>/<TM_PREFIX>/ --- tm lisp files
;;
;; For example, if <PREFIX> = "/usr/local" and you use Emacs 19.34,
;;
;; <LISPDIR> = /usr/local/share/emacs/site-lisp/
;; /usr/local/share/emacs/site-lisp/mime-setup.{el|elc}
-;; /usr/local/share/emacs/site-lisp/ --- tl lisp files
-;; /usr/local/share/emacs/site-lisp/mu/ --- MU lisp files
-;; /usr/local/share/emacs/site-lisp/mel/ --- MEL lisp files
-;; /usr/local/share/emacs/site-lisp/tm/ --- tm lisp files
+;; /usr/local/share/emacs/site-lisp/ --- tl lisp files
+;; /usr/local/share/emacs/site-lisp/mu/ --- MU lisp files
+;; /usr/local/share/emacs/site-lisp/mel/ --- MEL lisp files
+;; /usr/local/share/emacs/site-lisp/tm/ --- tm lisp files
;;
;; For example, if <PREFIX> = "~/" and you use XEmacs,
;;
;; Please specify mime-setup.{el|elc} install path.
(setq SETUP_FILE_DIR LISPDIR)
-(setq TM_LISPDIR (expand-file-name TM_PACKAGE_PREFIX LISPDIR))
-
-(setq TL_DIR (expand-file-name TL_PREFIX TM_LISPDIR))
-(setq MU_DIR (expand-file-name MU_PREFIX TM_LISPDIR))
-(setq MEL_DIR (expand-file-name MEL_PREFIX TM_LISPDIR))
-(setq TM_KERNEL_DIR (expand-file-name TM_PREFIX TM_LISPDIR))
-(setq TM_MHE_DIR TM_KERNEL_DIR)
-(setq TM_GNUS_DIR TM_KERNEL_DIR)
-(setq Gnus_MIME_DIR TM_KERNEL_DIR)
-(setq TM_MAIL_DIR TM_KERNEL_DIR)
-(setq TM_VM_DIR TM_KERNEL_DIR)
+(setq TL_DIR (expand-file-name TL_PREFIX LISPDIR))
+(setq BITMAP_DIR (expand-file-name BITMAP_PREFIX LISPDIR))
+(setq MU_DIR (expand-file-name MU_PREFIX LISPDIR))
+(setq MEL_DIR (expand-file-name MEL_PREFIX LISPDIR))
+(setq TM_KERNEL_DIR (expand-file-name TM_PREFIX LISPDIR))
+(setq TM_MHE_DIR TM_KERNEL_DIR)
+(setq TM_GNUS_DIR TM_KERNEL_DIR)
+(setq Gnus_MIME_DIR TM_KERNEL_DIR)
+(setq TM_MAIL_DIR TM_KERNEL_DIR)
+(setq TM_VM_DIR TM_KERNEL_DIR)
(cond ((member LISPDIR default-load-path)
- (if (string-equal TM_PACKAGE_PREFIX "")
- (setq TL_RELATIVE_DIR TL_PREFIX
- MU_RELATIVE_DIR MU_PREFIX
- MEL_RELATIVE_DIR MEL_PREFIX
- TM_KERNEL_RELATIVE_DIR TM_PREFIX
- )
- (setq TL_RELATIVE_DIR
- (concat (file-name-as-directory TM_PACKAGE_PREFIX) TL_PREFIX))
- (setq MU_RELATIVE_DIR
- (concat (file-name-as-directory TM_PACKAGE_PREFIX) MU_PREFIX))
- (setq MEL_RELATIVE_DIR
- (concat (file-name-as-directory TM_PACKAGE_PREFIX) MEL_PREFIX))
- (setq TM_KERNEL_RELATIVE_DIR
- (concat (file-name-as-directory TM_PACKAGE_PREFIX) TM_PREFIX))
- ))
+ (setq TL_RELATIVE_DIR TL_PREFIX)
+ (setq BITMAP_RELATIVE_DIR BITMAP_PREFIX)
+ (setq MU_RELATIVE_DIR MU_PREFIX)
+ (setq MEL_RELATIVE_DIR MEL_PREFIX)
+ (setq TM_KERNEL_RELATIVE_DIR TM_PREFIX)
+ )
((string-match (concat "^" (regexp-quote (expand-file-name "~/")))
LISPDIR)
- (setq TL_RELATIVE_DIR (concat "~/" (file-relative-name TL_DIR "~/")))
- (setq MU_RELATIVE_DIR (concat "~/" (file-relative-name MU_DIR "~/")))
- (setq MEL_RELATIVE_DIR (concat "~/" (file-relative-name MEL_DIR "~/")))
+ (setq TL_RELATIVE_DIR
+ (concat "~/" (file-relative-name TL_DIR "~/"))
+ )
+ (setq BITMAP_RELATIVE_DIR
+ (concat "~/" (file-relative-name BITMAP_DIR "~/"))
+ )
+ (setq MU_RELATIVE_DIR
+ (concat "~/" (file-relative-name MU_DIR "~/"))
+ )
+ (setq MEL_RELATIVE_DIR
+ (concat "~/" (file-relative-name MEL_DIR "~/"))
+ )
(setq TM_KERNEL_RELATIVE_DIR
- (concat "~/" (file-relative-name TM_KERNEL_DIR "~/")))
+ (concat "~/" (file-relative-name TM_KERNEL_DIR "~/"))
+ )
)
(t
- (setq TL_RELATIVE_DIR TL_DIR)
- (setq MU_RELATIVE_DIR MU_DIR)
- (setq MEL_RELATIVE_DIR MEL_DIR)
- (setq TM_KERNEL_RELATIVE_DIR TM_KERNEL_DIR)
+ (setq TL_RELATIVE_DIR TL_DIR)
+ (setq BITMAP_RELATIVE_DIR BITMAP_DIR)
+ (setq MU_RELATIVE_DIR MU_DIR)
+ (setq MEL_RELATIVE_DIR MEL_DIR)
+ (setq TM_KERNEL_RELATIVE_DIR TM_KERNEL_DIR)
))
-(setq TM_MHE_RELATIVE_DIR TM_KERNEL_RELATIVE_DIR)
-(setq TM_GNUS_RELATIVE_DIR TM_KERNEL_RELATIVE_DIR)
+(setq TM_MHE_RELATIVE_DIR TM_KERNEL_RELATIVE_DIR)
+(setq TM_GNUS_RELATIVE_DIR TM_KERNEL_RELATIVE_DIR)
(setq TM_GNUS_INSTALL_FORMAT
"cd gnus; PWD=`pwd` make install-19 EMACS=%s TMDIR19=%s")
--- /dev/null
+;;; -*-Emacs-Lisp-*-
+;;;
+;;; $Id: TM-MK,v 7.43 1996/11/27 11:48:53 morioka Exp morioka $
+;;;
+
+(defun config-tm ()
+ (let (prefix exec-prefix)
+ (setq prefix (car command-line-args-left))
+ (and prefix
+ (not (string-equal "NONE" prefix))
+ (progn
+ (defvar PREFIX prefix)
+ (setq command-line-args-left (cdr command-line-args-left))
+ )
+ (setq exec-prefix (car command-line-args-left))
+ (progn
+ (defvar EXEC_PREFIX exec-prefix)
+ ;;(setq command-line-args-left (cdr command-line-args-left))
+ )))
+ (load-file "TM-CFG")
+ (load-file "../emu/EMU-ELS")
+ (load-file "../tl/TL-ELS")
+ (load-file "../bitmap-mule/BITMAP-ELS")
+ (load-file "../mu/MU-ELS")
+ (load-file "../mel/MEL-ELS")
+ (load-file "TM-ELS")
+ (load-file "../tm-mh-e/TMH-ELS")
+ (load-file "../tm-mail/TMAIL-ELS")
+ (load-file "../tm-vm/TM-VM-ELS")
+ (princ (format "PREFIX=%s\tEXEC_PREFIX=%s\n" PREFIX EXEC_PREFIX))
+ )
+
+(defun directory= (dir1 dir2)
+ (string= (file-name-as-directory dir1)(file-name-as-directory dir2))
+ )
+
+(defun make-mime-setup (lisp-dir
+ tl-path bitmap-path mu-path mel-path tm-path)
+ (let ((buf (find-file "mime-setup.el.in")))
+ (goto-char (point-min))
+ (re-search-forward "^;;; Code:\n" nil t)
+ (setq buffer-read-only nil)
+
+ ;; generate tl setting
+ (let ((tl-absolute-path (expand-file-name tl-path lisp-dir)))
+ (if (MEMBER tl-absolute-path default-load-path
+ :test (function directory=))
+ (insert "\n(require \'tl-misc)")
+ (insert
+ (format "
+
+\(let ((load-path
+ (cons \"%s\"
+ load-path)))
+ (require \'tl-misc)
+ )
+\(add-path \"%s\")" tl-absolute-path tl-path))
+ ))
+
+ ;; generate MU load-path setting
+ (and bitmap-modules
+ (or (MEMBER (expand-file-name bitmap-path lisp-dir)
+ default-load-path
+ :test (function directory=))
+ (insert (format "\n(add-path \"%s\")" bitmap-path))
+ ))
+
+ ;; generate MU load-path setting
+ (or (MEMBER (expand-file-name mu-path lisp-dir)
+ default-load-path
+ :test (function directory=))
+ (insert (format "\n(add-path \"%s\")" mu-path))
+ )
+
+ ;; generate MEL load-path setting
+ (or (MEMBER (expand-file-name mel-path lisp-dir)
+ default-load-path
+ :test (function directory=))
+ (insert (format "\n(add-path \"%s\")" mel-path))
+ )
+
+ ;; generate tm load-path setting
+ (or (MEMBER (expand-file-name tm-path lisp-dir)
+ default-load-path
+ :test (function directory=))
+ (insert (format "\n(add-path \"%s\")" tm-path))
+ )
+
+ ;; generate tm external-methods path setting
+ (or (string= METHOD_DIR exec-directory)
+ (insert
+ (format "\n(defvar mime-viewer/external-progs %s)"
+ (let ((dir (file-relative-name METHOD_DIR data-directory)))
+ (if (< (length dir) (length METHOD_DIR))
+ (concat "\n (expand-file-name \""
+ dir "\" data-directory)")
+ (setq dir (file-relative-name METHOD_DIR
+ (expand-file-name "~/")))
+ (if (< (length dir) (length METHOD_DIR))
+ (concat "\n (expand-file-name \"~/"
+ dir "\")")
+ (concat "\"" METHOD_DIR "\"")
+ )))
+ ))
+ )
+ (write-file "mime-setup.el")
+ ))
+
+(defun compile-tm ()
+ (config-tm)
+ (print load-path)
+ (require 'mel-u)
+ (require 'tm-edit)
+ (load "rmailsum")
+ (require 'tm-mh-e)
+ (make-mime-setup LISPDIR
+ TL_RELATIVE_DIR BITMAP_RELATIVE_DIR
+ MU_RELATIVE_DIR MEL_RELATIVE_DIR
+ TM_KERNEL_RELATIVE_DIR)
+ (compile-elisp-modules emu-modules "../emu")
+ (compile-elisp-modules tl-modules "../tl")
+ (compile-elisp-modules bitmap-modules "../bitmap-mule")
+ (compile-elisp-modules mu-modules-to-compile "../mu")
+ (compile-elisp-modules mel-modules "../mel")
+ (compile-elisp-modules tm-modules-to-compile ".")
+ (compile-elisp-modules tm-mh-e-modules "../tm-mh-e")
+ (compile-elisp-module 'mime-setup ".")
+ (require 'gnus)
+ (cond ((featurep 'gnus-ems)
+ (load "../gnus-mime/Gnus-MIME-ELS")
+ (compile-elisp-modules gnus-mime-modules-to-compile "../gnus-mime")
+ )
+ (t
+ (load "../tm-gnus/TGNUS-ELS")
+ (compile-elisp-modules tm-gnus-modules-to-compile "../tm-gnus")
+ ))
+ (compile-elisp-modules tm-mail-modules "../tm-mail")
+ (compile-elisp-modules tm-vm-modules-to-compile "../tm-vm")
+ )
+
+(defun install-tm ()
+ (config-tm)
+ (princ (format "%s\n" emacs-version))
+ (install-elisp-modules emu-modules "../emu" EMU_DIR)
+ (install-elisp-modules tl-modules "../tl" TL_DIR)
+ (install-elisp-modules bitmap-modules "../bitmap-mule" BITMAP_DIR)
+ (install-elisp-modules mu-modules "../mu" MU_DIR)
+ (install-elisp-modules mel-modules "../mel" MEL_DIR)
+ (install-elisp-modules tm-modules "." TM_KERNEL_DIR)
+ (install-elisp-modules tm-mh-e-modules "../tm-mh-e" TM_MHE_DIR)
+ ;;(install-tm-gnus)
+ (require 'gnus)
+ (cond ((featurep 'gnus-ems)
+ (load "../gnus-mime/Gnus-MIME-ELS")
+ (install-elisp-modules gnus-mime-modules
+ "../gnus-mime" Gnus_MIME_DIR)
+ )
+ (t
+ (load "../tm-gnus/TGNUS-ELS")
+ (install-elisp-modules tm-gnus-modules "../tm-gnus" TM_GNUS_DIR)
+ ))
+ (install-elisp-modules tm-mail-modules "../tm-mail" TM_MAIL_DIR)
+ (install-elisp-modules tm-vm-modules "../tm-vm" TM_VM_DIR)
+ (install-elisp-modules '(mime-setup) "." SETUP_FILE_DIR)
+ )
+
+(defun install-execs ()
+ (config-tm)
+ (install-files BINS BIN_SRC_DIR BIN_DIR)
+ (install-files METHODS METHOD_SRC_DIR METHOD_DIR nil t)
+ )
+
+;;; TM-MK ends here
--- /dev/null
+Info file: tm-edit-en.info, -*-Text-*-
+produced by `texinfo-format-buffer'
+from file `tm-edit-en.texi'
+using `texinfmt.el' version 2.32 of 19 November 1993.
+
+
+\1f
+File: tm-edit-en.info, Node: Top, Next: Introduction, Prev: (dir), Up: (dir)
+
+tm-edit 7.90 Reference Manual (English Version)
+***********************************************
+
+
+This file documents tm-edit, a MIME composer for GNU Emacs.
+
+* Menu:
+
+* Introduction:: What is tm-edit?
+* mime/editor-mode::
+* single-part operations::
+* enclosure operation::
+* other operations of mime/editor-mode::
+* transfer level::
+* header:: Using non-ASCII characters in header
+* PGP::
+* Concept Index::
+* Function Index::
+* Variable Index::
+
+
+\1f
+File: tm-edit-en.info, Node: Introduction, Next: mime/editor-mode, Prev: Top, Up: Top
+
+What is tm-edit?
+****************
+
+*tm-edit* is a general MIME composer for GNU
+Emacs.
+
+tm-edit is based on mime.el by UMEDA Masanobu
+<umerin@mse.kyutech.ac.jp>, who is famous as the author of GNUS.
+tm-edit expands following points from `mime.el':
+
+ * based on RFC 1521/1522
+ * Content-Disposition field (*Note (tm-en)Content-Disposition::) (RFC
+ 1806) supports
+ * nested multi-part message (*Note (tm-en)multipart::)
+ * PGP (*Note PGP::) (PGP/MIME (RFC 2015) based on security multipart
+ (RFC 1847) and application/pgp based on traditional PGP)
+ * strength automatic specification for parameter of file type
+
+
+In tm-MUA (*Note (tm-en)tm-MUA::), you can edit MIME message easily to
+use tm-edit.
+
+
+
+\1f
+File: tm-edit-en.info, Node: mime/editor-mode, Next: single-part operations, Prev: Introduction, Up: Top
+
+mime/editor-mode
+****************
+
+*mime/editor-mode* is a minor mode to
+compose MIME message. In this mode, *tag* represents various kinds of
+data, you can edit multi part (*Note (tm-en)multipart::) message.
+
+There are 2 kinds of tags:
+
+ * single-part tag
+ * multi-part tag
+
+single-part tag represents single part, this form is following:
+
+ --[[TYPE/SUBTYPE;PARAMETERS][ENCODING]
+ OPTIONAL-FIELDS]
+
+TYPE/SUBTYPE and PARAMETERS indicates type/subtype and parameters of
+Content-Type field (*Note (tm-en)Content-Type field::). TYPE/SUBTYPE is
+required, PARAMETERS is optional.
+
+ENCODING indicates Content-Transfer-Encoding field. It is optional too.
+
+OPTIONAL-FIELDS is to represent another fields except Content-Type field
+and Content-Transfer-Encoding field.
+
+multi-part tags represent multi part (*Note (tm-en)multipart::). They
+consist of a pair of *multi-part beginning tag* and *multi-part ending
+tag*.
+
+multi-part beginning tag's form is following:
+
+ --<<TYPE>>-{
+
+multi-part ending tag's form is following:
+
+ --}-<<TYPE>>
+
+A region from multi-part beginning tag to multi-part ending tag is
+called as *enclosure*.
+
+
+
+\1f
+File: tm-edit-en.info, Node: single-part operations, Next: enclosure operation, Prev: mime/editor-mode, Up: Top
+
+single-part operations
+**********************
+
+Operations to make single-part are following:
+
+`C-c C-x C-t'
+ Insert single-part tag indicates text part.
+
+`C-c C-x C-i'
+ Insert file as a MIME attachment.
+
+`C-c C-x C-e'
+ Insert external part.
+
+`C-c C-x C-v'
+ Record audio input until `C-g' is pressed, and insert as a audio
+ part. (It requires /dev/audio in default.)
+
+`C-c C-x C-y'
+ Insert current (mail or news) message. (It is MUA depended.)
+
+`C-c C-x C-m'
+ Insert mail message. (It is MUA depended.)
+
+`C-c C-x C-w, C-c C-x C-s'
+ Insert signature.
+
+`C-c C-x C-k'
+ Insert PGP (*Note PGP::) public key. (It requires Mailcrypt
+ package.)
+
+`C-c C-x t'
+ Insert any single-part tag.
+
+
+
+
+
+\1f
+File: tm-edit-en.info, Node: enclosure operation, Next: other operations of mime/editor-mode, Prev: single-part operations, Up: Top
+
+enclosure operation
+*******************
+
+Operations to make enclosure are following:
+
+`C-c C-x a'
+ Enclose specified region as multipart/alternative.
+
+`C-c C-x p'
+ Enclose specified region as multipart/parallel.
+
+`C-c C-x m'
+ Enclose specified region as multipart/mixed.
+
+`C-c C-x d'
+ Enclose specified region as multipart/digest.
+
+`C-c C-x s'
+ Digital-sign to specified region. (cf. *Note PGP::)
+
+`C-c C-x e'
+ Encrypt to specified region. (cf. *Note PGP::)
+
+`C-c C-x q'
+ avoid to encode tags in specified region. In other words, tags is
+ interpreted as such string. (In current version, it may be
+ incomplete. Maybe PGP-signature does not work for this enclosure.)
+
+
+
+
+
+\1f
+File: tm-edit-en.info, Node: other operations of mime/editor-mode, Next: transfer level, Prev: enclosure operation, Up: Top
+
+other operations of mime/editor-mode
+************************************
+
+There are another operations in mime/editor-mode.
+
+`C-c C-c'
+ Send current editing message.
+
+`C-c C-x C-p'
+ Preview current editing message. (*Note
+ (tm-view-en)mime/viewer-mode::)
+
+`C-c C-x C-z'
+ Exit mime/editor-mode. (M-x mime/edit-again is available to
+ reedit.)
+
+`C-c C-x ?'
+ Display help message.
+
+`C-c C-x /'
+ Set current editing message to enable automatic splitting or not.
+ Form of automatic split messages is message/partial.
+
+`C-c C-x 7'
+ Set 7bit (*Note (tm-en)7bit::) to transfer level (*Note transfer
+ level::).
+
+`C-c C-x 8'
+ Set 8bit (*Note (tm-en)8bit::) to transfer level (*Note transfer
+ level::).
+
+`C-c C-x v'
+ Set current editing message to digital-sign or not. (cf. *Note
+ PGP::)
+
+`C-c C-x h'
+ Set current editing message to encrypt or not. (cf. *Note PGP::)
+
+
+
+
+
+\1f
+File: tm-edit-en.info, Node: transfer level, Next: header, Prev: other operations of mime/editor-mode, Up: Top
+
+transfer level
+**************
+
+Contents inserted in a message are represented by 7bit (*Note
+(tm-en)7bit::), 8bit (*Note (tm-en)8bit::) or binary (*Note
+(tm-en)binary::).
+
+If a message is translated by 7bit-through MTA (*Note (tm-en)MTA::),
+there is no need to encode 7bit data, but 8bit and binary data must be
+encoded to 7bit data.
+
+Similarly, if a message is translated by 8bit-through MTA, there is no
+need to encode 7bit or 8bit data, but binary data must be encoded to
+7bit or 8bit data.
+
+*[Memo]*
+ EBCDIC MTA breaks 7bit data, so in this case, 7bit data must be
+ encoded by base64. But I don't know EBCDIC. (^_^;
+
+ Similarly, I wish ASCII-printable only MTA and code-conversion MTA
+ disappeared. (^_^;
+
+ Maybe there are binary-through MTA, but I think it is not major.
+
+*transfer level* represents how range data is
+available. tm-edit has a variable `mime-editor/transfer-level' to
+represent transfer level.
+
+
+ -- Variable: mime-editor/transfer-level
+
+ transfer level.
+
+ If transfer level of a data is over it, a data is encoded to 7bit.
+
+ Currently, 7 or 8 is available. Default value is 7.
+
+ In extension plan, EBCDIC will be 5, ASCII printable only will be
+ 6, binary will be 9. But it will not be implemented.
+
+
+
+*[Memo]*
+ transfer level is only for body, not for header (*Note header::).
+ RFC 1521 extends RFC 822 (*Note (tm-en)RFC 822::) to use 8bit data
+ in body, but it requires to use us-ascii (*Note (tm-en)us-ascii::)
+ in header.
+
+
+
+
+\1f
+File: tm-edit-en.info, Node: header, Next: PGP, Prev: transfer level, Up: Top
+
+Using non-ASCII characters in header
+************************************
+
+RFC 1522 (*Note (tm-en)RFC 1522::) defines representation of non-ASCII
+characters in header.
+
+It is a format called as *encoded-word* (*Note (tm-en)encoded-word::),
+it is available to represent every non-ASCII characters by 7bit (*Note
+(tm-en)7bit::) to declare MIME charset (*Note (tm-en)MIME charset::).
+
+
+* Menu:
+
+* evil setting in header:: If you can not allow encoded-word
+* API about header:: Functions and variables about header
+
+
+\1f
+File: tm-edit-en.info, Node: evil setting in header, Next: API about header, Prev: header, Up: header
+
+If you can not allow encoded-word
+=================================
+
+It is wrong to use "raw" non-ASCII characters in header not to use
+encoded-word. Because there are various kinds of coded character set
+(*Note (tm-en)Coded character set::) in the Internet, so we can not
+distinguish them if MIME charset (*Note (tm-en)MIME charset::) is not
+declared.
+
+For example, we can not distinguish iso-8859-1 (*Note
+(tm-en)iso-8859-1::) and iso-8859-2 (*Note (tm-en)iso-8859-2::) if MIME
+charset is not declared.
+
+However you can not permit to use encoded-word, please set to following
+variables:
+
+
+ -- Variable: mime/field-encoding-method-alist
+
+ Association-list to specify field encoding method. Its key is
+ field-name, value is encoding method.
+
+ field-name allows string or `t' meaning any fields.
+
+ Encoding method allows following: `nil' means no-conversion, `mime'
+ means to convert as encoded-word, symbol represent MIME charset
+ means to convert as the coded character set instead of to convert
+ as encoded-word.
+
+ field-name is searched from string. If it is not found, `t' is
+ used.
+
+ Default value of `mime/field-encoding-method-alist' is following:
+
+ (("X-Nsubject" . iso-2022-jp-2)
+ ("Newsgroups" . nil)
+ (t . mime)
+ ))
+
+
+In addition, if you want to specify by coded character set instead of
+field, please use `mime-eword/charset-encoding-alist'. (cf. *Note API
+about header::)
+
+
+
+
+\1f
+File: tm-edit-en.info, Node: API about header, Prev: evil setting in header, Up: header
+
+Functions and variables about header
+====================================
+
+ -- Command: mime/encode-message-header &optional CODE-CONVERSION
+
+ It translate non-ASCII characters in message header of current
+ buffer into network representation, such as encoded-words.
+
+ If CODE-CONVERSION is non-`nil', field not encoded by encoded-word
+ is converted by `mime/field-encoding-method-alist'.
+
+
+ -- Function: mime/encode-field STRING
+
+ It encodes STRING into encoded-words as a field.
+
+ Long lines are folded.
+
+
+ -- Function: mime-eword/encode-string STRING &optional COLUMN MODE
+
+ It encodes STRING into encoded-words.
+
+ Long lines are folded.
+
+ COLUMN specifies start column. If it is omitted, 0 is used.
+
+ MODE specifies where STRING is in. Available values are `text',
+ `comment', `phrase'. If it is omitted, `phrase' is used.
+
+
+ -- Variable: mime-eword/charset-encoding-alist
+
+ Association-list of symbol represent MIME charset vs. nil, `"B"' or
+ `"Q"'.
+
+ `nil' means not to encode as encoded-word. `"B"' means to use
+ B-encoding. `"Q"' means to use Q-encoding.
+
+
+
+
+\1f
+File: tm-edit-en.info, Node: PGP, Next: Concept Index, Prev: header, Up: Top
+
+PGP
+***
+
+tm-edit provides PGP encryption, signature and inserting public-key
+features based on *PGP/MIME* (*Note (tm-en)PGP/MIME::) (RFC 2015) or
+*PGP-kazu* (*Note (tm-en)PGP-kazu::) (draft-kazu-pgp-mime-00.txt).
+
+This feature requires pgp command and Mailcrypt package (*Note
+(mailcrypt)::).
+
+If you want to use this feature, please set `pgp-elkins' or `pgp-kazu'
+to variable `mimed-editor/signing-type' and variable
+`mime-editor/encrypting-type'.
+
+If `pgp-elkins' is specified, PGP/MIME is used. If `pgp-kazu' is
+specified, PGP-kazu is used.
+
+
+ -- Variable: mime-editor/signing-type
+
+ Format of PGP signature.
+
+ It allows `pgp-elkins' or `pgp-kazu'.
+
+ Default value is `nil'.
+
+
+ -- Variable: mime-editor/encrypting-type
+
+ Format of PGP encryption.
+
+ It allows `pgp-elkins' or `pgp-kazu'.
+
+ Default value is `nil'.
+
+
+
+
+\1f
+File: tm-edit-en.info, Node: Concept Index, Next: Function Index, Prev: PGP, Up: Top
+
+Concept Index
+*************
+
+
+* Menu:
+
+* enclosure: mime/editor-mode. 42.
+* encoded-word: header. 9.
+* mime/editor-mode: mime/editor-mode. 5.
+* multi-part beginning tag: mime/editor-mode. 30.
+* multi-part ending tag: mime/editor-mode. 31.
+* PGP-kazu: PGP. 8.
+* PGP/MIME: PGP. 7.
+* tag: mime/editor-mode. 7.
+* tm-edit: Introduction. 5.
+* transfer level: transfer level. 26.
+
+
+\1f
+File: tm-edit-en.info, Node: Function Index, Next: Variable Index, Prev: Concept Index, Up: Top
+
+Function Index
+**************
+
+
+* Menu:
+
+* mime/encode-field: API about header. 16.
+* mime/encode-message-header: API about header. 7.
+* mime-eword/encode-string: API about header. 23.
+
+
+\1f
+File: tm-edit-en.info, Node: Variable Index, Prev: Function Index, Up: Top
+
+Variable Index
+**************
+
+
+* Menu:
+
+* mime-editor/encrypting-type: PGP. 31.
+* mime-editor/signing-type: PGP. 22.
+* mime-editor/transfer-level: transfer level. 33.
+* mime-eword/charset-encoding-alist: API about header. 35.
+* mime/field-encoding-method-alist: evil setting in header. 21.
--- /dev/null
+<!doctype sinfo system>
+<!-- $Id: tm-edit-en.sgml,v 1.1 1996/11/29 19:09:44 morioka Exp $ -->
+<head>
+<title>tm-edit 7.90 Reference Manual (English Version)
+<author>MORIOKA Tomohiko <mail>morioka@jaist.ac.jp</mail>
+<date>1996/10/11
+
+<toc>
+</head>
+
+<body>
+
+<abstract>
+<p>
+This file documents tm-edit, a MIME composer for GNU Emacs.
+</abstract>
+
+
+<h1> What is tm-edit?
+<node> Introduction
+<p>
+<concept>tm-edit</concept> is a general MIME composer for GNU Emacs.
+<p>
+tm-edit is based on mime.el by UMEDA Masanobu
+<mail>umerin@mse.kyutech.ac.jp</mail>, who is famous as the author of
+GNUS. tm-edit expands following points from <file>mime.el</file>:
+
+<ul>
+<li>
+based on RFC 1521/1522
+<li>
+<a file="tm-en" node="Content-Disposition">Content-Disposition
+field</a> (RFC 1806) supports
+<li>
+nested <a file="tm-en" node="multipart">multi-part message</a>
+<li>
+<dref>PGP</dref> (PGP/MIME (RFC 2015) based on security multipart (RFC
+1847) and application/pgp based on traditional PGP)
+<li>
+strength automatic specification for parameter of file type
+</ul>
+
+<p>
+In <dref file="tm-en">tm-MUA</dref>, you can edit MIME message easily
+to use tm-edit.
+
+
+<h1> mime/editor-mode
+<node> mime/editor-mode
+<p>
+<concept>mime/editor-mode</concept> is a minor mode to compose MIME
+message. In this mode, <concept>tag</concept> represents various
+kinds of data, you can edit <a file="tm-en" node="multipart">multi
+part</a> message.
+<p>
+There are 2 kinds of tags:
+
+<ul>
+<li> single-part tag
+<li> multi-part tag
+</ul>
+<p>
+single-part tag represents single part, this form is following:
+
+<verb>
+ --[[TYPE/SUBTYPE;PARAMETERS][ENCODING]
+ OPTIONAL-FIELDS]
+</verb>
+<p>
+TYPE/SUBTYPE and PARAMETERS indicates type/subtype and parameters of
+<dref file="tm-en">Content-Type field</dref>. TYPE/SUBTYPE is
+required, PARAMETERS is optional.
+<p>
+ENCODING indicates Content-Transfer-Encoding field. It is optional
+too.
+<p>
+OPTIONAL-FIELDS is to represent another fields except Content-Type
+field and Content-Transfer-Encoding field.
+<p>
+multi-part tags represent <a file="tm-en" node="multipart">multi
+part</a>. They consist of a pair of <concept>multi-part beginning
+tag</concept> and <concept>multi-part ending tag</concept>.
+<p>
+multi-part beginning tag's form is following:
+<p>
+<verb>
+ --<<TYPE>>-{
+</verb>
+<p>
+multi-part ending tag's form is following:
+<p>
+<verb>
+ --}-<<TYPE>>
+</verb>
+<p>
+A region from multi-part beginning tag to multi-part ending tag is
+called as <concept>enclosure</concept>.
+
+
+<h1> single-part operations
+<node> single-part operations
+<p>
+Operations to make single-part are following:
+
+<kl>
+<kt>C-c C-x C-t
+<kd>
+Insert single-part tag indicates text part.
+</kd>
+<kt>C-c C-x C-i
+<kd>
+Insert file as a MIME attachment.
+</kd>
+<kt>C-c C-x C-e
+<kd>
+Insert external part.
+</kd>
+<kt>C-c C-x C-v
+<kd>
+Record audio input until <kbd>C-g</kbd> is pressed, and insert as a
+audio part. (It requires /dev/audio in default.)
+</kd>
+<kt>C-c C-x C-y
+<kd>
+Insert current (mail or news) message. (It is MUA depended.)
+</kd>
+<kt>C-c C-x C-m
+<kd>
+Insert mail message. (It is MUA depended.)
+</kd>
+<dt><key>C-c C-x C-w</key>, <key>C-c C-x C-s</key>
+<dd>
+Insert signature.
+</dd>
+<kt>C-c C-x C-k
+<kd>
+Insert <dref>PGP</dref> public key. (It requires Mailcrypt package.)
+</kd>
+<kt>C-c C-x t
+<kd>
+Insert any single-part tag.
+</kd>
+</kl>
+
+
+<h1> enclosure operation
+<node> enclosure operation
+<p>
+Operations to make enclosure are following:
+
+<kl>
+<kt>C-c C-x a
+<kd>
+Enclose specified region as multipart/alternative.
+</kd>
+<kt>C-c C-x p
+<kd>
+Enclose specified region as multipart/parallel.
+</kd>
+<kt>C-c C-x m
+<kd>
+Enclose specified region as multipart/mixed.
+</kd>
+<kt>C-c C-x d
+<kd>
+Enclose specified region as multipart/digest.
+</kd>
+<kt>C-c C-x s
+<kd>
+Digital-sign to specified region. <cf node="PGP">
+</kd>
+<kt>C-c C-x e
+<kd>
+Encrypt to specified region. <cf node="PGP">
+<kt>C-c C-x q
+<kd>
+avoid to encode tags in specified region. In other words, tags is
+interpreted as such string. (In current version, it may be
+incomplete. Maybe PGP-signature does not work for this enclosure.)
+</kl>
+
+
+<h1> other operations of mime/editor-mode
+<node> other operations of mime/editor-mode
+<p>
+There are another operations in mime/editor-mode.
+
+<kl>
+<kt>C-c C-c
+<kd>
+Send current editing message.
+</kd>
+<kt>C-c C-x C-p
+<kd>
+Preview current editing message. (<ref file="tm-view-en"
+node="mime/viewer-mode">)
+</kd>
+<kt>C-c C-x C-z
+<kd>
+Exit mime/editor-mode. (<key>M-x mime/edit-again</key> is available to
+reedit.)
+</kd>
+<kt>C-c C-x ?
+<kd>
+Display help message.
+</kd>
+<kt>C-c C-x /
+<kd>
+Set current editing message to enable automatic splitting or not.
+Form of automatic split messages is message/partial.
+</kd>
+<kt>C-c C-x 7
+<kd>
+Set <dref file="tm-en">7bit</dref> to <dref>transfer level</dref>.
+</kd>
+<kt>C-c C-x 8
+<kd>
+Set <dref file="tm-en">8bit</dref> to <dref>transfer level</dref>.
+</kd>
+<kt>C-c C-x v
+<kd>
+Set current editing message to digital-sign or not. <cf node="PGP">
+</kd>
+<kt>C-c C-x h
+<kd>
+Set current editing message to encrypt or not. <cf node="PGP">
+</kl>
+
+
+<h1> transfer level
+<node> transfer level
+<p>
+Contents inserted in a message are represented by <dref
+file="tm-en">7bit</dref>, <dref file="tm-en">8bit</dref> or <dref
+file="tm-en">binary</dref>.
+<p>
+If a message is translated by 7bit-through <dref
+file="tm-en">MTA</dref>, there is no need to encode 7bit data, but
+8bit and binary data must be encoded to 7bit data.
+<p>
+Similarly, if a message is translated by 8bit-through MTA, there is no
+need to encode 7bit or 8bit data, but binary data must be encoded to
+7bit or 8bit data.
+<p>
+<memo>
+EBCDIC MTA breaks 7bit data, so in this case, 7bit data must be
+encoded by base64. But I don't know EBCDIC. (^_^;
+<p>
+Similarly, I wish ASCII-printable only MTA and code-conversion MTA
+disappeared. (^_^;
+<p>
+Maybe there are binary-through MTA, but I think it is not major.
+</memo>
+<p>
+<concept>transfer level</concept> represents how range data is
+available. tm-edit has a variable
+<code>mime-editor/transfer-level</code> to represent transfer level.
+
+
+<defvar name="mime-editor/transfer-level">
+<p>
+transfer level.
+<p>
+If transfer level of a data is over it, a data is encoded to 7bit.
+<p>
+Currently, 7 or 8 is available. Default value is 7.
+<p>
+In extension plan, EBCDIC will be 5, ASCII printable only will be 6,
+binary will be 9. But it will not be implemented.
+</defvar>
+
+
+<memo>
+transfer level is only for body, not for <a node="header">header</a>.
+RFC 1521 extends <dref file="tm-en">RFC 822</dref> to use 8bit data in
+body, but it requires to use <dref file="tm-en">us-ascii</dref> in
+header.
+</memo>
+
+
+<h1> Using non-ASCII characters in header
+<node> header
+<p>
+<dref file="tm-en">RFC 1522</dref> defines representation of non-ASCII
+characters in header.
+<p>
+It is a format called as <a file="tm-en"
+node="encoded-word"><concept>encoded-word</concept></a>, it is
+available to represent every non-ASCII characters by <dref
+file="tm-en">7bit</dref> to declare <dref file="tm-en">MIME
+charset</dref>.
+
+
+<h2> If you can not allow encoded-word
+<node> evil setting in header
+<p>
+It is wrong to use ``raw'' non-ASCII characters in header not to use
+encoded-word. Because there are various kinds of <a file="tm-en"
+node="Coded character set">coded character set</a> in the Internet, so
+we can not distinguish them if <dref file="tm-en">MIME charset</dref>
+is not declared.
+<p>
+For example, we can not distinguish <dref
+file="tm-en">iso-8859-1</dref> and <dref
+file="tm-en">iso-8859-2</dref> if MIME charset is not declared.
+<p>
+However you can not permit to use encoded-word, please set to
+following variables:
+
+
+<defvar name="mime/field-encoding-method-alist">
+<p>
+Association-list to specify field encoding method. Its key is
+field-name, value is encoding method.
+<p>
+field-name allows string or <code>t</code> meaning any fields.
+<p>
+Encoding method allows following: <code>nil</code> means
+no-conversion, <code>mime</code> means to convert as encoded-word,
+symbol represent MIME charset means to convert as the coded character
+set instead of to convert as encoded-word.
+<p>
+field-name is searched from string. If it is not found,
+<code>t</code> is used.
+<p>
+Default value of <code>mime/field-encoding-method-alist</code> is
+following:
+
+<lisp>
+(("X-Nsubject" . iso-2022-jp-2)
+ ("Newsgroups" . nil)
+ (t . mime)
+ ))
+</lisp>
+</defvar>
+
+<p>
+In addition, if you want to specify by coded character set instead of
+field, please use <code>mime-eword/charset-encoding-alist</code>.
+<cf node="API about header">
+
+
+<h2> Functions and variables about header
+<node> API about header
+<p>
+<define type="Command" name="mime/encode-message-header">
+<opts> code-conversion
+<p>
+It translate non-ASCII characters in message header of current buffer
+into network representation, such as encoded-words.
+<p>
+If <var>code-conversion</var> is non-<code>nil</code>, field not
+encoded by encoded-word is converted by
+<code>mime/field-encoding-method-alist</code>.
+</define>
+
+<defun name="mime/encode-field">
+<args> string
+<p>
+It encodes <var>string</var> into encoded-words as a field.
+<p>
+Long lines are folded.
+</defun>
+
+<defun name="mime-eword/encode-string">
+<args> string <opts> column mode
+<p>
+It encodes <var>string</var> into encoded-words.
+<p>
+Long lines are folded.
+<p>
+<var>column</var> specifies start column. If it is omitted, 0 is
+used.
+<p>
+<var>mode</var> specifies where <var>string</var> is in. Available
+values are <code>text</code>, <code>comment</code>,
+<code>phrase</code>. If it is omitted, <code>phrase</code> is used.
+</defun>
+
+<defvar name="mime-eword/charset-encoding-alist">
+<p>
+Association-list of symbol represent MIME charset vs. nil,
+<code>"B"</code> or <code>"Q"</code>.
+<p>
+<code>nil</code> means not to encode as encoded-word.
+<code>"B"</code> means to use B-encoding.
+<code>"Q"</code> means to use Q-encoding.
+</defvar>
+
+
+<h1> PGP
+<node> PGP
+<p>
+tm-edit provides PGP encryption, signature and inserting public-key
+features based on <a file="tm-en"
+node="PGP/MIME"><concept>PGP/MIME</concept></a> (RFC 2015) or <a
+file="tm-en" node="PGP-kazu"><concept>PGP-kazu</concept></a>
+(draft-kazu-pgp-mime-00.txt).
+<p>
+This feature requires pgp command and <a file="mailcrypt">Mailcrypt
+package</a>.
+<p>
+If you want to use this feature, please set <code>pgp-elkins</code> or
+<code>pgp-kazu</code> to variable
+<code>mimed-editor/signing-type</code> and variable
+<code>mime-editor/encrypting-type</code>.
+<p>
+If <code>pgp-elkins</code> is specified, PGP/MIME is used. If
+<code>pgp-kazu</code> is specified, PGP-kazu is used.
+
+
+<defvar name="mime-editor/signing-type">
+<p>
+Format of PGP signature.
+<p>
+It allows <code>pgp-elkins</code> or <code>pgp-kazu</code>.
+<p>
+Default value is <code>nil</code>.
+</defvar>
+
+<defvar name="mime-editor/encrypting-type">
+<p>
+Format of PGP encryption.
+<p>
+It allows <code>pgp-elkins</code> or <code>pgp-kazu</code>.
+<p>
+Default value is <code>nil</code>.
+</defvar>
+
+
+<h1> Concept Index
+<node> Concept Index
+
+<cindex>
+
+
+<h1> Function Index
+<node> Function Index
+
+<findex>
+
+
+<h1> Variable Index
+<node> Variable Index
+
+<vindex>
+
+</body>
-@c $Id: tm-edit-en.texi,v 3.0 1996/05/08 12:43:50 morioka Exp $
+\input texinfo.tex
+@setfilename tm-edit-en.info
+@settitle{tm-edit 7.90 Reference Manual (English Version)}
+@titlepage
+@title tm-edit 7.90 Reference Manual (English Version)
+@author MORIOKA Tomohiko <morioka@@jaist.ac.jp>
+@subtitle 1996/10/11
+@end titlepage
+@node Top, Introduction, (dir), (dir)
+@top tm-edit 7.90 Reference Manual (English Version)
+
+@ifinfo
+
+This file documents tm-edit, a MIME composer for GNU Emacs.
+@end ifinfo
-@node tm-edit, encoded-word, tm-view, Top
-@comment node-name, next, previous, up
-@chapter tm-edit
-@cindex tm-edit
+@menu
+* Introduction:: What is tm-edit?
+* mime/editor-mode::
+* single-part operations::
+* enclosure operation::
+* other operations of mime/editor-mode::
+* transfer level::
+* header:: Using non-ASCII characters in header
+* PGP::
+* Concept Index::
+* Function Index::
+* Variable Index::
+@end menu
-tm-edit is a general MIME viewer for GNU Emacs.
+@node Introduction, mime/editor-mode, Top, Top
+@chapter What is tm-edit?
+
+@cindex{tm-edit}@strong{tm-edit} is a general MIME composer for GNU
+Emacs.@refill
tm-edit is based on mime.el by UMEDA Masanobu
-<umerin@@mse.kyutech.ac.jp>, who is famous as the author of GNUS.
-tm-edit expands following points from mime.el:
+<umerin@@mse.kyutech.ac.jp>, who is famous as the author of
+GNUS. tm-edit expands following points from @file{mime.el}:
@itemize @bullet
-@item based on RFC 1521/1522
-@item Content-Disposition field (RFC 1806) supports
-@item multi-part in multi-part
-@item PGP
-@item strength automatic specification for parameter of file type
+@item
+based on RFC 1521/1522
+@item
+Content-Disposition field (@ref{(tm-en)Content-Disposition}) (RFC 1806)
+supports
+@item
+nested multi-part message (@ref{(tm-en)multipart})
+@item
+PGP (@ref{PGP}) (PGP/MIME (RFC 2015) based on security multipart (RFC
+1847) and application/pgp based on traditional PGP)
+@item
+strength automatic specification for parameter of file type
@end itemize
-@menu
-* mime/editor-mode::
-* single-part operations::
-* enclosure operation::
-* other operations of mime/editor-mode::
-@end menu
+In tm-MUA (@ref{(tm-en)tm-MUA}), you can edit MIME message easily to use
+tm-edit.
-@node mime/editor-mode, single-part operations, tm-edit, tm-edit
-@comment node-name, next, previous, up
-@section mime/editor-mode
-@cindex mime/editor-mode
+@node mime/editor-mode, single-part operations, Introduction, Top
+@chapter mime/editor-mode
-@emph{mime/editor-mode} is a minor mode to compose MIME message.
-In this mode, @emph{tag} represents various kinds of data, you can
-edit multi-part message.
+@cindex{mime/editor-mode}@strong{mime/editor-mode} is a minor mode to
+compose MIME message. In this mode, @cindex{tag}@strong{tag} represents
+various kinds of data, you can edit multi part (@ref{(tm-en)multipart})
+message.@refill
-There are 2 kinds of @emph{tag}s:
+There are 2 kinds of tags:
@itemize @bullet
-@item single-part tag
-@item multi-part tag
+@item
+ single-part tag
+@item
+ multi-part tag
@end itemize
single-part tag represents single part, this form is following:
@end example
TYPE/SUBTYPE and PARAMETERS indicates type/subtype and parameters of
-Content-Type field. TYPE/SUBTYPE is required, PARAMETERS is optional.
+Content-Type field (@ref{(tm-en)Content-Type field}). TYPE/SUBTYPE is
+required, PARAMETERS is optional.@refill
-ENCODING indicates Content-Transfer-Encoding field. It is optional too.
+ENCODING indicates Content-Transfer-Encoding field. It is optional
+too.@refill
-OPTIONAL-FIELDS is to represent another fields except Content-Type
-field and Content-Transfer-Encoding field.
+OPTIONAL-FIELDS is to represent another fields except Content-Type field
+and Content-Transfer-Encoding field.@refill
-multi-part tags represent multi part. They consist of a pair of
-@emph{multi-part beginning tag} and @emph{multi-part ending tag}.
+multi-part tags represent multi part (@ref{(tm-en)multipart}). They
+consist of a pair of @cindex{multi-part beginning tag}@strong{multi-part
+beginning tag} and @cindex{multi-part ending tag}@strong{multi-part
+ending tag}.@refill
-@emph{multi-part beginning tag}'s form is following:
+multi-part beginning tag's form is following:@refill
@example
--<<TYPE>>-@{
@end example
-@emph{multi-part ending tag}'s form is following:
+multi-part ending tag's form is following:@refill
@example
--@}-<<TYPE>>
@end example
A region from multi-part beginning tag to multi-part ending tag is
-called as @emph{enclosure}.
+called as @cindex{enclosure}@strong{enclosure}.
-@node single-part operations, enclosure operation, mime/editor-mode, tm-edit
-@comment node-name, next, previous, up
-@section single-part operations
-@cindex single-part
+@node single-part operations, enclosure operation, mime/editor-mode, Top
+@chapter single-part operations
Operations to make single-part are following:
Insert external part.
@item @key{C-c C-x C-v}
-Record audio input until @key{C-g} is pressed, and insert as a audio
-part. (It requires /dev/audio in default.)
+Record audio input until @kbd{C-g} is pressed, and insert as a
+audio part. (It requires /dev/audio in default.)
@item @key{C-c C-x C-y}
Insert current (mail or news) message. (It is MUA depended.)
@item @key{C-c C-x C-m}
Insert mail message. (It is MUA depended.)
-@item @key{C-c C-x C-w, C-c C-x C-s}
+@item @key{C-c C-x C-w}, @key{C-c C-x C-s}
Insert signature.
@item @key{C-c C-x C-k}
-Insert PGP public key. (It requires Mailcrypt package.)
+Insert PGP (@ref{PGP}) public key. (It requires Mailcrypt package.)
@item @key{C-c C-x t}
-Insert any single-part tag.
+Insert any single-part tag.
+
@end table
-@node enclosure operation, other operations of mime/editor-mode, single-part operations, tm-edit
-@comment node-name, next, previous, up
-@section enclosure operations
-@cindex multi-part
-@cindex enclosure
+
+@node enclosure operation, other operations of mime/editor-mode, single-part operations, Top
+@chapter enclosure operation
Operations to make enclosure are following:
Enclose specified region as multipart/digest.
@item @key{C-c C-x s}
-Digital-sign to specified region. (*1)
+Digital-sign to specified region. (cf. @ref{PGP})
@item @key{C-c C-x e}
-Encrypt to specified region. (*1)
-@end table
+Encrypt to specified region. (cf. @ref{PGP})
-@b{[Notice]}
-@enumerate
-@item
-It requires Mailcrypt package and pgp package. In addition, please set
-symbol @code{pgp-elkins} or @code{pgp-kazu} to
-variable @code{mime-editor/signing-type} and
-@code{mime-editor/encrypting-type}.
+@item @key{C-c C-x q}
+avoid to encode tags in specified region. In other words, tags is
+interpreted as such string. (In current version, it may be
+incomplete. Maybe PGP-signature does not work for this enclosure.)
+
+@end table
-@code{pgp-elkins} indicates draft-elkins-pem-pgp-02.txt,
-@code{pgp-kazu} indicates draft-kazu-pgp-mime-00.txt.
-@end enumerate
-@node other operations of mime/editor-mode, , enclosure operation, tm-edit
-@comment node-name, next, previous, up
-@section Another operation in mime/editor-mode.
+@node other operations of mime/editor-mode, transfer level, enclosure operation, Top
+@chapter other operations of mime/editor-mode
There are another operations in mime/editor-mode.
Send current editing message.
@item @key{C-c C-x C-p}
-Preview current editing message.
+Preview current editing message. (@ref{(tm-view-en)mime/viewer-mode})
@item @key{C-c C-x C-z}
Exit mime/editor-mode. (@key{M-x mime/edit-again} is available to
@item @key{C-c C-x ?}
Display help message.
-@item @key{M-x mime-editor/set-split}
+@item @key{C-c C-x /}
Set current editing message to enable automatic splitting or not.
Form of automatic split messages is message/partial.
-@item @key{M-x mime-editor/set-sign}
-Set current editing message to digital-sign or not. (*1)
+@item @key{C-c C-x 7}
+Set 7bit (@ref{(tm-en)7bit}) to transfer level (@ref{transfer level}).
+
+@item @key{C-c C-x 8}
+Set 8bit (@ref{(tm-en)8bit}) to transfer level (@ref{transfer level}).
+
+@item @key{C-c C-x v}
+Set current editing message to digital-sign or not. (cf. @ref{PGP})
+
+@item @key{C-c C-x h}
+Set current editing message to encrypt or not. (cf. @ref{PGP})
-@item @key{M-x mime-editor/set-encrypt}
-Set current editing message to encrypt or not. (*1)
@end table
-@b{[Notice]}
-@enumerate
-@item
-It requires Mailcrypt package and pgp package. In addition, please set
-symbol @code{pgp-elkins} or @code{pgp-kazu} to
-variable @code{mime-editor/signing-type} and
-@code{mime-editor/encrypting-type}.
-
-@code{pgp-elkins} indicates draft-elkins-pem-pgp-02.txt,
-@code{pgp-kazu} indicates draft-kazu-pgp-mime-00.txt.
-@end enumerate
+
+
+@node transfer level, header, other operations of mime/editor-mode, Top
+@chapter transfer level
+
+Contents inserted in a message are represented by 7bit
+(@ref{(tm-en)7bit}), 8bit (@ref{(tm-en)8bit}) or binary
+(@ref{(tm-en)binary}).@refill
+
+If a message is translated by 7bit-through MTA (@ref{(tm-en)MTA}), there
+is no need to encode 7bit data, but 8bit and binary data must be encoded
+to 7bit data.@refill
+
+Similarly, if a message is translated by 8bit-through MTA, there is no
+need to encode 7bit or 8bit data, but binary data must be encoded to
+7bit or 8bit data.@refill
+
+@noindent
+@strong{[Memo]}
+@quotation
+EBCDIC MTA breaks 7bit data, so in this case, 7bit data must be
+encoded by base64. But I don't know EBCDIC. (^_^;
+
+Similarly, I wish ASCII-printable only MTA and code-conversion MTA
+disappeared. (^_^;@refill
+
+Maybe there are binary-through MTA, but I think it is not major.
+@end quotation
+
+@cindex{transfer level}@strong{transfer level} represents how range data is
+available. tm-edit has a variable
+@code{mime-editor/transfer-level} to represent transfer level.
+
+
+@defvar mime-editor/transfer-level
+
+transfer level.@refill
+
+If transfer level of a data is over it, a data is encoded to
+7bit.@refill
+
+Currently, 7 or 8 is available. Default value is 7.@refill
+
+In extension plan, EBCDIC will be 5, ASCII printable only will be 6,
+binary will be 9. But it will not be implemented.
+@end defvar
+
+
+
+@noindent
+@strong{[Memo]}
+@quotation
+transfer level is only for body, not for header (@ref{header}). RFC
+1521 extends RFC 822 (@ref{(tm-en)RFC 822}) to use 8bit data in body,
+but it requires to use us-ascii (@ref{(tm-en)us-ascii}) in header.
+@end quotation
+
+
+
+@node header, PGP, transfer level, Top
+@chapter Using non-ASCII characters in header
+
+RFC 1522 (@ref{(tm-en)RFC 1522}) defines representation of non-ASCII
+characters in header.@refill
+
+It is a format called as @cindex{encoded-word}@strong{encoded-word}
+(@ref{(tm-en)encoded-word}), it is available to represent every
+non-ASCII characters by 7bit (@ref{(tm-en)7bit}) to declare MIME charset
+(@ref{(tm-en)MIME charset}).
+
+
+@menu
+* evil setting in header:: If you can not allow encoded-word
+* API about header:: Functions and variables about header
+@end menu
+
+@node evil setting in header, API about header, header, header
+@section If you can not allow encoded-word
+
+It is wrong to use ``raw'' non-ASCII characters in header not to use
+encoded-word. Because there are various kinds of coded character set
+(@ref{(tm-en)Coded character set}) in the Internet, so we can not
+distinguish them if MIME charset (@ref{(tm-en)MIME charset}) is not
+declared.@refill
+
+For example, we can not distinguish iso-8859-1 (@ref{(tm-en)iso-8859-1})
+and iso-8859-2 (@ref{(tm-en)iso-8859-2}) if MIME charset is not
+declared.@refill
+
+However you can not permit to use encoded-word, please set to
+following variables:
+
+
+@defvar mime/field-encoding-method-alist
+
+Association-list to specify field encoding method. Its key is
+field-name, value is encoding method.@refill
+
+field-name allows string or @code{t} meaning any fields.@refill
+
+Encoding method allows following: @code{nil} means no-conversion,
+@code{mime} means to convert as encoded-word, symbol represent MIME
+charset means to convert as the coded character set instead of to
+convert as encoded-word.@refill
+
+field-name is searched from string. If it is not found, @code{t} is
+used.@refill
+
+Default value of @code{mime/field-encoding-method-alist} is
+following:
+
+@lisp
+(("X-Nsubject" . iso-2022-jp-2)
+ ("Newsgroups" . nil)
+ (t . mime)
+ ))
+@end lisp
+@end defvar
+
+
+In addition, if you want to specify by coded character set instead of
+field, please use @code{mime-eword/charset-encoding-alist}.
+(cf. @ref{API about header})
+
+
+
+@node API about header, , evil setting in header, header
+@section Functions and variables about header
+
+@deffn{Command} mime/encode-message-header &optional code-conversion
+
+It translate non-ASCII characters in message header of current buffer
+into network representation, such as encoded-words.@refill
+
+If @var{code-conversion} is non-@code{nil}, field not encoded by
+encoded-word is converted by @code{mime/field-encoding-method-alist}.
+@end deffn
+
+
+@defun mime/encode-field string
+
+It encodes @var{string} into encoded-words as a field.@refill
+
+Long lines are folded.
+@end defun
+
+
+@defun mime-eword/encode-string string &optional column mode
+
+It encodes @var{string} into encoded-words.@refill
+
+Long lines are folded.@refill
+
+@var{column} specifies start column. If it is omitted, 0 is
+used.@refill
+
+@var{mode} specifies where @var{string} is in. Available values are
+@code{text}, @code{comment}, @code{phrase}. If it is omitted,
+@code{phrase} is used.
+@end defun
+
+
+@defvar mime-eword/charset-encoding-alist
+
+Association-list of symbol represent MIME charset vs. nil, @code{"B"} or
+@code{"Q"}.@refill
+
+@code{nil} means not to encode as encoded-word. @code{"B"} means to use
+B-encoding. @code{"Q"} means to use Q-encoding.
+@end defvar
+
+
+
+@node PGP, Concept Index, header, Top
+@chapter PGP
+
+tm-edit provides PGP encryption, signature and inserting public-key
+features based on @cindex{PGP/MIME}@strong{PGP/MIME}
+(@ref{(tm-en)PGP/MIME}) (RFC 2015) or @cindex{PGP-kazu}@strong{PGP-kazu}
+(@ref{(tm-en)PGP-kazu}) (draft-kazu-pgp-mime-00.txt).@refill
+
+This feature requires pgp command and Mailcrypt package
+(@ref{(mailcrypt)}).@refill
+
+If you want to use this feature, please set @code{pgp-elkins} or
+@code{pgp-kazu} to variable @code{mimed-editor/signing-type} and
+variable @code{mime-editor/encrypting-type}.@refill
+
+If @code{pgp-elkins} is specified, PGP/MIME is used. If
+@code{pgp-kazu} is specified, PGP-kazu is used.
+
+
+@defvar mime-editor/signing-type
+
+Format of PGP signature.@refill
+
+It allows @code{pgp-elkins} or @code{pgp-kazu}.@refill
+
+Default value is @code{nil}.
+@end defvar
+
+
+@defvar mime-editor/encrypting-type
+
+Format of PGP encryption.@refill
+
+It allows @code{pgp-elkins} or @code{pgp-kazu}.@refill
+
+Default value is @code{nil}.
+@end defvar
+
+
+
+@node Concept Index, Function Index, PGP, Top
+@chapter Concept Index
+
+@printindex cp
+
+@node Function Index, Variable Index, Concept Index, Top
+@chapter Function Index
+
+@printindex fn
+
+@node Variable Index, , Function Index, Top
+@chapter Variable Index
+
+@printindex vr
+@bye
* Menu:
-* What is MIME?::
-* How is MIME?::
* Glossary::
\1f
-File: tm-en.info, Node: What is MIME?, Next: How is MIME?, Prev: Introduction, Up: Introduction
-
-What is MIME?
-=============
-
-*MIME* stands for *Multipurpose Internet Mail Extensions*, it is a
-proposed internet standard for including content and headers other than
-(ASCII) plain text in messages.
-
-Current MIME standard consists of RFC 1521 and RFC 1522. RFC 1521
-describes multipurpose content in message bodies, while RFC 1522
-describes multilingual characters in headers.
-
-
-
-\1f
-File: tm-en.info, Node: How is MIME?, Next: Glossary, Prev: What is MIME?, Up: Introduction
-
-How is MIME?
-============
-
-In multipurpose message side, MIME can represent various contents such
-as images, sounds, videos, ... as against traditional Internet mail/news
-message can represent only (us-ascii (*Note us-ascii::)) plain text.
-
-Interestingly, MIME can send "procedure", such as ftp (*Note FTP::), ftp
-mail, file extraction, applying patch, ...
-
-# Of course, it has security problem.
-
-These various kinds of contents are defined by media types written in
-*Content-Type* (*Note Content-Type field::)
-field. Namely MIME message has information about content in header. So
-if reader defines processes for each content-type (*Note
-content-type::), he/she can display image, or play video or sound, or
-get file by ftp, or extract file, ... only read the message.
-
-In addition, MIME message can represent message includes plural parts,
-called *Multipart* (*Note multipart::) message. So it is possible to
-include picture and sound in one message.
-
-MIME seems have philosophy of "declaration". In other words, MIME is a
-message description language to represent various kinds of things uses
-us-ascii (*Note us-ascii::) as its "alphabet". Encoded-word defined in
-RFC 1522 (*Note encoded-word::) is same.
-
-In addition, MUA displays only what it can understand and ignore what
-can not understand.
-
-
-
-\1f
-File: tm-en.info, Node: Glossary, Prev: How is MIME?, Up: Introduction
+File: tm-en.info, Node: Glossary, Prev: Introduction, Up: Introduction
Glossary
========
* Coded character set:: Coded character set\e$B!JId9f2=J8;z=89g!K\e(B, Character code\e$B!JJ8;zId9f!K\e(B
* Code extension:: Code extension\e$B!JId9f3HD%!K\e(B
* Content-Disposition:: Content-Disposition field
-* content-type::
+* media type::
* Content-Type field::
* Emacs::
* encoded-word::
* RFC 934::
* RFC 1036::
* RFC 1153::
-* RFC 1521:: RFC 1521
* RFC 1557::
* RFC 1922::
+* RFC 2045::
+* RFC 2046::
+* RFC 2048::
+* RFC 2049::
* plain text::
* Security multipart::
* text/enriched::
7bit
----
-\e$B$3$3$G$O\e(B 0 \e$B$+$i\e(B 127 \e$B$N@0?t$r;X$7$^$9!#\e(B
+*7bit* means any integer between 0 .. 127.
-0 \e$B$+$i\e(B 127 \e$B$N@0?t$NNs$GI=8=$G$-$k$h$&$J\e(B data \e$B$r\e(B "7bit \e$B$N\e(B data" \e$B$H8F$S$^\e(B
-\e$B$9!#\e(B
+Any data represented by 7bit integers is called *7bit data*.
-\e$B$^$?!"\e(B0 \e$B$+$i\e(B 31 \e$B$*$h$S\e(B 127 \e$B$GI=8=$5$l$k@)8fJ8;z$H\e(B 32 \e$B$GI=8=$5$l$k6uGr$H\e(B
-33 \e$B$+$i\e(B 126 \e$B$GI=8=$5$l$k?^7AJ8;z$+$i$J$kJ8;zNs$N$3$H$r\e(B "7bit \e$B$NJ8;zNs\e(B"
-\e$B$H8F$S$^$9!J$3$l$O\e(B ISO 2022 (*Note ISO 2022::) \e$B$N!V\e(B7 \e$BC10L7O!W$HF1MM$G$9!K!#\e(B
+Textual string consisted of Control characters between 0 .. 31 and 127,
+and space represented by 32, and graphic characters between 33 .. 236
+are called *7bit (textual) string*.
-\e$BEAE}E*$J\e(B Internet \e$B$N\e(B MTA (*Note MTA::) \e$B$O\e(B 7bit \e$B$N\e(B data \e$B$rE>Aw$G$-$k$N$G!"\e(B
-7bit \e$B$N\e(B data \e$B$O\e(B Quoted-Printable (*Note Quoted-Printable::) \e$B$d\e(B Base64
-(*Note Base64::) \e$B$H$$$C$?JQ49$r9T$o$J$/$F$b$=$N$^$^E>Aw$G$-$^$9!#\e(B
+Traditional Internet MTA (*Note MTA::) can translate 7bit data, so it is
+no need to translate by Quoted-Printable (*Note Quoted-Printable::) or
+Base64 (*Note Base64::) for 7bit data.
-\e$B$7$+$7!"\e(B7bit \e$B$G$"$l$P$I$s$J\e(B data \e$B$G$bNI$$$H$O$$$($^$;$s!#$J$<$J$i!"#19T\e(B
-\e$B$ND9$5$,$"$^$j$KD9$$$H!"\e(BMTA \e$B$O$=$N\e(B message \e$B$rE>Aw$9$k$3$H$,$G$-$J$$$+$i\e(B
-\e$B$G$9!#$A$J$_$K!"\e(BRFC 821 (*Note RFC 821::) \e$B$O#19T$O2~9TJ8;z$r=|$$$F\e(B 998
-byte \e$B0JFb$G$"$k$3$H$r5a$a$F$$$^$9!#$h$C$F!"$3$l0J>e$N9T$,4^$^$l$k2DG=@-\e(B
-\e$B$N$"$k\e(B data, \e$BNc$($P!"\e(BPostscript \e$B$N\e(B data \e$B$J$I$O\e(B Quoted-Printable \e$BEy$G\e(B
-encode\e$B$9$kI,MQ$,$"$j$^$9!#\e(B
+However if there are too long lines, it can not translate by 7bit MTA
+even if it is 7bit data. RFC 821 (*Note RFC 821::) and RFC 2045 (*Note
+RFC 2045::) require lines in 7bit data must be less than 998 bytes. So
+if a "7bit data" has a line more than 999 bytes, it is regarded as
+binary (*Note binary::). For example, Postscript file should be encoded
+by Quoted-Printable.
8bit
----
-\e$B$3$3$G$O\e(B 0 \e$B$+$i\e(B 255 \e$B$N@0?t$r;X$7$^$9!#\e(B
+*8bit* means any integer between 0 .. 255.
-0 \e$B$+$i\e(B 255 \e$B$N@0?t$NNs$GI=8=$G$-$k$h$&$J\e(B data \e$B$r\e(B "8bit \e$B$N\e(B data" \e$B$H8F$S$^\e(B
-\e$B$9!#\e(B
+Any data represented by 8bit integers is called *8bit data*.
-\e$B$^$?!"\e(B0 \e$B$+$i\e(B 31, 127 \e$B$*$h$S\e(B 128 \e$B$+$i\e(B 159 \e$B$GI=8=$5$l$k@)8fJ8;z$H\e(B 32 \e$B$GI=\e(B
-\e$B8=$5$l$k6uGr$H\e(B 33 \e$B$+$i\e(B 126 \e$B$H\e(B 160 \e$B$+$i\e(B 255 \e$B$GI=8=$5$l$k?^7AJ8;z$+$i$J$k\e(B
-\e$BJ8;zNs$N$3$H$r\e(B "8bit \e$B$NJ8;zNs\e(B" \e$B$H8F$S$^$9!J$3$l$O\e(B ISO 2022 (*Note ISO
-2022::) \e$B$N!V\e(B8 \e$BC10L7O!W$HF1MM$G$9!K!#\e(B
+Textual string consisted of Control characters between 0 .. 31, 127, and
+128 .. 159, and space represented by 32, and graphic characters between
+33 .. 236 and 160 .. 255 are called *8bit (textual) string*.
-iso-8859-1 (*Note iso-8859-1::) \e$B$d\e(B euc-kr (*Note euc-kr::) \e$B$H$$$C$?Id9f\e(B
-\e$B2=J8;z=89g$O\e(B 8bit \e$B$NJ8;zNs$G$9!#\e(B
+For example, iso-8859-1 (*Note iso-8859-1::) or euc-kr (*Note euc-kr::)
+are coded-character-set represented by 8bit textual string.
-\e$BEAE}E*$J\e(B Internet \e$B$N\e(B MTA (*Note MTA::) \e$B$O\e(B 7bit (*Note 7bit::) \e$B$N\e(B data \e$B$7\e(B
-\e$B$+E>Aw$G$-$J$$$N$G!"$=$&$7$?\e(B MTA \e$B$r7PM3$9$k>l9g!"\e(BQuoted-Printable (*Note
-Quoted-Printable::) \e$B$d\e(B Base64 (*Note Base64::) \e$B$H$$$C$?JQ49$r9T$o$J$/$F\e(B
-\e$B$O$J$j$^$;$s!#\e(B
+Traditional Internet MTA (*Note MTA::) can translate only 7bit (*Note
+7bit::) data, so if a 8bit data will be translated such MTA, it must be
+encoded by Quoted-Printable (*Note Quoted-Printable::) or Base64 (*Note
+Base64::).
-\e$B$7$+$7!":G6a$G$O\e(B 8bit \e$B$NJ8;zNs$r$=$N$^$^DL$9$3$H$,$G$-$k\e(B MTA \e$B$bEP>l$7$F\e(B
-\e$B$-$?$N$G!"$=$N$^$^Aw$k$3$H$,$G$-$k>l9g$bA}$($F$-$^$7$?!#\e(B
+However 8bit MTA are increasing today.
-\e$B$7$+$7!"\e(B8bit \e$B$G$"$l$P$I$s$J\e(B data \e$B$G$bNI$$$H$O$$$($^$;$s!#$J$<$J$i!"#19T\e(B
-\e$B$ND9$5$,$"$^$j$KD9$$$H!"\e(BMTA \e$B$O$=$N\e(B message \e$B$rE>Aw$9$k$3$H$,$G$-$J$$$+$i\e(B
-\e$B$G$9!#$A$J$_$K!"\e(BRFC 821 \e$B$O#19T$O2~9TJ8;z$r=|$$$F\e(B 998 byte \e$B0JFb$G$"$k$3$H\e(B
-\e$B$r5a$a$F$$$^$9!#$h$C$F!"$3$l0J>e$N9T$,4^$^$l$k2DG=@-$N$"$k\e(B data, \e$BNc$($P!"\e(B
-Postscript \e$B$N\e(B data \e$B$J$I$O\e(B Quoted-Printable \e$BEy$G\e(B encode\e$B$9$kI,MQ$,$"$j$^$9!#\e(B
-
-
-\e$B$^$?!"$3$&$7$?M}M3$+$i!"#19T$,\e(B 999 byte \e$B0J>e$N9T$,B8:_$9$k2DG=@-$N$"$k\e(B
-data \e$B$O\e(B *binary* (*Note binary::) \e$B$H8F$V$3$H$K$7$^$9!#\e(B
-
-\e$B$A$J$_$K!"\e(B7bit \e$B$GI=8=$G$-$k\e(B data \e$B$O\e(B 8bit \e$B$G$bI=8=$G$-$^$9!#$h$C$F!"\e(B
-"8bit" \e$B$H8@$C$?>l9g!"#19T$,\e(B 998 byte \e$B0J2<$NG$0U$N\e(B data \e$B$r;X$9$3$H$,$"$j\e(B
-\e$B$^$9!#\e(B
+However if there are too long lines, it can not translate by 8bit MTA
+even if it is 8bit data. RFC 2045 (*Note RFC 2045::) require lines in
+8bit data must be less than 998 bytes. So if a "8bit data" has a line
+more than 999 bytes, it is regarded as binary (*Note binary::), so it
+must be encoded by Base64 or Quoted-Printable.
Base64
------
-RFC 1521 (*Note RFC 1521::) \e$B$GDj5A$5$l$F$$$k\e(B MIME (*Note MIME::) \e$B$K$*$1\e(B
-\e$B$k\e(B binary data (*Note binary::) \e$B$N\e(B network \e$B$G$NJQ49K!$N#1$D!#\e(B
+*Base64* is a transfer encoding method of MIME
+(*Note MIME::) defined in RFC 2045 (*Note RFC 2045::).
-\e$B!X\e(B64 \e$B?J?t!Y$H$$$&0UL#$G!"\e(B3 byte \e$B$N\e(B data \e$B$r\e(B 0 \e$B$+$i\e(B 63 \e$B$N?t$rI=$9\e(B ASCII
-(*Note ASCII::) 4 \e$BJ8;z$KJQ49$9$kJ}K!!#!J$b$7!"\e(B4 \e$BJ8;z$K$J$i$J$1$l$P\e(B
-*pad* \e$B$H8F$P$l$k5M$aJ*$r$7$FD9$5$rD4@0$9$k!K\e(B
+The encoding process represents 24-bit groups of input bits as output
+strings of 4 encoded characters. Encoded characters represent integer 0
+.. 63 or *pad*. Base64 data must be 4 * n bytes, so
+pad is used to adjust size.
-\e$B$3$N\e(B 65 \e$B<oN`$NJ8;z$O\e(B ASCII \e$B$H\e(B EBCDIC \e$B$N6&DLItJ,$+$iA*$P$l$F$*$j!"\e(B
-Internet \e$B0J30$N\e(B network \e$B$r7PM3$9$k>l9g$G$b0BA4$KE>Aw$G$-$k$h$&$K@_7W$5$l\e(B
-\e$B$F$$$k!#\e(B
+These 65 characters are subset of all versions of ISO 646, including
+US-ASCII, and all versions of EBCDIC. So it is safe even if it is
+translated by non-Internet gateways.
\1f
-File: tm-en.info, Node: Content-Disposition, Next: content-type, Prev: Code extension, Up: Glossary
+File: tm-en.info, Node: Content-Disposition, Next: media type, Prev: Code extension, Up: Glossary
Content-Disposition field
-------------------------
\1f
-File: tm-en.info, Node: content-type, Next: Content-Type field, Prev: Content-Disposition, Up: Glossary
+File: tm-en.info, Node: media type, Next: Content-Type field, Prev: Content-Disposition, Up: Glossary
-content-type
-------------
+media type
+----------
-MIME (*Note MIME::) \e$B$K$*$1$k\e(B part (*Note part::) \e$B$N<oN`!#\e(B
-*type* \e$B$H\e(B *subtype* \e$B$+$i$J$k!#\e(B
-RFC 1521 (*Note RFC 1521::) \e$B$GDj5A$5$l$F$$$k!#\e(B
+*media type* specifies the nature of the data
+in the body of MIME (*Note MIME::) entity (*Note entity::). It consists of
+*type* and *subtype*. It is
+defined in RFC 2046 (*Note RFC 2046::).
-type \e$B$OI8=`$G$O\e(B *application*,
-*audio*, *image*,
-*message*, *multipart*
-(*Note multipart::), *text*,
-*video* \e$B$,Dj5A$5$l!"$=$l$>$l$K$O\e(B
-application/octet-stream, audio/basic, image/jpeg, multipart/mixed
-(*Note multipart/mixed::), text/plain (*Note text/plain::), video/mpeg
-\e$B$J$I$N$5$^$6$^$J\e(B subtype \e$B$,Dj5A$5$l$F$$$k!#\e(B
+Currently there are following types:
-*[\e$BCm0U\e(B]*
+ * *text*
+ * *image*
+ * *audio*
+ * *video*
+ * *application*
+ * *multipart* (*Note multipart::)
+ * *message*
- \e$B$3$3$G$O!"\e(Btext/plain \e$B$J$I$N\e(B type/subtype \e$B$NAH$r$7$P$7$P\e(B
- *content-type/subtype* \e$B$H=q$/!#\e(B
+And there are various subtypes, for example, application/octet-stream,
+audio/basic, image/jpeg, multipart/mixed (*Note multipart/mixed::),
+text/plain (*Note text/plain::), video/mpeg...
-content-type \e$B$O!"\e(BRFC 1521 \e$B$GDj5A$5$l$F$$$k$b$N$K2C$($F!"EPO?$9$k$3$H$b$G\e(B
-\e$B$-$k!#8=:_!"EPO?$5$l$F$$$k$b$N$O\e(B MEDIA TYPES
-(ftp://ftp.isi.edu/in-notes/iana/assignments/media-types) \e$B$G;2>H$G$-$k!#\e(B
+You can refer registered media types at MEDIA TYPES
+(ftp://ftp.isi.edu/in-notes/iana/assignments/media-types).
-\e$B$^$?!"\e(Btype \e$B$b$7$/$O\e(B subtype \e$B$K!"A0$K\e(B `x-' \e$B$rIU$1$?\e(B
-*x-token* \e$B$rMQ$$$k$3$H$K$h$j!"EPO?$5$l$F$$$J$$$b\e(B
-\e$B$N$r;dE*$KMQ$$$k$3$H$b$G$-$k!#$7$+$7!"EvA3$N$3$H$J$,$i!"$3$&$7$?;dE*$J\e(B
-content-type \e$B$ONJ2r$rF@$?<T$N4V$G$7$+2r<a$G$-$J$$$N$GMxMQ$K$OCm0U$9$k$3\e(B
-\e$B$H!#\e(B
+In addition, you can use private type or subtype using
+*x-token*, which as the prefix `x-'. However you
+can not use them in public.
(cf. *Note Content-Type field::)
\1f
-File: tm-en.info, Node: Content-Type field, Next: Emacs, Prev: content-type, Up: Glossary
+File: tm-en.info, Node: Content-Type field, Next: Emacs, Prev: media type, Up: Glossary
Content-Type field
------------------
-Header field to represent information about part, such as content-type
-(*Note content-type::), MIME charset (*Note MIME charset::). It is
-defined in RFC 1521 (*Note RFC 1521::).
+Header field to represent information about body, such as media type
+(*Note media type::), MIME charset (*Note MIME charset::). It is
+defined in RFC 2045 (*Note RFC 2045::).
*[Memo]*
Historically, Content-Type field was proposed in RFC 1049. In it,
- Content-Type did not distinguish type and subtype. However RFC
- 1521 parser may be able to accept RFC 1049 based Content-Type as
- unknown type.
+ Content-Type did not distinguish type and subtype. However MIME
+ parser may be able to accept RFC 1049 based Content-Type as unknown
+ type.
Content-Type field is defined as following:
------------
Representation non ASCII (*Note ASCII::) characters in header. It is
-defined in *RFC 1522*.
+defined in *RFC 2047*.
-[RFC 1522] K. Moore, "MIME (Multipurpose Internet Mail Extensions)
- Part Two: Message Header Extensions for Non-ASCII Text", September
- 1993, Standards Track.
+[RFC 2047] K. Moore, "MIME (Multipurpose Internet Mail Extensions)
+ Part Three: Message Header Extensions for Non-ASCII Text", November
+ 1996, Standards Track (obsolete RFC 1521,1522,1590).
iso-8859-1
----------
-\e$B@>2$=t8l$J$I$rI=8=$9$k$?$a$N\e(B MIME charset (*Note MIME charset::) \e$B$N#1$D!#\e(B
+*iso-8859-1* is a MIME charset (*Note MIME charset::) for west-European languages written by Latin script.
ISO 2022 (*Note ISO 2022::) \e$B$K4p$$$F!"\e(BASCII (*Note ASCII::) \e$B$K\e(B ISO
8859-1 (*Note ISO 8859-1::) \e$B$r\e(B 8bit (*Note 8bit::) \e$B$GId9f3HD%\e(B (*Note
Code extension::)\e$B$7$F$$$k!#\e(B
-RFC 1521 (*Note RFC 1521::) \e$B$GDj5A$5$l$F$$$k!#\e(B
+It is defined in RFC 2046 (*Note RFC 2046::).
iso-8859-2
----------
-\e$BEl2$=t8l$rI=8=$9$k$?$a$N\e(B MIME charset (*Note MIME charset::) \e$B$N#1$D!#\e(B
+*iso-8859-2* is a MIME charset (*Note MIME charset::) for east-European languages written by Latin script.
ISO 2022 (*Note ISO 2022::) \e$B$K4p$$$F!"\e(BASCII (*Note ASCII::) \e$B$K\e(B ISO
8859-2 (*Note ISO 8859-2::) \e$B$r\e(B 8bit (*Note 8bit::) \e$B$GId9f3HD%\e(B (*Note
Code extension::)\e$B$7$F$$$k!#\e(B
-RFC 1521 (*Note RFC 1521::) \e$B$GDj5A$5$l$F$$$k!#\e(B
+It is defined in RFC 2046 (*Note RFC 2046::).
iso-8859-5
----------
-\e$B%-%j%kJ8;z$rI=8=$9$k$?$a$N\e(B MIME charset (*Note MIME charset::) \e$B$N#1$D!#\e(B
+*iso-8859-5* is a MIME charset (*Note MIME charset::) for Cyrillic script.
ISO 2022 (*Note ISO 2022::) \e$B$K4p$$$F!"\e(BASCII (*Note ASCII::) \e$B$K\e(B ISO
8859-5 (*Note ISO 8859-5::) \e$B$r\e(B 8bit (*Note 8bit::) \e$B$GId9f3HD%\e(B (*Note
Code extension::)\e$B$7$F$$$k!#\e(B
-RFC 1521 (*Note RFC 1521::) \e$B$GDj5A$5$l$F$$$k!#\e(B
+It is defined in RFC 2046 (*Note RFC 2046::).
iso-8859-7
----------
-\e$B%.%j%7%"8l$rI=8=$9$k$?$a$N\e(B MIME charset (*Note MIME charset::) \e$B$N#1$D!#\e(B
+*iso-8859-7* is a MIME charset (*Note MIME charset::) for Greek script.
ISO 2022 (*Note ISO 2022::) \e$B$K4p$$$F!"\e(BASCII (*Note ASCII::) \e$B$K\e(B ISO
8859-7 (*Note ISO 8859-7::) \e$B$r\e(B 8bit (*Note 8bit::) \e$B$GId9f3HD%\e(B (*Note
Code extension::)\e$B$7$F$$$k!#\e(B
-RFC 1947 \e$B$GDj5A$5$l$F$$$k!#\e(B
+It is defined in RFC 1947.
[iso-8859-7: RFC 1947] D. Spinellis, "Greek Character Encoding for
message/rfc822
--------------
-\e$BEAE}E*$J\e(B RFC 934 (*Note RFC 934::) \e$B$KBe$o$j!"\e(BRFC 822 (*Note RFC 822::)
-\e$B$GDj5A$5$l$k\e(B mail \e$B$rI=$9\e(B MIME \e$B$N7A<0!#\e(BRFC 1521 (*Note RFC 1521::) \e$B$GDj5A\e(B
-\e$B$5$l$F$$$k!#\e(B
+*message/rfc822* indicates that the body
+contains an encapsulated message, with the syntax of an RFC 822 (*Note
+RFC 822::) message. It is the replacement of traditional RFC 934 (*Note
+RFC 934::) encapsulation. It is defined in RFC 2046 (*Note RFC 2046::).
MIME
----
-*Multipurpose
-Internet Mail Extensions* \e$B$NN,$G!"\e(BInternet \e$B$N\e(B mail \e$B$d\e(B news \e$B$G\e(B us-ascii
-plain text (*Note us-ascii::) \e$B0J30$NJ8;z$r;H$&$?$a$N\e(B RFC 822 (*Note RFC
-822::) \e$B$KBP$9$k3HD%!#\e(B
+MIME stands for *Multipurpose Internet Mail Extensions*, it is an
+extension for RFC 822 (*Note RFC 822::).
-RFC 1521 (*Note RFC 1521::) \e$B$H\e(B RFC 1522 (*Note encoded-word::) \e$B$GDj5A$5\e(B
-\e$B$l$F$$$k!#\e(B
+According to RFC 2045:
-(cf. *Note What is MIME?::)
+STD 11, RFC 822, defines a message representation protocol specifying
+considerable detail about US-ASCII message headers, and leaves the
+message content, or message body, as flat US-ASCII text. This set of
+documents, collectively called the Multipurpose Internet Mail
+Extensions, or MIME, redefines the format of messages to allow for
+ 1. textual message bodies in character sets other than US-ASCII,
+ 2. an extensible set of different formats for non-textual message
+ bodies,
+ 3. multi-part message bodies, and
+ 4. textual header information in character sets other than US-ASCII.
+
+
+It is defined in RFC 2045 (*Note RFC 2045::), RFC 2046 (*Note RFC
+2046::), RFC 2047 (*Note encoded-word::), RFC 2048 (*Note RFC 2048::)
+and RFC 2049 (*Note RFC 2049::).
MIME charset
------------
-Content-Type field (*Note Content-Type field::) \e$B$d\e(B encoded-word (*Note
-encoded-word::) \e$B$N\e(B charset parameter \e$B$GMQ$$$i$l$kEPO?$5$l$?Id9f2=J8;z=8\e(B
-\e$B9g\e(B (*Note Coded character set::)\e$B!#\e(B
+Coded character set (*Note Coded character set::) used in Content-Type
+field (*Note Content-Type field::) or charset parameter of encoded-word
+(*Note encoded-word::).
-RFC 1521 (*Note RFC 1521::) \e$B$GDj5A$5$l$F$$$k!#\e(B
+It is defined in RFC 2045 (*Note RFC 2045::).
iso-2022-jp (*Note iso-2022-jp::) \e$B$d\e(B euc-kr (*Note euc-kr::) \e$B$O$=$N#1$D!#\e(B
\e$B!J$3$3$G$O!"\e(BMIME charset \e$B$OJ8;z=89g\e(B (*Note Character set::)\e$B$H6hJL$7$F>.\e(B
Multipart
---------
-\e$B#1$D$N\e(B message (*Note message::) \e$B$KJ#?t$N\e(B part \e$B$rF~$l$k$?$a$N\e(B MIME
-(*Note MIME::) \e$B$K$*$1$kI=8=K!!"$b$7$/$O!"J#?t$N\e(B part \e$B$+$i$J$k\e(B message \e$B$r\e(B
-\e$B;X$9!#\e(B(cf. *Note content-type::)
+*multipart* means media type (*Note media type::)
+to insert multiple entities (*Note entities::) in a single body. Or it
+also indicates a message consists of multiple entities.
-\e$B8=:_!"Dj5A$5$l$F$$$k\e(B *multipart* \e$B$H$7$F$O!"\e(BRFC 1521 (*Note RFC 1521::)
-\e$B$GDj5A$5$l$?\e(B
+There are following subtypes registered in RFC 2046 (*Note RFC 2046::):
* multipart/mixed (*Note multipart/mixed::)
* multipart/alternative (*Note multipart/alternative::)
* multipart/digest (*Note multipart/digest::)
* multipart/parallel (*Note multipart/parallel::)
-\e$B$N$[$+\e(B RFC 1847 (*Note Security multipart::) \e$B$GDj5A$5$l$?\e(B
+and registered in RFC 1847 (*Note Security multipart::):
* multipart/signed (*Note multipart/signed::)
* multipart/encrypted (*Note multipart/encrypted::)
-\e$B$J$I$,$"$k!#\e(B
multipart/alternative
---------------------
-multipart (*Note multipart::) \e$B$N#1$D$G!"F1$8>pJs$r0[$C$?7A<0$GF~$l!"A*Br\e(B
-\e$B;h$H$9$k>l9g$KMQ$$$k!#\e(B
+*multipart/digest* is one of multipart
+(*Note multipart::) media types. This type is syntactically identical
+to multipart/mixed (*Note multipart/mixed::), but the semantics are
+different. In particular, each of the body parts is an "alternative"
+version of the same information.
-(cf. *Note RFC 1521::)
+(cf. *Note RFC 2046::)
multipart/digest
----------------
-multipart (*Note multipart::) \e$B$N#1$D$G!"4^$^$l$k\e(B part \e$B$N\e(B default \e$B$N\e(B
-content-type (*Note content-type::) \e$B$,\e(B multipart/mixed (*Note
-multipart/mixed::) \e$B$J$I$N>l9g\e(B text/plain (*Note text/plain::) \e$B$G$"$k$N$K\e(B
-\e$BBP$7!"\e(B*multipart/digest*\e$B$G$O\e(B message/rfc822 (*Note message/rfc822::) \e$B$,\e(B
-\e$BMQ$$$i$l$kE@$,0[$J$k!#\e(B
+*multipart/digest* is one of multipart
+(*Note multipart::) media types. This type is syntactically identical
+to multipart/mixed (*Note multipart/mixed::), but the semantics are
+different. In particular, in a digest, the default Content-Type value
+for a body part is changed from text/plain (*Note text/plain::) to
+message/rfc822 (*Note message/rfc822::).
-\e$B$3$l$OEAE}E*$J\e(B RFC 1153 (*Note RFC 1153::) \e$B$K4p$E$/\e(B encapsulation (*Note
-encapsulation::) \e$B$KBe$o$k$b$N$G$"$k!#\e(B
+This is the replacement of traditional RFC 1153 (*Note RFC 1153::) based
+encapsulation (*Note encapsulation::).
-(cf. *Note RFC 1521::)
+(cf. *Note RFC 2046::)
multipart/mixed
---------------
-multipart (*Note multipart::) \e$B$N<gMW$J\e(B subtype \e$B$G!"J#?t$N\e(B part \e$B$r=g=xIU\e(B
-\e$B$1$FJB$Y$k>l9g$KMQ$$$k!#\e(B
+Primary and default subtype of multipart (*Note multipart::), it is used
+when the body parts are independent and need to be bundled in a
+particular order.
-(cf. *Note RFC 1521::)
+(cf. *Note RFC 2046::)
multipart/parallel
------------------
-multipart (*Note multipart::) \e$B$N#1$D$G!"J#?t$N\e(B part \e$B$r=g=xIU$1$:$K4^$a$k\e(B
-\e$B>l9g$KMQ$$$k!#\e(B
+*multipart/parallel* is a subtype of
+multipart (*Note multipart::). This type is syntactically identical to
+multipart/mixed (*Note multipart/mixed::), but the semantics are
+different. In particular, in a parallel entity, the order of body parts
+is not significant.
-(cf. *Note RFC 1521::)
+(cf. *Note RFC 2046::)
Quoted-Printable
----------------
-RFC 1521 (*Note RFC 1521::) \e$B$GDj5A$5$l$F$$$k\e(B MIME (*Note MIME::) \e$B$K$*$1\e(B
-\e$B$k\e(B binary data (*Note binary::) \e$B$N\e(B network \e$B$G$NJQ49K!$N#1$D!#\e(B
+*Quoted-Printable* is a transfer
+encoding method of MIME (*Note MIME::) defined in RFC 2045 (*Note RFC
+2045::).
+
+If the data being encoded are mostly US-ASCII text, the encoded form of
+the data remains largely recognizable by humans.
-`=' \e$B$d@)8fJ8;z$d\e(B 128 \e$B0J>e$NJ8;z$J$I$O\e(B `=AF' \e$B$N$h$&$K\e(B `=' \e$B$N8e$KB3$/\e(B 16
-\e$B?J?t$GI=8=$9$k!#$3$N$?$a!"\e(BASCII (*Note ASCII::) \e$BJ8;zCf?4$N\e(B data \e$B$G$O\e(B
-Base64 (*Note Base64::) \e$B$KHf$Y$k$H2DFI@-$,9b$/$J$k2DG=@-$,$"$k!#\e(B
+(cf. *Note Base64::)
-\e$B$7$+$7$J$,$i!"\e(BEBCDIC \e$B$K$OB8:_$7$J$$J8;z$rMxMQ$9$k>l9g!"\e(BEBCDIC \e$B$rMxMQ$7$F\e(B
-\e$B$$$k\e(B network \e$B$G$O0BA4$KE>Aw$9$k$3$H$,$G$-$:!"\e(BBase64 \e$B$KHf$Y$F0BA4@-$ODc$$!#\e(B
\1f
-File: tm-en.info, Node: RFC 1153, Next: RFC 1521, Prev: RFC 1036, Up: Glossary
+File: tm-en.info, Node: RFC 1153, Next: RFC 1557, Prev: RFC 1036, Up: Glossary
RFC 1153
--------
\1f
-File: tm-en.info, Node: RFC 1521, Next: RFC 1557, Prev: RFC 1153, Up: Glossary
-
-RFC 1521
---------
-
-MIME (*Note MIME::) \e$B$rDj5A$7$F$$$k\e(B RFC \e$B$N#1$D!#\e(B
-
-
-[RFC 1521] N. Borenstein and N. Freed, "MIME (Multipurpose Internet
- Mail Extensions) Part One: Mechanisms for Specifying and Describing
- the Format of Internet Message Bodies", September 1993, Standards
- Track (obsolete RFC 1341).
-
-
-(RFC 1522 (*Note encoded-word::))
-
-
-
-\1f
-File: tm-en.info, Node: RFC 1557, Next: RFC 1922, Prev: RFC 1521, Up: Glossary
+File: tm-en.info, Node: RFC 1557, Next: RFC 1922, Prev: RFC 1153, Up: Glossary
RFC 1557
--------
\1f
-File: tm-en.info, Node: RFC 1922, Next: plain text, Prev: RFC 1557, Up: Glossary
+File: tm-en.info, Node: RFC 1922, Next: RFC 2045, Prev: RFC 1557, Up: Glossary
RFC 1922
--------
\1f
-File: tm-en.info, Node: plain text, Next: Security multipart, Prev: RFC 1922, Up: Glossary
+File: tm-en.info, Node: RFC 2045, Next: RFC 2046, Prev: RFC 1922, Up: Glossary
+
+RFC 2045
+--------
+
+
+[RFC 2045] N. Freed and N. Borenstein, "Multipurpose Internet Mail
+ Extensions (MIME) Part One: Format of Internet Message Bodies",
+ November 1996, Standards Track (obsolete RFC 1521, 1522, 1590).
+
+
+
+
+\1f
+File: tm-en.info, Node: RFC 2046, Next: RFC 2048, Prev: RFC 2045, Up: Glossary
+
+RFC 2046
+--------
+
+
+[RFC 2046] N. Freed and N. Borenstein, "Multipurpose Internet Mail
+ Extensions (MIME) Part Two: Media Types", November 1996, Standards
+ Track (obsolete RFC 1521, 1522, 1590).
+
+
+
+
+\1f
+File: tm-en.info, Node: RFC 2048, Next: RFC 2049, Prev: RFC 2046, Up: Glossary
+
+RFC 2048
+--------
+
+
+[RFC 2048] N. Freed, J. Klensin and J. Postel, "Multipurpose
+ Internet Mail Extensions (MIME) Part Four: Registration
+ Procedures", November 1996, Standards Track (obsolete RFC 1521,
+ 1522, 1590).
+
+
+
+
+\1f
+File: tm-en.info, Node: RFC 2049, Next: plain text, Prev: RFC 2048, Up: Glossary
+
+RFC 2049
+--------
+
+
+[RFC 2049] N. Freed and N. Borenstein, "Multipurpose Internet Mail
+ Extensions (MIME) Part Five: Conformance Criteria and Examples",
+ November 1996, Standards Track (obsolete RFC 1521, 1522, 1590).
+
+
+
+
+\1f
+File: tm-en.info, Node: plain text, Next: Security multipart, Prev: RFC 2049, Up: Glossary
plain text
----------
text/enriched
-------------
-RFC 1521 (*Note RFC 1521::) \e$B$GDj5A$5$l$?\e(B
-*text/richtext* \e$B$KBe$o$C$F!"=qBN$dAHHG$K4X\e(B
-\e$B$9$k>pJs$r;}$C$?\e(B text\e$B$rI=8=$9$k$?$a$N\e(B content-type (*Note
-content-type::).
+RFC 1521 \e$B$GDj5A$5$l$?\e(B *text/richtext* \e$B$KBe$o$C$F!"=qBN$dAHHG$K4X$9$k>pJs\e(B
+\e$B$r;}$C$?\e(B text\e$B$rI=8=$9$k$?$a$N\e(B media type (*Note media type::).
[text/enriched: RFC 1896] P. Resnick and A. Walker, "The
text/plain
----------
-RFC 1521 (*Note RFC 1521::) \e$B$GDj5A$5$l$?!"\e(Bplain text (*Note plain
-text::) \e$B$rI=8=$9$k$?$a$N\e(B content-type (*Note content-type::).
+*text/plain* is a media type (*Note media type::) for plain text (*Note plain text::), defined in RFC 2046 (*Note RFC 2046::).
+
+The default media type of "text/plain; charset=us-ascii" for Internet
+mail describes existing Internet practice. That is, it is the type of
+body defined by RFC 822 (*Note RFC 822::).
+
+(cf. *Note MIME charset::) (cf. *Note us-ascii::)
-\e$BHs\e(B MIME message \e$B$J$I$N\e(B content-type \e$B$,Dj5A$5$l$J$$\e(B part \e$B$O\e(B MIME charset
-(*Note MIME charset::) \e$B$,\e(B us-ascii (*Note us-ascii::) \e$B$G$"$k\e(B
-*text/plain* \e$B$N\e(B part \e$B$G$"$k$H8+Pv$5$l$k$3$H$K\e(B
-\e$B$J$C$F$$$k!#\e(B
and discuss future enhancements to tm. To join the tm ML, send e-mail
to:
- * \e$BF|K\8l\e(B <tm-ja-admin@chamonix.jaist.ac.jp>
- * \e$B1Q8l\e(B <tm-en-admin@chamonix.jaist.ac.jp>
+ * Japanese <tm-ja-admin@chamonix.jaist.ac.jp>
+ * English <tm-en-admin@chamonix.jaist.ac.jp>
Since the user registration is done manually, please write the mail body
in human-recognizable language (^_^).
* Menu:
+* 7bit
+* 7bit: 7bit. 5.
+* 7bit (textual) string: 7bit. 12.
+* 8bit
+* 8bit: 8bit. 5.
+* 8bit (textual)
* ANSI X3.4:1986: ASCII. 9.
-* application: content-type. 10.
+* application: media type. 21.
* application/pgp: PGP-kazu. 9.
* ASCII: ASCII. 9.
* ASCII: us-ascii. 16.
-* audio: content-type. 10.
+* audio: media type. 17.
* automatic signature selection
+* Base64: Base64. 5.
* BBDB: setting for VM. 14.
* BIG5: cn-big5. 13.
-* binary: 8bit. 35.
* binary: binary. 6.
* binary data: binary. 15.
* charset-edition: RFC 1922. 11.
* charset-extension: RFC 1922. 11.
* CNS 11643:1992: CNS. 13.
* CNS 11643-1992: CNS. 13.
-* Content-Type: How is MIME?. 15.
-* content-type/subtype: content-type. 21.
* Emacs/mule: MULE. 20.
* encapsulation: RFC 1153. 6.
* encapsulation: RFC 934. 6.
* GB 8565.2:1988: GB 8565.2. 8.
* gnus-mime: tm-MUA. 16.
* good bug report: Bug report. 17.
-* image: content-type. 11.
+* image: media type. 15.
* Informational: hz-gb2312. 14.
* Informational: hz-gb2312. 19.
* Informational: iso-2022-jp-2. 10.
* ISO 8859-9:1990: ISO 8859-9. 5.
* iso-2022-jp: iso-2022-jp. 18.
* iso-2022-jp-2: iso-2022-jp-2. 10.
+* iso-8859-1: iso-8859-1. 5.
+* iso-8859-2: iso-8859-2. 5.
+* iso-8859-5: iso-8859-5. 5.
* iso-8859-7: iso-8859-7. 13.
+* iso-8859-7: iso-8859-7. 5.
* ISO/IEC 2022:1994: ISO 2022. 11.
* ISO/IEC 646:1991: ISO 646. 10.
* JIS
* KS C 5601:1987: KS C5601. 8.
* KS C 5861:1992: euc-kr. 14.
* KS C5601: KS C5601. 8.
-* message: content-type. 11.
+* media type: media type. 5.
+* message: media type. 25.
* message header: RFC 822. 6.
* Message Transfer Agent: MTA. 5.
* Message User Agent: MUA. 5.
-* MIME: What is MIME?. 5.
+* message/rfc822: message/rfc822. 5.
* mime-setup: mime-setup. 6.
* mule: MULE. 19.
* MULE: MULE. 20.
-* multipart: content-type. 12.
-* Multipart: How is MIME?. 23.
-* multipart: multipart. 10.
-* multipart/digest: multipart/digest. 9.
+* multipart: media type. 23.
+* multipart: multipart. 5.
+* multipart/digest: multipart/alternative. 5.
+* multipart/digest: multipart/digest. 5.
* multipart/encrypted: Security multipart. 8.
+* multipart/parallel: multipart/parallel. 5.
* multipart/signed: Security multipart. 6.
* Multipurpose Internet Mail
-* Multipurpose Internet Mail Extensions: MIME. 5.
-* pad: Base64. 10.
+* pad: Base64. 11.
* parameter: Content-Type field. 21.
* PGP: PGP. 16.
* PGP-kazu: PGP-kazu. 7.
* PGP/MIME: PGP/MIME. 20.
+* Quoted-Printable: Quoted-Printable. 5.
* RFC 1036: RFC 1036. 9.
* RFC 1153: RFC 1153. 16.
* RFC 1468: iso-2022-jp. 18.
* RFC 1489: koi8-r. 13.
-* RFC 1521: RFC 1521. 7.
-* RFC 1522: encoded-word. 7.
-* RFC 1522: encoded-word. 8.
* RFC 1554: iso-2022-jp-2. 10.
* RFC 1557: RFC 1557. 8.
* RFC 1806: Content-Disposition. 8.
* RFC 1842: hz-gb2312. 14.
* RFC 1843: hz-gb2312. 19.
* RFC 1847: Security multipart. 12.
-* RFC 1896: text/enriched. 10.
+* RFC 1896: text/enriched. 8.
* RFC 1922: RFC 1922. 14.
* RFC 1947: iso-8859-7. 13.
* RFC 1991: PGP. 16.
* RFC 2015: PGP/MIME. 20.
+* RFC 2045: RFC 2045. 5.
+* RFC 2046: RFC 2046. 5.
+* RFC 2047: encoded-word. 7.
+* RFC 2047: encoded-word. 8.
+* RFC 2048: RFC 2048. 5.
+* RFC 2049: RFC 2049. 5.
* RFC 821: RFC 821. 8.
* RFC 822: RFC 822. 14.
* RFC 934: RFC 934. 13.
* SMTP: RFC 821. 8.
* Standards Track: encoded-word. 8.
* Standards Track: PGP/MIME. 20.
-* Standards Track: RFC 1521. 7.
+* Standards Track: RFC 2045. 5.
+* Standards Track: RFC 2046. 5.
+* Standards Track: RFC 2048. 5.
+* Standards Track: RFC 2049. 5.
* Standards Track: Security multipart. 12.
* STD 10: RFC 821. 8.
* STD 11: RFC 822. 14.
* STD 9: FTP. 8.
-* subtype: content-type. 7.
* subtype: Content-Type field. 20.
-* text: content-type. 13.
-* text/enriched: text/enriched. 10.
-* text/plain: text/plain. 10.
+* subtype: media type. 8.
+* text: media type. 13.
+* text/enriched: text/enriched. 8.
+* text/plain: text/plain. 5.
* text/richtext: text/enriched. 6.
* tm \e$BBg@9$j\e(B package: tm-MUA. 8.
* tm-gnus: tm-MUA. 14.
* tm-rmail: tm-MUA. 20.
* tm-setup: tm-setup. 5.
* tm-vm: tm-MUA. 18.
-* type: content-type. 6.
* type: Content-Type field. 20.
+* type: media type. 7.
* us-ascii: us-ascii. 13.
* USENET: RFC 1036. 9.
-* video: content-type. 13.
+* video: media type. 19.
* vm: setting for VM. 6.
* XEmacs/mule: MULE. 21.
-* x-token: content-type. 29.
-Extensions: What is MIME?. 6.
+* x-token: media type. 29.
+data: 7bit. 8.
+data: 8bit. 8.
+Extensions: MIME. 6.
mail: RFC 822. 11.
message: RFC 822. 11.
method: method. 8.
+string: 8bit. 12.
tool: signature. 6.
X0201: JIS X0201. 9.
Tag table:
Node: Top\7f152
Node: Introduction\7f583
-Node: What is MIME?\7f1326
-Node: How is MIME?\7f1807
-Node: Glossary\7f3209
-Node: 7bit\7f6542
-Node: 8bit\7f7859
-Node: 94 character set\7f9914
-Node: 96 character set\7f10187
-Node: 94x94 character set\7f10454
-Node: ASCII\7f10758
-Node: Base64\7f11188
-Node: binary\7f11886
-Node: Character Set\7f12476
-Node: cn-gb\7f12806
-Node: cn-big5\7f13292
-Node: CNS\7f13928
-Node: Coded character set\7f14609
-Node: Code extension\7f14936
-Node: Content-Disposition\7f15280
-Node: content-type\7f15722
-Node: Content-Type field\7f17129
-Node: Emacs\7f18186
-Node: encoded-word\7f18420
-Node: encapsulation\7f18801
-Node: euc-kr\7f19096
-Node: FTP\7f19613
-Node: GB 2312\7f19898
-Node: GB 8565.2\7f20452
-Node: hz-gb2312\7f20915
-Node: ISO 2022\7f21724
-Node: iso-2022-cn\7f22303
-Node: iso-2022-cn-ext\7f22779
-Node: iso-2022-jp\7f23451
-Node: iso-2022-jp-2\7f24166
-Node: iso-2022-kr\7f24575
-Node: ISO 646\7f25008
-Node: ISO 8859-1\7f25668
-Node: iso-8859-1\7f26099
-Node: ISO 8859-2\7f26544
-Node: iso-8859-2\7f26978
-Node: ISO 8859-3\7f27417
-Node: ISO 8859-4\7f27734
-Node: ISO 8859-5\7f28051
-Node: iso-8859-5\7f28460
-Node: ISO 8859-6\7f28902
-Node: ISO 8859-7\7f29221
-Node: iso-8859-7\7f29625
-Node: ISO 8859-8\7f30175
-Node: ISO 8859-9\7f30494
-Node: ISO-IR-165\7f30811
-Node: JIS X0201\7f31326
-Node: JIS C6226\7f32120
-Node: JIS X0208\7f32413
-Node: JIS X0212\7f34296
-Node: koi8-r\7f34648
-Node: KS C5601\7f35146
-Node: message\7f35547
-Node: message/rfc822\7f35810
-Node: method\7f36118
-Node: MIME\7f36469
-Node: MIME charset\7f36891
-Node: MTA\7f37453
-Node: MUA\7f37667
-Node: MULE\7f37841
-Node: multipart\7f38695
-Node: multipart/alternative\7f39531
-Node: multipart/digest\7f39836
-Node: multipart/encrypted\7f40483
-Node: multipart/mixed\7f40813
-Node: multipart/parallel\7f41106
-Node: multipart/signed\7f41393
-Node: PGP\7f41689
-Node: PGP-kazu\7f42525
-Node: PGP/MIME\7f44012
-Node: Quoted-Printable\7f45045
-Node: RFC 821\7f45806
-Node: RFC 822\7f46086
-Node: RFC 934\7f46570
-Node: RFC 1036\7f47025
-Node: RFC 1153\7f47479
-Node: RFC 1521\7f48020
-Node: RFC 1557\7f48465
-Node: RFC 1922\7f48856
-Node: plain text\7f49522
-Node: Security multipart\7f49798
-Node: text/enriched\7f50431
-Node: text/plain\7f50897
-Node: tm-kernel\7f51385
-Node: tm-MUA\7f51890
-Node: us-ascii\7f52409
-Node: Setting\7f53075
-Node: mime-setup\7f53674
-Node: signature\7f54175
-Node: Notice about GNUS\7f55720
-Node: tm-setup\7f56596
-Node: setting for VM\7f57144
-Node: manual setting\7f57456
-Node: Bug report\7f58058
-Node: Concept Index\7f59491
-Node: Variable Index\7f68960
+Node: Glossary\7f1260
+Node: 7bit\7f4683
+Node: 8bit\7f5615
+Node: 94 character set\7f6752
+Node: 96 character set\7f7025
+Node: 94x94 character set\7f7292
+Node: ASCII\7f7596
+Node: Base64\7f8026
+Node: binary\7f8620
+Node: Character Set\7f9210
+Node: cn-gb\7f9540
+Node: cn-big5\7f10026
+Node: CNS\7f10662
+Node: Coded character set\7f11343
+Node: Code extension\7f11670
+Node: Content-Disposition\7f12014
+Node: media type\7f12454
+Node: Content-Type field\7f13406
+Node: Emacs\7f14453
+Node: encoded-word\7f14687
+Node: encapsulation\7f15099
+Node: euc-kr\7f15394
+Node: FTP\7f15911
+Node: GB 2312\7f16196
+Node: GB 8565.2\7f16750
+Node: hz-gb2312\7f17213
+Node: ISO 2022\7f18022
+Node: iso-2022-cn\7f18601
+Node: iso-2022-cn-ext\7f19077
+Node: iso-2022-jp\7f19749
+Node: iso-2022-jp-2\7f20464
+Node: iso-2022-kr\7f20873
+Node: ISO 646\7f21306
+Node: ISO 8859-1\7f21966
+Node: iso-8859-1\7f22397
+Node: ISO 8859-2\7f22847
+Node: iso-8859-2\7f23281
+Node: ISO 8859-3\7f23731
+Node: ISO 8859-4\7f24048
+Node: ISO 8859-5\7f24365
+Node: iso-8859-5\7f24774
+Node: ISO 8859-6\7f25192
+Node: ISO 8859-7\7f25511
+Node: iso-8859-7\7f25915
+Node: ISO 8859-8\7f26438
+Node: ISO 8859-9\7f26757
+Node: ISO-IR-165\7f27074
+Node: JIS X0201\7f27589
+Node: JIS C6226\7f28383
+Node: JIS X0208\7f28676
+Node: JIS X0212\7f30559
+Node: koi8-r\7f30911
+Node: KS C5601\7f31409
+Node: message\7f31810
+Node: message/rfc822\7f32073
+Node: method\7f32450
+Node: MIME\7f32801
+Node: MIME charset\7f33790
+Node: MTA\7f34310
+Node: MUA\7f34524
+Node: MULE\7f34698
+Node: multipart\7f35552
+Node: multipart/alternative\7f36292
+Node: multipart/digest\7f36750
+Node: multipart/encrypted\7f37397
+Node: multipart/mixed\7f37727
+Node: multipart/parallel\7f38053
+Node: multipart/signed\7f38494
+Node: PGP\7f38790
+Node: PGP-kazu\7f39626
+Node: PGP/MIME\7f41113
+Node: Quoted-Printable\7f42146
+Node: RFC 821\7f42530
+Node: RFC 822\7f42810
+Node: RFC 934\7f43294
+Node: RFC 1036\7f43749
+Node: RFC 1153\7f44203
+Node: RFC 1557\7f44744
+Node: RFC 1922\7f45135
+Node: RFC 2045\7f45799
+Node: RFC 2046\7f46110
+Node: RFC 2048\7f46399
+Node: RFC 2049\7f46714
+Node: plain text\7f47028
+Node: Security multipart\7f47304
+Node: text/enriched\7f47937
+Node: text/plain\7f48379
+Node: tm-kernel\7f48859
+Node: tm-MUA\7f49364
+Node: us-ascii\7f49883
+Node: Setting\7f50549
+Node: mime-setup\7f51148
+Node: signature\7f51649
+Node: Notice about GNUS\7f53194
+Node: tm-setup\7f54070
+Node: setting for VM\7f54618
+Node: manual setting\7f54930
+Node: Bug report\7f55532
+Node: Concept Index\7f56965
+Node: Variable Index\7f67403
\1f
End tag table
</ul>
-<h2> What is MIME?
-<node> What is MIME?
-<p>
-<concept>MIME</concept> stands for <concept>Multipurpose Internet Mail
-Extensions</concept>, it is a proposed internet standard for including
-content and headers other than (ASCII) plain text in messages.
-<p>
-Current MIME standard consists of RFC 1521 and RFC 1522. RFC 1521
-describes multipurpose content in message bodies, while RFC 1522
-describes multilingual characters in headers.
-
-
-<h2> How is MIME?
-<node> How is MIME?
-<p>
-In multipurpose message side, MIME can represent various contents such
-as images, sounds, videos, ... as against traditional Internet
-mail/news message can represent only (<dref>us-ascii</dref>) plain
-text.
-<p>
-Interestingly, MIME can send ``procedure'', such as <a
-node="FTP">ftp</a>, ftp mail, file extraction, applying patch, ...
-<p>
-# Of course, it has security problem.
-<p>
-These various kinds of contents are defined by media types written in
-<a node="Content-Type field"><concept>Content-Type</concept></a>
-field. Namely MIME message has information about content in header.
-So if reader defines processes for each <dref>content-type</dref>,
-he/she can display image, or play video or sound, or get file by ftp,
-or extract file, ... only read the message.
-<p>
-In addition, MIME message can represent message includes plural parts,
-called <a node="multipart"><concept>Multipart</concept></a> message.
-So it is possible to include picture and sound in one message.
-<p>
-MIME seems have philosophy of ``declaration''. In other words, MIME
-is a message description language to represent various kinds of things
-uses <dref>us-ascii</dref> as its ``alphabet''. Encoded-word defined
-in <a node="encoded-word">RFC 1522</a> is same.
-<p>
-In addition, MUA displays only what it can understand and ignore what
-can not understand. So content is saved from non-supported MUA and
-MUA is saved from unknown data.
-
-
<h2> Glossary
<node> Glossary
<h3> 7bit
<node> 7bit
<p>
-\e$B$3$3$G$O\e(B 0 \e$B$+$i\e(B 127 \e$B$N@0?t$r;X$7$^$9!#\e(B
+<concept>7bit</concept> means any integer between 0 .. 127.
<p>
-0 \e$B$+$i\e(B 127 \e$B$N@0?t$NNs$GI=8=$G$-$k$h$&$J\e(B data \e$B$r\e(B ``7bit \e$B$N\e(B data'' \e$B$H8F\e(B
-\e$B$S$^$9!#\e(B
+Any data represented by 7bit integers is called <concept>7bit
+data</concept>.
<p>
-\e$B$^$?!"\e(B0 \e$B$+$i\e(B 31 \e$B$*$h$S\e(B 127 \e$B$GI=8=$5$l$k@)8fJ8;z$H\e(B 32 \e$B$GI=8=$5$l$k6uGr\e(B
-\e$B$H\e(B 33 \e$B$+$i\e(B 126 \e$B$GI=8=$5$l$k?^7AJ8;z$+$i$J$kJ8;zNs$N$3$H$r\e(B ``7bit \e$B$NJ8\e(B
-\e$B;zNs\e(B'' \e$B$H8F$S$^$9!J$3$l$O\e(B <a node="ISO 2022">ISO 2022</a> \e$B$N!V\e(B7 \e$BC10L7O!W\e(B
-\e$B$HF1MM$G$9!K!#\e(B
+Textual string consisted of Control characters between 0 .. 31 and
+127, and space represented by 32, and graphic characters between 33
+.. 236 are called <concept>7bit (textual) string</concept>.
<p>
-\e$BEAE}E*$J\e(B Internet \e$B$N\e(B <a node="MTA">MTA</a> \e$B$O\e(B 7bit \e$B$N\e(B data \e$B$rE>Aw$G$-\e(B
-\e$B$k$N$G!"\e(B7bit \e$B$N\e(B data \e$B$O\e(B <a
-node="Quoted-Printable">Quoted-Printable</a> \e$B$d\e(B <a
-node="Base64">Base64</a> \e$B$H$$$C$?JQ49$r9T$o$J$/$F$b$=$N$^$^E>Aw$G$-$^\e(B
-\e$B$9!#\e(B
+Traditional Internet <a node="MTA">MTA</a> can translate 7bit data, so
+it is no need to translate by <a
+node="Quoted-Printable">Quoted-Printable</a> or <a
+node="Base64">Base64</a> for 7bit data.
<p>
-\e$B$7$+$7!"\e(B7bit \e$B$G$"$l$P$I$s$J\e(B data \e$B$G$bNI$$$H$O$$$($^$;$s!#$J$<$J$i!"#1\e(B
-\e$B9T$ND9$5$,$"$^$j$KD9$$$H!"\e(BMTA \e$B$O$=$N\e(B message \e$B$rE>Aw$9$k$3$H$,$G$-$J$$\e(B
-\e$B$+$i$G$9!#$A$J$_$K!"\e(B<a node="RFC 821">RFC 821</a> \e$B$O#19T$O2~9TJ8;z$r=|\e(B
-\e$B$$$F\e(B 998 byte \e$B0JFb$G$"$k$3$H$r5a$a$F$$$^$9!#$h$C$F!"$3$l0J>e$N9T$,4^$^\e(B
-\e$B$l$k2DG=@-$N$"$k\e(B data, \e$BNc$($P!"\e(BPostscript \e$B$N\e(B data \e$B$J$I$O\e(B
-Quoted-Printable \e$BEy$G\e(B encode\e$B$9$kI,MQ$,$"$j$^$9!#\e(B
+However if there are too long lines, it can not translate by 7bit MTA
+even if it is 7bit data. <dref>RFC 821</dref> and <dref>RFC
+2045</dref> require lines in 7bit data must be less than 998 bytes.
+So if a ``7bit data'' has a line more than 999 bytes, it is regarded
+as <dref>binary</dref>. For example, Postscript file should be
+encoded by Quoted-Printable.
<h3> 8bit
<node> 8bit
<p>
-\e$B$3$3$G$O\e(B 0 \e$B$+$i\e(B 255 \e$B$N@0?t$r;X$7$^$9!#\e(B
+<concept>8bit</concept> means any integer between 0 .. 255.
<p>
-0 \e$B$+$i\e(B 255 \e$B$N@0?t$NNs$GI=8=$G$-$k$h$&$J\e(B data \e$B$r\e(B ``8bit \e$B$N\e(B data'' \e$B$H8F\e(B
-\e$B$S$^$9!#\e(B
+Any data represented by 8bit integers is called <concept>8bit
+data</concept>.
<p>
-\e$B$^$?!"\e(B0 \e$B$+$i\e(B 31, 127 \e$B$*$h$S\e(B 128 \e$B$+$i\e(B 159 \e$B$GI=8=$5$l$k@)8fJ8;z$H\e(B 32 \e$B$G\e(B
-\e$BI=8=$5$l$k6uGr$H\e(B 33 \e$B$+$i\e(B 126 \e$B$H\e(B 160 \e$B$+$i\e(B 255 \e$B$GI=8=$5$l$k?^7AJ8;z$+$i\e(B
-\e$B$J$kJ8;zNs$N$3$H$r\e(B ``8bit \e$B$NJ8;zNs\e(B'' \e$B$H8F$S$^$9!J$3$l$O\e(B <a node="ISO
-2022">ISO 2022</a> \e$B$N!V\e(B8 \e$BC10L7O!W$HF1MM$G$9!K!#\e(B
+Textual string consisted of Control characters between 0 .. 31, 127,
+and 128 .. 159, and space represented by 32, and graphic characters
+between 33 .. 236 and 160 .. 255 are called <concept>8bit (textual)
+string</concept>.
<p>
-<a node="iso-8859-1">iso-8859-1</a> \e$B$d\e(B <a node="euc-kr">euc-kr</a> \e$B$H\e(B
-\e$B$$$C$?Id9f2=J8;z=89g$O\e(B 8bit \e$B$NJ8;zNs$G$9!#\e(B
+For example, <dref>iso-8859-1</dref> or <dref>euc-kr</dref> are
+coded-character-set represented by 8bit textual string.
<p>
-\e$BEAE}E*$J\e(B Internet \e$B$N\e(B <a node="MTA">MTA</a> \e$B$O\e(B <a node="7bit">7bit</a>
-\e$B$N\e(B data \e$B$7$+E>Aw$G$-$J$$$N$G!"$=$&$7$?\e(B MTA \e$B$r7PM3$9$k>l9g!"\e(B<a
-node="Quoted-Printable">Quoted-Printable</a> \e$B$d\e(B <a
-node="Base64">Base64</a> \e$B$H$$$C$?JQ49$r9T$o$J$/$F$O$J$j$^$;$s!#\e(B
+Traditional Internet <a node="MTA">MTA</a> can translate only
+<dref>7bit</dref> data, so if a 8bit data will be translated such MTA,
+it must be encoded by <dref>Quoted-Printable</dref> or
+<dref>Base64</dref>.
<p>
-\e$B$7$+$7!":G6a$G$O\e(B 8bit \e$B$NJ8;zNs$r$=$N$^$^DL$9$3$H$,$G$-$k\e(B MTA \e$B$bEP>l$7\e(B
-\e$B$F$-$?$N$G!"$=$N$^$^Aw$k$3$H$,$G$-$k>l9g$bA}$($F$-$^$7$?!#\e(B
+However 8bit MTA are increasing today.
<p>
-\e$B$7$+$7!"\e(B8bit \e$B$G$"$l$P$I$s$J\e(B data \e$B$G$bNI$$$H$O$$$($^$;$s!#$J$<$J$i!"#1\e(B
-\e$B9T$ND9$5$,$"$^$j$KD9$$$H!"\e(BMTA \e$B$O$=$N\e(B message \e$B$rE>Aw$9$k$3$H$,$G$-$J$$\e(B
-\e$B$+$i$G$9!#$A$J$_$K!"\e(BRFC 821 \e$B$O#19T$O2~9TJ8;z$r=|$$$F\e(B 998 byte \e$B0JFb$G$"\e(B
-\e$B$k$3$H$r5a$a$F$$$^$9!#$h$C$F!"$3$l0J>e$N9T$,4^$^$l$k2DG=@-$N$"$k\e(B data,
-\e$BNc$($P!"\e(BPostscript \e$B$N\e(B data \e$B$J$I$O\e(B Quoted-Printable \e$BEy$G\e(B encode\e$B$9$kI,MQ\e(B
-\e$B$,$"$j$^$9!#\e(B
-<p>
-\e$B$^$?!"$3$&$7$?M}M3$+$i!"#19T$,\e(B 999 byte \e$B0J>e$N9T$,B8:_$9$k2DG=@-$N$"$k\e(B
-data \e$B$O\e(B <a node="binary"><concept>binary</concept></a> \e$B$H8F$V$3$H$K$7\e(B
-\e$B$^$9!#\e(B
-<p>
-\e$B$A$J$_$K!"\e(B7bit \e$B$GI=8=$G$-$k\e(B data \e$B$O\e(B 8bit \e$B$G$bI=8=$G$-$^$9!#$h$C$F!"\e(B
-``8bit'' \e$B$H8@$C$?>l9g!"#19T$,\e(B 998 byte \e$B0J2<$NG$0U$N\e(B data \e$B$r;X$9$3$H$,\e(B
-\e$B$"$j$^$9!#\e(B
+However if there are too long lines, it can not translate by 8bit MTA
+even if it is 8bit data. <dref>RFC 2045</dref> require lines in 8bit
+data must be less than 998 bytes. So if a ``8bit data'' has a line
+more than 999 bytes, it is regarded as <dref>binary</dref>, so it must
+be encoded by Base64 or Quoted-Printable.
<h3> 94 \e$BJ8;z=89g\e(B
<h3> Base64
<node> Base64
<p>
-<a node="RFC 1521">RFC 1521</a> \e$B$GDj5A$5$l$F$$$k\e(B <a
-node="MIME">MIME</a> \e$B$K$*$1$k\e(B <a node="binary">binary data</a> \e$B$N\e(B
-network \e$B$G$NJQ49K!$N#1$D!#\e(B
+<concept>Base64</concept> is a transfer encoding method of
+<dref>MIME</dref> defined in <dref>RFC 2045</dref>.
<p>
-\e$B!X\e(B64 \e$B?J?t!Y$H$$$&0UL#$G!"\e(B3 byte \e$B$N\e(B data \e$B$r\e(B 0 \e$B$+$i\e(B 63 \e$B$N?t$rI=$9\e(B
-<dref>ASCII</dref> 4 \e$BJ8;z$KJQ49$9$kJ}K!!#!J$b$7!"\e(B4 \e$BJ8;z$K$J$i$J$1$l$P\e(B
-<concept>pad</concept> \e$B$H8F$P$l$k5M$aJ*$r$7$FD9$5$rD4@0$9$k!K\e(B
+The encoding process represents 24-bit groups of input bits as output
+strings of 4 encoded characters. Encoded characters represent integer
+0 .. 63 or <concept>pad</concept>. Base64 data must be 4 * n bytes,
+so pad is used to adjust size.
<p>
-\e$B$3$N\e(B 65 \e$B<oN`$NJ8;z$O\e(B ASCII \e$B$H\e(B EBCDIC \e$B$N6&DLItJ,$+$iA*$P$l$F$*$j!"\e(B
-Internet \e$B0J30$N\e(B network \e$B$r7PM3$9$k>l9g$G$b0BA4$KE>Aw$G$-$k$h$&$K@_7W$5\e(B
-\e$B$l$F$$$k!#\e(B
+These 65 characters are subset of all versions of ISO 646, including
+US-ASCII, and all versions of EBCDIC. So it is safe even if it is
+translated by non-Internet gateways.
<h3> binary
date="June 1995">
-<h3> content-type
-<node> content-type
+<h3> media type
+<node> media type
<p>
-<dref>MIME</dref> \e$B$K$*$1$k\e(B <dref>part</dref> \e$B$N<oN`!#\e(B<concept>type</>
-\e$B$H\e(B <concept>subtype</concept> \e$B$+$i$J$k!#\e(B<dref>RFC 1521</dref> \e$B$GDj5A$5\e(B
-\e$B$l$F$$$k!#\e(B
+<concept>media type</concept> specifies the nature of the data in the
+body of <dref>MIME</dref> <dref>entity</dref>. It consists of
+<concept>type</> and <concept>subtype</concept>. It is defined in
+<dref>RFC 2046</dref>.
<p>
-type \e$B$OI8=`$G$O\e(B <concept>application</concept>,
-<concept>audio</concept>, <concept>image</concept>,
-<concept>message</concept>, <a
-node="multipart"><concept>multipart</concept></a>,
-<concept>text</concept>, <concept>video</concept> \e$B$,Dj5A$5$l!"$=$l$>$l\e(B
-\e$B$K$O\e(B application/octet-stream, audio/basic, image/jpeg,
-<dref>multipart/mixed</dref>, <dref>text/plain</dref>, video/mpeg \e$B$J$I\e(B
-\e$B$N$5$^$6$^$J\e(B subtype \e$B$,Dj5A$5$l$F$$$k!#\e(B
+Currently there are following types:
-<memo title="\e$BCm0U\e(B">
-<p>
-\e$B$3$3$G$O!"\e(Btext/plain \e$B$J$I$N\e(B type/subtype \e$B$NAH$r$7$P$7$P\e(B
-<concept>content-type/subtype</concept> \e$B$H=q$/!#\e(B
-</memo>
+<ul>
+<li><concept>text</concept>
+</li>
+<li><concept>image</concept>
+</li>
+<li><concept>audio</concept>
+</li>
+<li><concept>video</concept>
+</li>
+<li><concept>application</concept>
+</li>
+<li><a node="multipart"><concept>multipart</concept></a>
+</li>
+<li><concept>message</concept>
+</ul>
<p>
-content-type \e$B$O!"\e(BRFC 1521 \e$B$GDj5A$5$l$F$$$k$b$N$K2C$($F!"EPO?$9$k$3$H$b\e(B
-\e$B$G$-$k!#8=:_!"EPO?$5$l$F$$$k$b$N$O\e(B <a
+And there are various subtypes, for example, application/octet-stream,
+audio/basic, image/jpeg, <dref>multipart/mixed</dref>,
+<dref>text/plain</dref>, video/mpeg...
+<p>
+You can refer registered media types at <a
href="ftp://ftp.isi.edu/in-notes/iana/assignments/media-types">MEDIA
-TYPES</a> \e$B$G;2>H$G$-$k!#\e(B
+TYPES</a>.
<p>
-\e$B$^$?!"\e(Btype \e$B$b$7$/$O\e(B subtype \e$B$K!"A0$K\e(B `x-' \e$B$rIU$1$?\e(B
-<concept>x-token</concept> \e$B$rMQ$$$k$3$H$K$h$j!"EPO?$5$l$F$$$J$$$b$N$r\e(B
-\e$B;dE*$KMQ$$$k$3$H$b$G$-$k!#$7$+$7!"EvA3$N$3$H$J$,$i!"$3$&$7$?;dE*$J\e(B
-content-type \e$B$ONJ2r$rF@$?<T$N4V$G$7$+2r<a$G$-$J$$$N$GMxMQ$K$OCm0U$9$k\e(B
-\e$B$3$H!#\e(B
+In addition, you can use private type or subtype using
+<concept>x-token</concept>, which as the prefix `x-'. However you can
+not use them in public.
<p>
<cf node="Content-Type field">
<h3> Content-Type field
<node> Content-Type field
<p>
-Header field to represent information about part, such as
-<dref>content-type</dref>, <dref>MIME charset</dref>. It is defined
-in <dref>RFC 1521</dref>.
+Header field to represent information about body, such as <dref>media
+type</dref>, <dref>MIME charset</dref>. It is defined in <dref>RFC
+2045</dref>.
<memo>
<p>
Historically, Content-Type field was proposed in RFC 1049. In it,
-Content-Type did not distinguish type and subtype. However RFC 1521
+Content-Type did not distinguish type and subtype. However MIME
parser may be able to accept RFC 1049 based Content-Type as unknown
type.
</memo>
<node> encoded-word
<p>
Representation non <a node="ASCII">ASCII</a> characters in header. It
-is defined in <concept>RFC 1522</concept>.
+is defined in <concept>RFC 2047</concept>.
<p>
-<rfc number="1522" type="Standards Track" author="K. Moore"
+<rfc number="2047" type="Standards Track" author="K. Moore"
title="MIME (Multipurpose Internet Mail Extensions) Part
- Two: Message Header Extensions for Non-ASCII Text"
- date="September 1993">
+ Three: Message Header Extensions for Non-ASCII Text"
+ date="November 1996" obsolete="1521,1522,1590">
<h3> encapsulation
<h3> iso-8859-1
<node> iso-8859-1
<p>
-\e$B@>2$=t8l$J$I$rI=8=$9$k$?$a$N\e(B <a node="MIME charset">MIME charset</a>
-\e$B$N#1$D!#\e(B
+<concept>iso-8859-1</concept> is a <dref>MIME charset</dref> for
+west-European languages written by Latin script.
<p>
<a node="ISO 2022">ISO 2022</a> \e$B$K4p$$$F!"\e(B<a node="ASCII">ASCII</a> \e$B$K\e(B
<a node="ISO 8859-1">ISO 8859-1</a> \e$B$r\e(B <a node="8bit">8bit</a> \e$B$G\e(B<a
node="Code extension">\e$BId9f3HD%\e(B</a>\e$B$7$F$$$k!#\e(B
<p>
-<a node="RFC 1521">RFC 1521</a> \e$B$GDj5A$5$l$F$$$k!#\e(B
+It is defined in <dref>RFC 2046</dref>.
<h3> ISO 8859-2
<h3> iso-8859-2
<node> iso-8859-2
<p>
-\e$BEl2$=t8l$rI=8=$9$k$?$a$N\e(B <a node="MIME charset">MIME charset</a> \e$B$N#1\e(B
-\e$B$D!#\e(B
+<concept>iso-8859-2</concept> is a <dref>MIME charset</dref> for
+east-European languages written by Latin script.
<p>
<a node="ISO 2022">ISO 2022</a> \e$B$K4p$$$F!"\e(B<a node="ASCII">ASCII</a> \e$B$K\e(B
<a node="ISO 8859-2">ISO 8859-2</a> \e$B$r\e(B <a node="8bit">8bit</a> \e$B$G\e(B<a
node="Code extension">\e$BId9f3HD%\e(B</a>\e$B$7$F$$$k!#\e(B
<p>
-<a node="RFC 1521">RFC 1521</a> \e$B$GDj5A$5$l$F$$$k!#\e(B
+It is defined in <dref>RFC 2046</dref>.
<h3> ISO 8859-3
<h3> iso-8859-5
<node> iso-8859-5
<p>
-\e$B%-%j%kJ8;z$rI=8=$9$k$?$a$N\e(B <a node="MIME charset">MIME charset</a> \e$B$N\e(B
-\e$B#1$D!#\e(B
+<concept>iso-8859-5</concept> is a <dref>MIME charset</dref> for
+Cyrillic script.
<p>
<a node="ISO 2022">ISO 2022</a> \e$B$K4p$$$F!"\e(B<a node="ASCII">ASCII</a> \e$B$K\e(B
<a node="ISO 8859-5">ISO 8859-5</a> \e$B$r\e(B <a node="8bit">8bit</a> \e$B$G\e(B<a
node="Code extension">\e$BId9f3HD%\e(B</a>\e$B$7$F$$$k!#\e(B
<p>
-<a node="RFC 1521">RFC 1521</a> \e$B$GDj5A$5$l$F$$$k!#\e(B
+It is defined in <dref>RFC 2046</dref>.
<h3> ISO 8859-6
<h3> iso-8859-7
<node> iso-8859-7
<p>
-\e$B%.%j%7%"8l$rI=8=$9$k$?$a$N\e(B <a node="MIME charset">MIME charset</a> \e$B$N\e(B
-\e$B#1$D!#\e(B
+<concept>iso-8859-7</concept> is a <dref>MIME charset</dref> for
+Greek script.
<p>
<a node="ISO 2022">ISO 2022</a> \e$B$K4p$$$F!"\e(B<a node="ASCII">ASCII</a> \e$B$K\e(B
<a node="ISO 8859-7">ISO 8859-7</a> \e$B$r\e(B <a node="8bit">8bit</a> \e$B$G\e(B<a
node="Code extension">\e$BId9f3HD%\e(B</a>\e$B$7$F$$$k!#\e(B
<p>
-RFC 1947 \e$B$GDj5A$5$l$F$$$k!#\e(B
+It is defined in RFC 1947.
<rfc name="iso-8859-7" number="1947" type="Informational"
author="D. Spinellis" title="Greek Character Encoding
<h3> message/rfc822
<node> message/rfc822
<p>
-\e$BEAE}E*$J\e(B <dref>RFC 934</dref> \e$B$KBe$o$j!"\e(B<dref>RFC 822</dref> \e$B$GDj5A$5\e(B
-\e$B$l$k\e(B mail \e$B$rI=$9\e(B MIME \e$B$N7A<0!#\e(B<dref>RFC 1521</dref> \e$B$GDj5A$5$l$F$$$k!#\e(B
+<concept>message/rfc822</concept> indicates that the body contains an
+encapsulated message, with the syntax of an <dref>RFC 822</dref>
+message. It is the replacement of traditional <dref>RFC 934</dref>
+encapsulation. It is defined in <dref>RFC 2046</dref>.
<h3> method
<h3> MIME
<node> MIME
<p>
-<concept>Multipurpose Internet Mail Extensions</concept> \e$B$NN,$G!"\e(B
-Internet \e$B$N\e(B mail \e$B$d\e(B news \e$B$G\e(B <a node="us-ascii">us-ascii plain text</a>
-\e$B0J30$NJ8;z$r;H$&$?$a$N\e(B <dref>RFC 822</dref> \e$B$KBP$9$k3HD%!#\e(B
+MIME stands for <concept>Multipurpose Internet Mail
+Extensions</concept>, it is an extension for <dref>RFC 822</dref>.
+<p>
+According to RFC 2045:
<p>
-<a node="RFC 1521">RFC 1521</a> \e$B$H\e(B <a node="encoded-word">RFC 1522</a>
-\e$B$GDj5A$5$l$F$$$k!#\e(B
+STD 11, RFC 822, defines a message representation protocol specifying
+considerable detail about US-ASCII message headers, and leaves the
+message content, or message body, as flat US-ASCII text. This set of
+documents, collectively called the Multipurpose Internet Mail
+Extensions, or MIME, redefines the format of messages to allow for
<p>
-<cf node="What is MIME?">
+<ol>
+<li>textual message bodies in character sets other than US-ASCII,
+</li>
+<li>an extensible set of different formats for non-textual message
+bodies,
+</li>
+<li>multi-part message bodies, and
+</li>
+<li>textual header information in character sets other than US-ASCII.
+</ol>
+
+<p>
+It is defined in <dref>RFC 2045</dref>, <dref>RFC 2046</dref>, <a
+node="encoded-word">RFC 2047</a>, <dref>RFC 2048</dref> and <dref>RFC
+2049</dref>.
<h3> MIME charset
<node> MIME charset
<p>
-<dref>Content-Type field</dref> \e$B$d\e(B <a
-node="encoded-word">encoded-word</a> \e$B$N\e(B charset parameter \e$B$GMQ$$$i$l$k\e(B
-\e$BEPO?$5$l$?\e(B<a node="Coded character set">\e$BId9f2=J8;z=89g\e(B</a>\e$B!#\e(B
+<dref>Coded character set</dref> used in <dref>Content-Type
+field</dref> or charset parameter of <a
+node="encoded-word">encoded-word</a>.
<p>
-<a node="RFC 1521">RFC 1521</a> \e$B$GDj5A$5$l$F$$$k!#\e(B
+It is defined in <dref>RFC 2045</dref>.
<p>
<a node="iso-2022-jp">iso-2022-jp</a> \e$B$d\e(B <a node="euc-kr">euc-kr</a>
\e$B$O$=$N#1$D!#!J$3$3$G$O!"\e(BMIME charset \e$B$O\e(B<a node="Character set">\e$BJ8;z=8\e(B
<h3> Multipart
<node> multipart
<p>
-\e$B#1$D$N\e(B <dref>message</dref> \e$B$KJ#?t$N\e(B part \e$B$rF~$l$k$?$a$N\e(B
-<dref>MIME</dref> \e$B$K$*$1$kI=8=K!!"$b$7$/$O!"J#?t$N\e(B part \e$B$+$i$J$k\e(B
-message \e$B$r;X$9!#\e(B<cf node="content-type">
+<concept>multipart</concept> means <dref>media type</dref> to insert
+multiple <dref>entities</dref> in a single body. Or it also indicates
+a message consists of multiple entities.
<p>
-\e$B8=:_!"Dj5A$5$l$F$$$k\e(B <concept>multipart</concept> \e$B$H$7$F$O!"\e(B<dref>RFC
-1521</dref> \e$B$GDj5A$5$l$?\e(B
+There are following subtypes registered in <dref>RFC 2046</dref>:
<ul>
<li><dref>multipart/mixed</dref>
</ul>
<noindent>
-\e$B$N$[$+\e(B <a node="Security multipart">RFC 1847</a> \e$B$GDj5A$5$l$?\e(B
+and registered in <a node="Security multipart">RFC 1847</a>:
<ul>
<li><dref>multipart/signed</dref>
<li><dref>multipart/encrypted</dref>
</ul>
-<noindent>
-\e$B$J$I$,$"$k!#\e(B
-
<h3> multipart/alternative
<node> multipart/alternative
<p>
-<dref>multipart</dref> \e$B$N#1$D$G!"F1$8>pJs$r0[$C$?7A<0$GF~$l!"A*Br;h$H\e(B
-\e$B$9$k>l9g$KMQ$$$k!#\e(B
+<concept>multipart/digest</concept> is one of <dref>multipart</dref>
+media types. This type is syntactically identical to
+<dref>multipart/mixed</dref>, but the semantics are different. In
+particular, each of the body parts is an ``alternative'' version of
+the same information.
<p>
-<cf node="RFC 1521">
+<cf node="RFC 2046">
<h3> multipart/digest
<node> multipart/digest
<p>
-<dref>multipart</dref> \e$B$N#1$D$G!"4^$^$l$k\e(B part \e$B$N\e(B default \e$B$N\e(B
-<dref>content-type</dref> \e$B$,\e(B <dref>multipart/mixed</dref> \e$B$J$I$N>l9g\e(B
-<dref>text/plain</dref> \e$B$G$"$k$N$KBP$7!"\e(B
-<concept>multipart/digest</concept>\e$B$G$O\e(B <dref>message/rfc822</dref> \e$B$,\e(B
-\e$BMQ$$$i$l$kE@$,0[$J$k!#\e(B
+<concept>multipart/digest</concept> is one of <dref>multipart</dref>
+media types. This type is syntactically identical to
+<dref>multipart/mixed</dref>, but the semantics are different. In
+particular, in a digest, the default Content-Type value for a body
+part is changed from <dref>text/plain</dref> to
+<dref>message/rfc822</dref>.
<p>
-\e$B$3$l$OEAE}E*$J\e(B <dref>RFC 1153</dref> \e$B$K4p$E$/\e(B
-<dref>encapsulation</dref> \e$B$KBe$o$k$b$N$G$"$k!#\e(B
+This is the replacement of traditional <dref>RFC 1153</dref> based
+<dref>encapsulation</dref>.
<p>
-<cf node="RFC 1521">
+<cf node="RFC 2046">
<h3> multipart/encrypted
<h3> multipart/mixed
<node> multipart/mixed
<p>
-<dref>multipart</dref> \e$B$N<gMW$J\e(B subtype \e$B$G!"J#?t$N\e(B part \e$B$r=g=xIU$1$FJB\e(B
-\e$B$Y$k>l9g$KMQ$$$k!#\e(B
+Primary and default subtype of <dref>multipart</dref>, it is used when
+the body parts are independent and need to be bundled in a particular
+order.
<p>
-<cf node="RFC 1521">
+<cf node="RFC 2046">
<h3> multipart/parallel
<node> multipart/parallel
<p>
-<dref>multipart</dref> \e$B$N#1$D$G!"J#?t$N\e(B part \e$B$r=g=xIU$1$:$K4^$a$k>l9g\e(B
-\e$B$KMQ$$$k!#\e(B
+<concept>multipart/parallel</concept> is a subtype of
+<dref>multipart</dref>. This type is syntactically identical to
+<dref>multipart/mixed</dref>, but the semantics are different. In
+particular, in a parallel entity, the order of body parts is not
+significant.
<p>
-<cf node="RFC 1521">
+<cf node="RFC 2046">
<h3> multipart/signed
<h3> Quoted-Printable
<node> Quoted-Printable
<p>
-<a node="RFC 1521">RFC 1521</a> \e$B$GDj5A$5$l$F$$$k\e(B <a
-node="MIME">MIME</a> \e$B$K$*$1$k\e(B <a node="binary">binary data</a> \e$B$N\e(B
-network \e$B$G$NJQ49K!$N#1$D!#\e(B
+<concept>Quoted-Printable</concept> is a transfer encoding method of
+<dref>MIME</dref> defined in <dref>RFC 2045</dref>.
<p>
-`=' \e$B$d@)8fJ8;z$d\e(B 128 \e$B0J>e$NJ8;z$J$I$O\e(B `=AF' \e$B$N$h$&$K\e(B `=' \e$B$N8e$KB3$/\e(B 16
-\e$B?J?t$GI=8=$9$k!#$3$N$?$a!"\e(B<a node="ASCII">ASCII</a> \e$BJ8;zCf?4$N\e(B data \e$B$G\e(B
-\e$B$O\e(B <a node="Base64">Base64</a> \e$B$KHf$Y$k$H2DFI@-$,9b$/$J$k2DG=@-$,$"$k!#\e(B
+If the data being encoded are mostly US-ASCII text, the encoded form
+of the data remains largely recognizable by humans.
<p>
-\e$B$7$+$7$J$,$i!"\e(BEBCDIC \e$B$K$OB8:_$7$J$$J8;z$rMxMQ$9$k>l9g!"\e(BEBCDIC \e$B$rMxMQ$7\e(B
-\e$B$F$$$k\e(B network \e$B$G$O0BA4$KE>Aw$9$k$3$H$,$G$-$:!"\e(BBase64 \e$B$KHf$Y$F0BA4@-$O\e(B
-\e$BDc$$!#\e(B
+<cf node="Base64">
<h3> RFC 821
date="April 1990">
-<h3> RFC 1521 <node> RFC 1521
-<p>
-<a node="MIME">MIME</a> \e$B$rDj5A$7$F$$$k\e(B RFC \e$B$N#1$D!#\e(B
-
-<rfc number="1521" type="Standards Track" author="N. Borenstein and
- N. Freed" title="MIME (Multipurpose Internet Mail
- Extensions) Part One: Mechanisms for Specifying and
- Describing the Format of Internet Message Bodies"
- date="September 1993" obsolete="1341">
-
-(<a node="encoded-word">RFC 1522</a>)
-
-
<h3> RFC 1557
<node> RFC 1557
<p>
date="March 1996">
+<h3> RFC 2045
+<node> RFC 2045
+<p>
+<rfc number="2045" type="Standards Track" author="N. Freed and
+ N. Borenstein" title="Multipurpose Internet Mail
+ Extensions (MIME) Part One: Format of Internet Message
+ Bodies" date="November 1996" obsolete="1521, 1522,
+ 1590">
+
+
+<h3> RFC 2046
+<node> RFC 2046
+<p>
+<rfc number="2046" type="Standards Track" author="N. Freed and
+ N. Borenstein" title="Multipurpose Internet Mail
+ Extensions (MIME) Part Two: Media Types"
+ date="November 1996" obsolete="1521, 1522, 1590">
+
+
+<h3> RFC 2048
+<node> RFC 2048
+<p>
+<rfc number="2048" type="Standards Track" author="N. Freed, J. Klensin
+ and J. Postel" title="Multipurpose Internet Mail
+ Extensions (MIME) Part Four: Registration Procedures"
+ date="November 1996" obsolete="1521, 1522, 1590">
+
+
+<h3> RFC 2049
+<node> RFC 2049
+<p>
+<rfc number="2049" type="Standards Track" author="N. Freed and
+ N. Borenstein" title="Multipurpose Internet Mail
+ Extensions (MIME) Part Five: Conformance Criteria and
+ Examples" date="November 1996" obsolete="1521, 1522,
+ 1590">
+
+
<h3> plain text
<node> plain text
<p>
<h3> text/enriched
<node> text/enriched
<p>
-<a node="RFC 1521">RFC 1521</a> \e$B$GDj5A$5$l$?\e(B
-<concept>text/richtext</concept> \e$B$KBe$o$C$F!"=qBN$dAHHG$K4X$9$k>pJs$r\e(B
-\e$B;}$C$?\e(B text\e$B$rI=8=$9$k$?$a$N\e(B <dref>content-type</dref>.
+RFC 1521 \e$B$GDj5A$5$l$?\e(B <concept>text/richtext</concept> \e$B$KBe$o$C$F!"=q\e(B
+\e$BBN$dAHHG$K4X$9$k>pJs$r;}$C$?\e(B text\e$B$rI=8=$9$k$?$a$N\e(B <dref>media
+type</dref>.
<rfc name="text/enriched" number="1896" author="P. Resnick and
A. Walker" title="The text/enriched MIME Content-type"
<h3> text/plain
<node> text/plain
<p>
-<dref>RFC 1521</dref> \e$B$GDj5A$5$l$?!"\e(B<dref>plain text</dref> \e$B$rI=8=$9$k\e(B
-\e$B$?$a$N\e(B <dref>content-type</dref>.
+<concept>text/plain</concept> is a <dref>media type</dref> for
+<dref>plain text</dref>, defined in <dref>RFC 2046</dref>.
+<p>
+The default media type of ``text/plain; charset=us-ascii'' for
+Internet mail describes existing Internet practice. That is, it is
+the type of body defined by <dref>RFC 822</dref>.
<p>
-\e$BHs\e(B MIME message \e$B$J$I$N\e(B content-type \e$B$,Dj5A$5$l$J$$\e(B part \e$B$O\e(B <dref>MIME
-charset</dref> \e$B$,\e(B <dref>us-ascii</dref> \e$B$G$"$k\e(B
-<concept>text/plain</concept> \e$B$N\e(B part \e$B$G$"$k$H8+Pv$5$l$k$3$H$K$J$C$F$$\e(B
-\e$B$k!#\e(B
+<cf node="MIME charset"><cf node="us-ascii">
<h3> tm-kernel, tm
e-mail to:
<ul>
-<li> \e$BF|K\8l\e(B <mail>tm-ja-admin@chamonix.jaist.ac.jp</mail>
-<li> \e$B1Q8l\e(B <mail>tm-en-admin@chamonix.jaist.ac.jp</mail>
+<li> Japanese <mail>tm-ja-admin@chamonix.jaist.ac.jp</mail>
+<li> English <mail>tm-en-admin@chamonix.jaist.ac.jp</mail>
</ul>
<noindent>
@menu
-* What is MIME?::
-* How is MIME?::
* Glossary::
@end menu
-@node What is MIME?, How is MIME?, Introduction, Introduction
-@section What is MIME?
-
-@cindex{MIME}@strong{MIME} stands for @cindex{Multipurpose Internet Mail
-Extensions}@strong{Multipurpose Internet Mail Extensions}, it is a
-proposed internet standard for including content and headers other than
-(ASCII) plain text in messages.@refill
-
-Current MIME standard consists of RFC 1521 and RFC 1522. RFC 1521
-describes multipurpose content in message bodies, while RFC 1522
-describes multilingual characters in headers.
-
-
-@node How is MIME?, Glossary, What is MIME?, Introduction
-@section How is MIME?
-
-In multipurpose message side, MIME can represent various contents such
-as images, sounds, videos, ... as against traditional Internet mail/news
-message can represent only (us-ascii (@ref{us-ascii})) plain
-text.@refill
-
-Interestingly, MIME can send ``procedure'', such as ftp (@ref{FTP}), ftp
-mail, file extraction, applying patch, ...@refill
-
-# Of course, it has security problem.@refill
-
-These various kinds of contents are defined by media types written in
-@cindex{Content-Type}@strong{Content-Type} (@ref{Content-Type field})
-field. Namely MIME message has information about content in header. So
-if reader defines processes for each content-type (@ref{content-type}),
-he/she can display image, or play video or sound, or get file by ftp, or
-extract file, ... only read the message.@refill
-
-In addition, MIME message can represent message includes plural parts,
-called @cindex{Multipart}@strong{Multipart} (@ref{multipart}) message.
-So it is possible to include picture and sound in one message.@refill
-
-MIME seems have philosophy of ``declaration''. In other words, MIME is
-a message description language to represent various kinds of things uses
-us-ascii (@ref{us-ascii}) as its ``alphabet''. Encoded-word defined in
-RFC 1522 (@ref{encoded-word}) is same.@refill
-
-In addition, MUA displays only what it can understand and ignore what
-can not understand. So content is saved from non-supported MUA and
-MUA is saved from unknown data.
-
-
-@node Glossary, , How is MIME?, Introduction
+@node Glossary, , Introduction, Introduction
@section Glossary
* Coded character set:: Coded character set\e$B!JId9f2=J8;z=89g!K\e(B, Character code\e$B!JJ8;zId9f!K\e(B
* Code extension:: Code extension\e$B!JId9f3HD%!K\e(B
* Content-Disposition:: Content-Disposition field
-* content-type::
+* media type::
* Content-Type field::
* Emacs::
* encoded-word::
* RFC 934::
* RFC 1036::
* RFC 1153::
-* RFC 1521:: RFC 1521
* RFC 1557::
* RFC 1922::
+* RFC 2045::
+* RFC 2046::
+* RFC 2048::
+* RFC 2049::
* plain text::
* Security multipart::
* text/enriched::
@node 7bit, 8bit, Glossary, Glossary
@subsection 7bit
-\e$B$3$3$G$O\e(B 0 \e$B$+$i\e(B 127 \e$B$N@0?t$r;X$7$^$9!#\e(B@refill
+@cindex{7bit}@strong{7bit} means any integer between 0 .. 127.@refill
-0 \e$B$+$i\e(B 127 \e$B$N@0?t$NNs$GI=8=$G$-$k$h$&$J\e(B data \e$B$r\e(B ``7bit \e$B$N\e(B data'' \e$B$H8F$S\e(B
-\e$B$^$9!#\e(B@refill
+Any data represented by 7bit integers is called @cindex{7bit
+data}@strong{7bit data}.@refill
-\e$B$^$?!"\e(B0 \e$B$+$i\e(B 31 \e$B$*$h$S\e(B 127 \e$B$GI=8=$5$l$k@)8fJ8;z$H\e(B 32 \e$B$GI=8=$5$l$k6uGr$H\e(B
-33 \e$B$+$i\e(B 126 \e$B$GI=8=$5$l$k?^7AJ8;z$+$i$J$kJ8;zNs$N$3$H$r\e(B ``7bit \e$B$NJ8;zNs\e(B''
-\e$B$H8F$S$^$9!J$3$l$O\e(B ISO 2022 (@ref{ISO 2022}) \e$B$N!V\e(B7 \e$BC10L7O!W$HF1MM$G$9!K!#\e(B
+Textual string consisted of Control characters between 0 .. 31 and 127,
+and space represented by 32, and graphic characters between 33 .. 236
+are called @cindex{7bit (textual) string}@strong{7bit (textual)
+string}.@refill
-\e$BEAE}E*$J\e(B Internet \e$B$N\e(B MTA (@ref{MTA}) \e$B$O\e(B 7bit \e$B$N\e(B data \e$B$rE>Aw$G$-$k$N$G!"\e(B
-7bit \e$B$N\e(B data \e$B$O\e(B Quoted-Printable (@ref{Quoted-Printable}) \e$B$d\e(B Base64
-(@ref{Base64}) \e$B$H$$$C$?JQ49$r9T$o$J$/$F$b$=$N$^$^E>Aw$G$-$^$9!#\e(B@refill
+Traditional Internet MTA (@ref{MTA}) can translate 7bit data, so it is
+no need to translate by Quoted-Printable (@ref{Quoted-Printable}) or
+Base64 (@ref{Base64}) for 7bit data.@refill
-\e$B$7$+$7!"\e(B7bit \e$B$G$"$l$P$I$s$J\e(B data \e$B$G$bNI$$$H$O$$$($^$;$s!#$J$<$J$i!"#19T\e(B
-\e$B$ND9$5$,$"$^$j$KD9$$$H!"\e(BMTA \e$B$O$=$N\e(B message \e$B$rE>Aw$9$k$3$H$,$G$-$J$$$+$i\e(B
-\e$B$G$9!#$A$J$_$K!"\e(BRFC 821 (@ref{RFC 821}) \e$B$O#19T$O2~9TJ8;z$r=|$$$F\e(B 998
-byte \e$B0JFb$G$"$k$3$H$r5a$a$F$$$^$9!#$h$C$F!"$3$l0J>e$N9T$,4^$^$l$k2DG=@-\e(B
-\e$B$N$"$k\e(B data, \e$BNc$($P!"\e(BPostscript \e$B$N\e(B data \e$B$J$I$O\e(B Quoted-Printable \e$BEy$G\e(B
-encode\e$B$9$kI,MQ$,$"$j$^$9!#\e(B
+However if there are too long lines, it can not translate by 7bit MTA
+even if it is 7bit data. RFC 821 (@ref{RFC 821}) and RFC 2045 (@ref{RFC
+2045}) require lines in 7bit data must be less than 998 bytes. So if a
+``7bit data'' has a line more than 999 bytes, it is regarded as binary
+(@ref{binary}). For example, Postscript file should be encoded by
+Quoted-Printable.
@node 8bit, 94 character set, 7bit, Glossary
@subsection 8bit
-\e$B$3$3$G$O\e(B 0 \e$B$+$i\e(B 255 \e$B$N@0?t$r;X$7$^$9!#\e(B@refill
+@cindex{8bit}@strong{8bit} means any integer between 0 .. 255.@refill
-0 \e$B$+$i\e(B 255 \e$B$N@0?t$NNs$GI=8=$G$-$k$h$&$J\e(B data \e$B$r\e(B ``8bit \e$B$N\e(B data'' \e$B$H8F$S\e(B
-\e$B$^$9!#\e(B@refill
+Any data represented by 8bit integers is called @cindex{8bit
+data}@strong{8bit data}.@refill
-\e$B$^$?!"\e(B0 \e$B$+$i\e(B 31, 127 \e$B$*$h$S\e(B 128 \e$B$+$i\e(B 159 \e$B$GI=8=$5$l$k@)8fJ8;z$H\e(B 32 \e$B$GI=\e(B
-\e$B8=$5$l$k6uGr$H\e(B 33 \e$B$+$i\e(B 126 \e$B$H\e(B 160 \e$B$+$i\e(B 255 \e$B$GI=8=$5$l$k?^7AJ8;z$+$i$J$k\e(B
-\e$BJ8;zNs$N$3$H$r\e(B ``8bit \e$B$NJ8;zNs\e(B'' \e$B$H8F$S$^$9!J$3$l$O\e(B ISO 2022 (@ref{ISO
-2022}) \e$B$N!V\e(B8 \e$BC10L7O!W$HF1MM$G$9!K!#\e(B@refill
+Textual string consisted of Control characters between 0 .. 31, 127, and
+128 .. 159, and space represented by 32, and graphic characters between
+33 .. 236 and 160 .. 255 are called @cindex{8bit (textual)
+string}@strong{8bit (textual) string}.@refill
-iso-8859-1 (@ref{iso-8859-1}) \e$B$d\e(B euc-kr (@ref{euc-kr}) \e$B$H$$$C$?Id9f2=J8\e(B
-\e$B;z=89g$O\e(B 8bit \e$B$NJ8;zNs$G$9!#\e(B@refill
+For example, iso-8859-1 (@ref{iso-8859-1}) or euc-kr (@ref{euc-kr}) are
+coded-character-set represented by 8bit textual string.@refill
-\e$BEAE}E*$J\e(B Internet \e$B$N\e(B MTA (@ref{MTA}) \e$B$O\e(B 7bit (@ref{7bit}) \e$B$N\e(B data \e$B$7$+E>\e(B
-\e$BAw$G$-$J$$$N$G!"$=$&$7$?\e(B MTA \e$B$r7PM3$9$k>l9g!"\e(BQuoted-Printable
-(@ref{Quoted-Printable}) \e$B$d\e(B Base64 (@ref{Base64}) \e$B$H$$$C$?JQ49$r9T$o$J$/\e(B
-\e$B$F$O$J$j$^$;$s!#\e(B@refill
+Traditional Internet MTA (@ref{MTA}) can translate only 7bit
+(@ref{7bit}) data, so if a 8bit data will be translated such MTA, it
+must be encoded by Quoted-Printable (@ref{Quoted-Printable}) or Base64
+(@ref{Base64}).@refill
-\e$B$7$+$7!":G6a$G$O\e(B 8bit \e$B$NJ8;zNs$r$=$N$^$^DL$9$3$H$,$G$-$k\e(B MTA \e$B$bEP>l$7$F\e(B
-\e$B$-$?$N$G!"$=$N$^$^Aw$k$3$H$,$G$-$k>l9g$bA}$($F$-$^$7$?!#\e(B@refill
-
-\e$B$7$+$7!"\e(B8bit \e$B$G$"$l$P$I$s$J\e(B data \e$B$G$bNI$$$H$O$$$($^$;$s!#$J$<$J$i!"#19T\e(B
-\e$B$ND9$5$,$"$^$j$KD9$$$H!"\e(BMTA \e$B$O$=$N\e(B message \e$B$rE>Aw$9$k$3$H$,$G$-$J$$$+$i\e(B
-\e$B$G$9!#$A$J$_$K!"\e(BRFC 821 \e$B$O#19T$O2~9TJ8;z$r=|$$$F\e(B 998 byte \e$B0JFb$G$"$k$3$H\e(B
-\e$B$r5a$a$F$$$^$9!#$h$C$F!"$3$l0J>e$N9T$,4^$^$l$k2DG=@-$N$"$k\e(B data, \e$BNc$($P!"\e(B
-Postscript \e$B$N\e(B data \e$B$J$I$O\e(B Quoted-Printable \e$BEy$G\e(B encode\e$B$9$kI,MQ$,$"$j$^$9!#\e(B
-@refill
+However 8bit MTA are increasing today.@refill
-\e$B$^$?!"$3$&$7$?M}M3$+$i!"#19T$,\e(B 999 byte \e$B0J>e$N9T$,B8:_$9$k2DG=@-$N$"$k\e(B
-data \e$B$O\e(B @cindex{binary}@strong{binary} (@ref{binary}) \e$B$H8F$V$3$H$K$7$^$9!#\e(B
-
-\e$B$A$J$_$K!"\e(B7bit \e$B$GI=8=$G$-$k\e(B data \e$B$O\e(B 8bit \e$B$G$bI=8=$G$-$^$9!#$h$C$F!"\e(B
-``8bit'' \e$B$H8@$C$?>l9g!"#19T$,\e(B 998 byte \e$B0J2<$NG$0U$N\e(B data \e$B$r;X$9$3$H$,\e(B
-\e$B$"$j$^$9!#\e(B
+However if there are too long lines, it can not translate by 8bit MTA
+even if it is 8bit data. RFC 2045 (@ref{RFC 2045}) require lines in
+8bit data must be less than 998 bytes. So if a ``8bit data'' has a line
+more than 999 bytes, it is regarded as binary (@ref{binary}), so it must
+be encoded by Base64 or Quoted-Printable.
@node 94 character set, 96 character set, 8bit, Glossary
@node Base64, binary, ASCII, Glossary
@subsection Base64
-RFC 1521 (@ref{RFC 1521}) \e$B$GDj5A$5$l$F$$$k\e(B MIME (@ref{MIME}) \e$B$K$*$1$k\e(B
-binary data (@ref{binary}) \e$B$N\e(B network \e$B$G$NJQ49K!$N#1$D!#\e(B@refill
+@cindex{Base64}@strong{Base64} is a transfer encoding method of MIME
+(@ref{MIME}) defined in RFC 2045 (@ref{RFC 2045}).@refill
-\e$B!X\e(B64 \e$B?J?t!Y$H$$$&0UL#$G!"\e(B3 byte \e$B$N\e(B data \e$B$r\e(B 0 \e$B$+$i\e(B 63 \e$B$N?t$rI=$9\e(B ASCII
-(@ref{ASCII}) 4 \e$BJ8;z$KJQ49$9$kJ}K!!#!J$b$7!"\e(B4 \e$BJ8;z$K$J$i$J$1$l$P\e(B
-@cindex{pad}@strong{pad} \e$B$H8F$P$l$k5M$aJ*$r$7$FD9$5$rD4@0$9$k!K\e(B@refill
+The encoding process represents 24-bit groups of input bits as output
+strings of 4 encoded characters. Encoded characters represent integer 0
+.. 63 or @cindex{pad}@strong{pad}. Base64 data must be 4 * n bytes, so
+pad is used to adjust size.@refill
-\e$B$3$N\e(B 65 \e$B<oN`$NJ8;z$O\e(B ASCII \e$B$H\e(B EBCDIC \e$B$N6&DLItJ,$+$iA*$P$l$F$*$j!"\e(B
-Internet \e$B0J30$N\e(B network \e$B$r7PM3$9$k>l9g$G$b0BA4$KE>Aw$G$-$k$h$&$K@_7W$5\e(B
-\e$B$l$F$$$k!#\e(B
+These 65 characters are subset of all versions of ISO 646, including
+US-ASCII, and all versions of EBCDIC. So it is safe even if it is
+translated by non-Internet gateways.
@node binary, Character Set, Base64, Glossary
\e$B$a$KMQ$$$k<jK!!#\e(BISO 2022 (@ref{ISO 2022}) \e$B$O$=$N#1$D!#\e(B
-@node Content-Disposition, content-type, Code extension, Glossary
+@node Content-Disposition, media type, Code extension, Glossary
@subsection Content-Disposition field
Content \e$B$NI=<($N;EJ}$d\e(B file \e$BL>$rI=8=$9$k$?$a$N\e(B field. MIME (@ref{MIME})
-@node content-type, Content-Type field, Content-Disposition, Glossary
-@subsection content-type
+@node media type, Content-Type field, Content-Disposition, Glossary
+@subsection media type
-MIME (@ref{MIME}) \e$B$K$*$1$k\e(B part (@ref{part}) \e$B$N<oN`!#\e(B
-@cindex{type}@strong{type} \e$B$H\e(B @cindex{subtype}@strong{subtype} \e$B$+$i$J$k!#\e(B
-RFC 1521 (@ref{RFC 1521}) \e$B$GDj5A$5$l$F$$$k!#\e(B@refill
+@cindex{media type}@strong{media type} specifies the nature of the data
+in the body of MIME (@ref{MIME}) entity (@ref{entity}). It consists of
+@cindex{type}@strong{type} and @cindex{subtype}@strong{subtype}. It is
+defined in RFC 2046 (@ref{RFC 2046}).@refill
-type \e$B$OI8=`$G$O\e(B @cindex{application}@strong{application},
-@cindex{audio}@strong{audio}, @cindex{image}@strong{image},
-@cindex{message}@strong{message}, @cindex{multipart}@strong{multipart}
-(@ref{multipart}), @cindex{text}@strong{text},
-@cindex{video}@strong{video} \e$B$,Dj5A$5$l!"$=$l$>$l$K$O\e(B
-application/octet-stream, audio/basic, image/jpeg, multipart/mixed
-(@ref{multipart/mixed}), text/plain (@ref{text/plain}), video/mpeg \e$B$J$I\e(B
-\e$B$N$5$^$6$^$J\e(B subtype \e$B$,Dj5A$5$l$F$$$k!#\e(B
+Currently there are following types:
-@noindent
-@strong{[\e$BCm0U\e(B]}
-@quotation
+@itemize @bullet
+@item
+@cindex{text}@strong{text}
+@item
+@cindex{image}@strong{image}
+@item
+@cindex{audio}@strong{audio}
+@item
+@cindex{video}@strong{video}
+@item
+@cindex{application}@strong{application}
+@item
+@cindex{multipart}@strong{multipart} (@ref{multipart})
+@item
+@cindex{message}@strong{message}
+@end itemize
-\e$B$3$3$G$O!"\e(Btext/plain \e$B$J$I$N\e(B type/subtype \e$B$NAH$r$7$P$7$P\e(B
-@cindex{content-type/subtype}@strong{content-type/subtype} \e$B$H=q$/!#\e(B
-@end quotation
+And there are various subtypes, for example, application/octet-stream,
+audio/basic, image/jpeg, multipart/mixed (@ref{multipart/mixed}),
+text/plain (@ref{text/plain}), video/mpeg...@refill
-content-type \e$B$O!"\e(BRFC 1521 \e$B$GDj5A$5$l$F$$$k$b$N$K2C$($F!"EPO?$9$k$3$H$b$G\e(B
-\e$B$-$k!#8=:_!"EPO?$5$l$F$$$k$b$N$O\e(B MEDIA TYPES
-(ftp://ftp.isi.edu/in-notes/iana/assignments/media-types) \e$B$G;2>H$G$-$k!#\e(B
+You can refer registered media types at MEDIA TYPES
+(ftp://ftp.isi.edu/in-notes/iana/assignments/media-types).@refill
-\e$B$^$?!"\e(Btype \e$B$b$7$/$O\e(B subtype \e$B$K!"A0$K\e(B `x-' \e$B$rIU$1$?\e(B
-@cindex{x-token}@strong{x-token} \e$B$rMQ$$$k$3$H$K$h$j!"EPO?$5$l$F$$$J$$$b\e(B
-\e$B$N$r;dE*$KMQ$$$k$3$H$b$G$-$k!#$7$+$7!"EvA3$N$3$H$J$,$i!"$3$&$7$?;dE*$J\e(B
-content-type \e$B$ONJ2r$rF@$?<T$N4V$G$7$+2r<a$G$-$J$$$N$GMxMQ$K$OCm0U$9$k$3\e(B
-\e$B$H!#\e(B@refill
+In addition, you can use private type or subtype using
+@cindex{x-token}@strong{x-token}, which as the prefix `x-'. However you
+can not use them in public.@refill
(cf. @ref{Content-Type field})
-@node Content-Type field, Emacs, content-type, Glossary
+@node Content-Type field, Emacs, media type, Glossary
@subsection Content-Type field
-Header field to represent information about part, such as content-type
-(@ref{content-type}), MIME charset (@ref{MIME charset}). It is defined
-in RFC 1521 (@ref{RFC 1521}).
+Header field to represent information about body, such as media type
+(@ref{media type}), MIME charset (@ref{MIME charset}). It is defined in
+RFC 2045 (@ref{RFC 2045}).
@noindent
@strong{[Memo]}
@quotation
Historically, Content-Type field was proposed in RFC 1049. In it,
-Content-Type did not distinguish type and subtype. However RFC 1521
-parser may be able to accept RFC 1049 based Content-Type as unknown
-type.
+Content-Type did not distinguish type and subtype. However MIME parser
+may be able to accept RFC 1049 based Content-Type as unknown type.
@end quotation
@subsection encoded-word
Representation non ASCII (@ref{ASCII}) characters in header. It is
-defined in @cindex{RFC 1522}@strong{RFC 1522}.@refill
+defined in @cindex{RFC 2047}@strong{RFC 2047}.@refill
-@cindex{Standards Track}@cindex{RFC 1522}
+@cindex{Standards Track}@cindex{RFC 2047}
@noindent
-[RFC 1522]
+[RFC 2047]
@quotation
-K. Moore, ``MIME (Multipurpose Internet Mail Extensions) Part Two:
-Message Header Extensions for Non-ASCII Text'', September 1993,
-Standards Track.
+K. Moore, ``MIME (Multipurpose Internet Mail Extensions) Part Three:
+Message Header Extensions for Non-ASCII Text'', November 1996, Standards
+Track (obsolete RFC 1521,1522,1590).
@end quotation
@node iso-8859-1, ISO 8859-2, ISO 8859-1, Glossary
@subsection iso-8859-1
-\e$B@>2$=t8l$J$I$rI=8=$9$k$?$a$N\e(B MIME charset (@ref{MIME charset}) \e$B$N#1$D!#\e(B
+@cindex{iso-8859-1}@strong{iso-8859-1} is a MIME charset (@ref{MIME
+charset}) for west-European languages written by Latin script.@refill
ISO 2022 (@ref{ISO 2022}) \e$B$K4p$$$F!"\e(BASCII (@ref{ASCII}) \e$B$K\e(B ISO 8859-1
(@ref{ISO 8859-1}) \e$B$r\e(B 8bit (@ref{8bit}) \e$B$GId9f3HD%\e(B (@ref{Code
extension})\e$B$7$F$$$k!#\e(B@refill
-RFC 1521 (@ref{RFC 1521}) \e$B$GDj5A$5$l$F$$$k!#\e(B
+It is defined in RFC 2046 (@ref{RFC 2046}).
@node ISO 8859-2, iso-8859-2, iso-8859-1, Glossary
@node iso-8859-2, ISO 8859-3, ISO 8859-2, Glossary
@subsection iso-8859-2
-\e$BEl2$=t8l$rI=8=$9$k$?$a$N\e(B MIME charset (@ref{MIME charset}) \e$B$N#1$D!#\e(B
+@cindex{iso-8859-2}@strong{iso-8859-2} is a MIME charset (@ref{MIME
+charset}) for east-European languages written by Latin script.@refill
ISO 2022 (@ref{ISO 2022}) \e$B$K4p$$$F!"\e(BASCII (@ref{ASCII}) \e$B$K\e(B ISO 8859-2
(@ref{ISO 8859-2}) \e$B$r\e(B 8bit (@ref{8bit}) \e$B$GId9f3HD%\e(B (@ref{Code
extension})\e$B$7$F$$$k!#\e(B@refill
-RFC 1521 (@ref{RFC 1521}) \e$B$GDj5A$5$l$F$$$k!#\e(B
+It is defined in RFC 2046 (@ref{RFC 2046}).
@node ISO 8859-3, ISO 8859-4, iso-8859-2, Glossary
@node iso-8859-5, ISO 8859-6, ISO 8859-5, Glossary
@subsection iso-8859-5
-\e$B%-%j%kJ8;z$rI=8=$9$k$?$a$N\e(B MIME charset (@ref{MIME charset}) \e$B$N#1$D!#\e(B
+@cindex{iso-8859-5}@strong{iso-8859-5} is a MIME charset (@ref{MIME
+charset}) for Cyrillic script.@refill
ISO 2022 (@ref{ISO 2022}) \e$B$K4p$$$F!"\e(BASCII (@ref{ASCII}) \e$B$K\e(B ISO 8859-5
(@ref{ISO 8859-5}) \e$B$r\e(B 8bit (@ref{8bit}) \e$B$GId9f3HD%\e(B (@ref{Code
extension})\e$B$7$F$$$k!#\e(B@refill
-RFC 1521 (@ref{RFC 1521}) \e$B$GDj5A$5$l$F$$$k!#\e(B
+It is defined in RFC 2046 (@ref{RFC 2046}).
@node ISO 8859-6, ISO 8859-7, iso-8859-5, Glossary
@node iso-8859-7, ISO 8859-8, ISO 8859-7, Glossary
@subsection iso-8859-7
-\e$B%.%j%7%"8l$rI=8=$9$k$?$a$N\e(B MIME charset (@ref{MIME charset}) \e$B$N#1$D!#\e(B
+@cindex{iso-8859-7}@strong{iso-8859-7} is a MIME charset (@ref{MIME
+charset}) for Greek script.@refill
ISO 2022 (@ref{ISO 2022}) \e$B$K4p$$$F!"\e(BASCII (@ref{ASCII}) \e$B$K\e(B ISO 8859-7
(@ref{ISO 8859-7}) \e$B$r\e(B 8bit (@ref{8bit}) \e$B$GId9f3HD%\e(B (@ref{Code
extension})\e$B$7$F$$$k!#\e(B@refill
-RFC 1947 \e$B$GDj5A$5$l$F$$$k!#\e(B
+It is defined in RFC 1947.
@cindex{iso-8859-7}@cindex{Informational}@cindex{RFC 1947}
@noindent
@node message/rfc822, method, message, Glossary
@subsection message/rfc822
-\e$BEAE}E*$J\e(B RFC 934 (@ref{RFC 934}) \e$B$KBe$o$j!"\e(BRFC 822 (@ref{RFC 822}) \e$B$GDj\e(B
-\e$B5A$5$l$k\e(B mail \e$B$rI=$9\e(B MIME \e$B$N7A<0!#\e(BRFC 1521 (@ref{RFC 1521}) \e$B$GDj5A$5$l$F\e(B
-\e$B$$$k!#\e(B
+@cindex{message/rfc822}@strong{message/rfc822} indicates that the body
+contains an encapsulated message, with the syntax of an RFC 822
+(@ref{RFC 822}) message. It is the replacement of traditional RFC 934
+(@ref{RFC 934}) encapsulation. It is defined in RFC 2046 (@ref{RFC
+2046}).
@node method, MIME, message/rfc822, Glossary
@node MIME, MIME charset, method, Glossary
@subsection MIME
-@cindex{Multipurpose Internet Mail Extensions}@strong{Multipurpose
-Internet Mail Extensions} \e$B$NN,$G!"\e(BInternet \e$B$N\e(B mail \e$B$d\e(B news \e$B$G\e(B us-ascii
-plain text (@ref{us-ascii}) \e$B0J30$NJ8;z$r;H$&$?$a$N\e(B RFC 822 (@ref{RFC
-822}) \e$B$KBP$9$k3HD%!#\e(B@refill
+MIME stands for @cindex{Multipurpose Internet Mail
+Extensions}@strong{Multipurpose Internet Mail Extensions}, it is an
+extension for RFC 822 (@ref{RFC 822}).@refill
-RFC 1521 (@ref{RFC 1521}) \e$B$H\e(B RFC 1522 (@ref{encoded-word}) \e$B$GDj5A$5$l$F\e(B
-\e$B$$$k!#\e(B@refill
+According to RFC 2045:@refill
-(cf. @ref{What is MIME?})
+STD 11, RFC 822, defines a message representation protocol specifying
+considerable detail about US-ASCII message headers, and leaves the
+message content, or message body, as flat US-ASCII text. This set of
+documents, collectively called the Multipurpose Internet Mail
+Extensions, or MIME, redefines the format of messages to allow
+for@refill
+
+@enumerate
+@item
+textual message bodies in character sets other than US-ASCII,
+@item
+an extensible set of different formats for non-textual message
+bodies,
+@item
+multi-part message bodies, and
+@item
+textual header information in character sets other than US-ASCII.
+@end enumerate
+It is defined in RFC 2045 (@ref{RFC 2045}), RFC 2046 (@ref{RFC 2046}),
+RFC 2047 (@ref{encoded-word}), RFC 2048 (@ref{RFC 2048}) and RFC 2049
+(@ref{RFC 2049}).
+
@node MIME charset, MTA, MIME, Glossary
@subsection MIME charset
-Content-Type field (@ref{Content-Type field}) \e$B$d\e(B encoded-word
-(@ref{encoded-word}) \e$B$N\e(B charset parameter \e$B$GMQ$$$i$l$kEPO?$5$l$?Id9f2=J8\e(B
-\e$B;z=89g\e(B (@ref{Coded character set})\e$B!#\e(B@refill
+Coded character set (@ref{Coded character set}) used in Content-Type
+field (@ref{Content-Type field}) or charset parameter of encoded-word
+(@ref{encoded-word}).@refill
-RFC 1521 (@ref{RFC 1521}) \e$B$GDj5A$5$l$F$$$k!#\e(B@refill
+It is defined in RFC 2045 (@ref{RFC 2045}).@refill
iso-2022-jp (@ref{iso-2022-jp}) \e$B$d\e(B euc-kr (@ref{euc-kr}) \e$B$O$=$N#1$D!#\e(B
\e$B!J$3$3$G$O!"\e(BMIME charset \e$B$OJ8;z=89g\e(B (@ref{Character set})\e$B$H6hJL$7$F>.J8\e(B
@node multipart, multipart/alternative, MULE, Glossary
@subsection Multipart
-\e$B#1$D$N\e(B message (@ref{message}) \e$B$KJ#?t$N\e(B part \e$B$rF~$l$k$?$a$N\e(B MIME
-(@ref{MIME}) \e$B$K$*$1$kI=8=K!!"$b$7$/$O!"J#?t$N\e(B part \e$B$+$i$J$k\e(B message \e$B$r;X\e(B
-\e$B$9!#\e(B(cf. @ref{content-type}) @refill
+@cindex{multipart}@strong{multipart} means media type (@ref{media type})
+to insert multiple entities (@ref{entities}) in a single body. Or it
+also indicates a message consists of multiple entities.@refill
-\e$B8=:_!"Dj5A$5$l$F$$$k\e(B @cindex{multipart}@strong{multipart} \e$B$H$7$F$O!"\e(BRFC
-1521 (@ref{RFC 1521}) \e$B$GDj5A$5$l$?\e(B
+There are following subtypes registered in RFC 2046 (@ref{RFC 2046}):
@itemize @bullet
@item
@end itemize
@noindent
-\e$B$N$[$+\e(B RFC 1847 (@ref{Security multipart}) \e$B$GDj5A$5$l$?\e(B
+and registered in RFC 1847 (@ref{Security multipart}):
@itemize @bullet
@item
multipart/encrypted (@ref{multipart/encrypted})
@end itemize
-@noindent
-\e$B$J$I$,$"$k!#\e(B
@node multipart/alternative, multipart/digest, multipart, Glossary
@subsection multipart/alternative
-multipart (@ref{multipart}) \e$B$N#1$D$G!"F1$8>pJs$r0[$C$?7A<0$GF~$l!"A*Br;h\e(B
-\e$B$H$9$k>l9g$KMQ$$$k!#\e(B@refill
+@cindex{multipart/digest}@strong{multipart/digest} is one of multipart
+(@ref{multipart}) media types. This type is syntactically identical to
+multipart/mixed (@ref{multipart/mixed}), but the semantics are
+different. In particular, each of the body parts is an ``alternative''
+version of the same information.@refill
-(cf. @ref{RFC 1521})
+(cf. @ref{RFC 2046})
@node multipart/digest, multipart/encrypted, multipart/alternative, Glossary
@subsection multipart/digest
-multipart (@ref{multipart}) \e$B$N#1$D$G!"4^$^$l$k\e(B part \e$B$N\e(B default \e$B$N\e(B
-content-type (@ref{content-type}) \e$B$,\e(B multipart/mixed
-(@ref{multipart/mixed}) \e$B$J$I$N>l9g\e(B text/plain (@ref{text/plain}) \e$B$G$"$k\e(B
-\e$B$N$KBP$7!"\e(B@cindex{multipart/digest}@strong{multipart/digest}\e$B$G$O\e(B
-message/rfc822 (@ref{message/rfc822}) \e$B$,MQ$$$i$l$kE@$,0[$J$k!#\e(B@refill
+@cindex{multipart/digest}@strong{multipart/digest} is one of multipart
+(@ref{multipart}) media types. This type is syntactically identical to
+multipart/mixed (@ref{multipart/mixed}), but the semantics are
+different. In particular, in a digest, the default Content-Type value
+for a body part is changed from text/plain (@ref{text/plain}) to
+message/rfc822 (@ref{message/rfc822}).@refill
-\e$B$3$l$OEAE}E*$J\e(B RFC 1153 (@ref{RFC 1153}) \e$B$K4p$E$/\e(B encapsulation
-(@ref{encapsulation}) \e$B$KBe$o$k$b$N$G$"$k!#\e(B@refill
+This is the replacement of traditional RFC 1153 (@ref{RFC 1153}) based
+encapsulation (@ref{encapsulation}).@refill
-(cf. @ref{RFC 1521})
+(cf. @ref{RFC 2046})
@node multipart/mixed, multipart/parallel, multipart/encrypted, Glossary
@subsection multipart/mixed
-multipart (@ref{multipart}) \e$B$N<gMW$J\e(B subtype \e$B$G!"J#?t$N\e(B part \e$B$r=g=xIU$1\e(B
-\e$B$FJB$Y$k>l9g$KMQ$$$k!#\e(B@refill
+Primary and default subtype of multipart (@ref{multipart}), it is used
+when the body parts are independent and need to be bundled in a
+particular order.@refill
-(cf. @ref{RFC 1521})
+(cf. @ref{RFC 2046})
@node multipart/parallel, multipart/signed, multipart/mixed, Glossary
@subsection multipart/parallel
-multipart (@ref{multipart}) \e$B$N#1$D$G!"J#?t$N\e(B part \e$B$r=g=xIU$1$:$K4^$a$k>l\e(B
-\e$B9g$KMQ$$$k!#\e(B@refill
+@cindex{multipart/parallel}@strong{multipart/parallel} is a subtype of
+multipart (@ref{multipart}). This type is syntactically identical to
+multipart/mixed (@ref{multipart/mixed}), but the semantics are
+different. In particular, in a parallel entity, the order of body parts
+is not significant.@refill
-(cf. @ref{RFC 1521})
+(cf. @ref{RFC 2046})
@node Quoted-Printable, RFC 821, PGP/MIME, Glossary
@subsection Quoted-Printable
-RFC 1521 (@ref{RFC 1521}) \e$B$GDj5A$5$l$F$$$k\e(B MIME (@ref{MIME}) \e$B$K$*$1$k\e(B
-binary data (@ref{binary}) \e$B$N\e(B network \e$B$G$NJQ49K!$N#1$D!#\e(B@refill
+@cindex{Quoted-Printable}@strong{Quoted-Printable} is a transfer
+encoding method of MIME (@ref{MIME}) defined in RFC 2045 (@ref{RFC
+2045}).@refill
-`=' \e$B$d@)8fJ8;z$d\e(B 128 \e$B0J>e$NJ8;z$J$I$O\e(B `=AF' \e$B$N$h$&$K\e(B `=' \e$B$N8e$KB3$/\e(B 16
-\e$B?J?t$GI=8=$9$k!#$3$N$?$a!"\e(BASCII (@ref{ASCII}) \e$BJ8;zCf?4$N\e(B data \e$B$G$O\e(B
-Base64 (@ref{Base64}) \e$B$KHf$Y$k$H2DFI@-$,9b$/$J$k2DG=@-$,$"$k!#\e(B@refill
+If the data being encoded are mostly US-ASCII text, the encoded form of
+the data remains largely recognizable by humans.@refill
+
+(cf. @ref{Base64})
-\e$B$7$+$7$J$,$i!"\e(BEBCDIC \e$B$K$OB8:_$7$J$$J8;z$rMxMQ$9$k>l9g!"\e(BEBCDIC \e$B$rMxMQ$7\e(B
-\e$B$F$$$k\e(B network \e$B$G$O0BA4$KE>Aw$9$k$3$H$,$G$-$:!"\e(BBase64 \e$B$KHf$Y$F0BA4@-$O\e(B
-\e$BDc$$!#\e(B
@node RFC 821, RFC 822, Quoted-Printable, Glossary
-@node RFC 1153, RFC 1521, RFC 1036, Glossary
+@node RFC 1153, RFC 1557, RFC 1036, Glossary
@subsection RFC 1153
\e$BJ#?t$N\e(B Internet mail (@ref{RFC 822}) \e$B$r\e(B
-@node RFC 1521, RFC 1557, RFC 1153, Glossary
-@subsection RFC 1521
-
-MIME (@ref{MIME}) \e$B$rDj5A$7$F$$$k\e(B RFC \e$B$N#1$D!#\e(B
-
-@cindex{Standards Track}@cindex{RFC 1521}
-@noindent
-[RFC 1521]
-@quotation
-N. Borenstein and N. Freed, ``MIME (Multipurpose Internet Mail
-Extensions) Part One: Mechanisms for Specifying and Describing the
-Format of Internet Message Bodies'', September 1993, Standards Track
-(obsolete RFC 1341).
-@end quotation
-
-
-(RFC 1522 (@ref{encoded-word}))
-
-
-@node RFC 1557, RFC 1922, RFC 1521, Glossary
+@node RFC 1557, RFC 1922, RFC 1153, Glossary
@subsection RFC 1557
euc-kr (@ref{euc-kr}) \e$B$H\e(B iso-2022-kr (@ref{iso-2022-kr}) \e$B$H$$$&4Z9q8l$N\e(B
-@node RFC 1922, plain text, RFC 1557, Glossary
+@node RFC 1922, RFC 2045, RFC 1557, Glossary
@subsection RFC 1922
iso-2022-cn (@ref{iso-2022-cn}), iso-2022-cn-ext
-@node plain text, Security multipart, RFC 1922, Glossary
+@node RFC 2045, RFC 2046, RFC 1922, Glossary
+@subsection RFC 2045
+
+@cindex{Standards Track}@cindex{RFC 2045}
+@noindent
+[RFC 2045]
+@quotation
+N. Freed and N. Borenstein, ``Multipurpose Internet Mail Extensions
+(MIME) Part One: Format of Internet Message Bodies'', November 1996,
+Standards Track (obsolete RFC 1521, 1522, 1590).
+@end quotation
+
+
+
+@node RFC 2046, RFC 2048, RFC 2045, Glossary
+@subsection RFC 2046
+
+@cindex{Standards Track}@cindex{RFC 2046}
+@noindent
+[RFC 2046]
+@quotation
+N. Freed and N. Borenstein, ``Multipurpose Internet Mail Extensions
+(MIME) Part Two: Media Types'', November 1996, Standards Track (obsolete
+RFC 1521, 1522, 1590).
+@end quotation
+
+
+
+@node RFC 2048, RFC 2049, RFC 2046, Glossary
+@subsection RFC 2048
+
+@cindex{Standards Track}@cindex{RFC 2048}
+@noindent
+[RFC 2048]
+@quotation
+N. Freed, J. Klensin and J. Postel, ``Multipurpose Internet Mail
+Extensions (MIME) Part Four: Registration Procedures'', November 1996,
+Standards Track (obsolete RFC 1521, 1522, 1590).
+@end quotation
+
+
+
+@node RFC 2049, plain text, RFC 2048, Glossary
+@subsection RFC 2049
+
+@cindex{Standards Track}@cindex{RFC 2049}
+@noindent
+[RFC 2049]
+@quotation
+N. Freed and N. Borenstein, ``Multipurpose Internet Mail Extensions
+(MIME) Part Five: Conformance Criteria and Examples'', November 1996,
+Standards Track (obsolete RFC 1521, 1522, 1590).
+@end quotation
+
+
+
+@node plain text, Security multipart, RFC 2049, Glossary
@subsection plain text
\e$B=qBN$dAHHG$K4X$9$k>pJs$r;}$?$J$$\e(B \e$BJ8;zId9f\e(B(@ref{Coded character set})\e$B$N$_\e(B
@node text/enriched, text/plain, Security multipart, Glossary
@subsection text/enriched
-RFC 1521 (@ref{RFC 1521}) \e$B$GDj5A$5$l$?\e(B
-@cindex{text/richtext}@strong{text/richtext} \e$B$KBe$o$C$F!"=qBN$dAHHG$K4X\e(B
-\e$B$9$k>pJs$r;}$C$?\e(B text\e$B$rI=8=$9$k$?$a$N\e(B content-type (@ref{content-type}).
+RFC 1521 \e$B$GDj5A$5$l$?\e(B @cindex{text/richtext}@strong{text/richtext} \e$B$KBe\e(B
+\e$B$o$C$F!"=qBN$dAHHG$K4X$9$k>pJs$r;}$C$?\e(B text\e$B$rI=8=$9$k$?$a$N\e(B media type
+(@ref{media type}).
@cindex{text/enriched}@cindex{RFC 1896}
@noindent
@node text/plain, tm-kernel, text/enriched, Glossary
@subsection text/plain
-RFC 1521 (@ref{RFC 1521}) \e$B$GDj5A$5$l$?!"\e(Bplain text (@ref{plain text}) \e$B$r\e(B
-\e$BI=8=$9$k$?$a$N\e(B content-type (@ref{content-type}).@refill
+@cindex{text/plain}@strong{text/plain} is a media type (@ref{media
+type}) for plain text (@ref{plain text}), defined in RFC 2046 (@ref{RFC
+2046}).@refill
+
+The default media type of ``text/plain; charset=us-ascii'' for Internet
+mail describes existing Internet practice. That is, it is the type of
+body defined by RFC 822 (@ref{RFC 822}).@refill
+
+(cf. @ref{MIME charset}) (cf. @ref{us-ascii})
-\e$BHs\e(B MIME message \e$B$J$I$N\e(B content-type \e$B$,Dj5A$5$l$J$$\e(B part \e$B$O\e(B MIME charset
-(@ref{MIME charset}) \e$B$,\e(B us-ascii (@ref{us-ascii}) \e$B$G$"$k\e(B
-@cindex{text/plain}@strong{text/plain} \e$B$N\e(B part \e$B$G$"$k$H8+Pv$5$l$k$3$H$K\e(B
-\e$B$J$C$F$$$k!#\e(B
@node tm-kernel, tm-MUA, text/plain, Glossary
@itemize @bullet
@item
- \e$BF|K\8l\e(B <tm-ja-admin@@chamonix.jaist.ac.jp>
+ Japanese <tm-ja-admin@@chamonix.jaist.ac.jp>
@item
- \e$B1Q8l\e(B <tm-en-admin@@chamonix.jaist.ac.jp>
+ English <tm-en-admin@@chamonix.jaist.ac.jp>
@end itemize
@noindent
* Menu:
-* What is MIME?:: \e$B$H$3$m$G!"\e(BMIME \e$B$C$F$$$C$?$$2?!)\e(B
-* How is MIME?:: MIME \e$B$G$I$s$J$3$H=PMh$k$N!)\e(B
* Glossary:: \e$BMQ8l\e(B
\1f
-File: tm-ja.info, Node: What is MIME?, Next: How is MIME?, Prev: Introduction, Up: Introduction
-
-\e$B$H$3$m$G!"\e(BMIME \e$B$C$F$$$C$?$$2?!)\e(B
-===============================
-
-*MIME* \e$B$H$O\e(B *Multipurpose Internet Mail Extensions* \e$B$NN,$G!"=>Mh$N!"\e(B
-\e$B4pK\E*$K\e(B us-ascii (*Note us-ascii::) \e$B$N\e(B plain text (*Note plain text::)
-\e$B$G$"$C$?\e(B Internet Mail/News \e$B$KBP$9$k3HD%$K$J$C$F$$$^$9!#\e(B
-
-MIME \e$B$K$O!"\e(BRFC 1521 (*Note RFC 1521::) \e$B$G5,Dj$5$l$F$$$kB?L\E*\e(Bmessage \e$B$N\e(B
-\e$BB&LL$H!"\e(BRFC 1522 (*Note encoded-word::) \e$B$G5,Dj$5$l$F$$$k\e(Bmessage header
-\e$B$K$*$1$kHs\e(B ASCII \e$BJ8;z$NI=8=K!$N$h$&$J!"B?8@8l2=$NB&LL$,$"$j$^$9!#\e(B
-
-
-
-\1f
-File: tm-ja.info, Node: How is MIME?, Next: Glossary, Prev: What is MIME?, Up: Introduction
-
-MIME \e$B$G$I$s$J$3$H=PMh$k$N!)\e(B
-===========================
-
-\e$B$^$:!"B?L\E*\e(B message \e$B$NB&LL$r9M$($k$H!"=>Mh$N\e(B Internet Mail/News \e$B$,4pK\\e(B
-\e$BE*$K\e(B us-ascii (*Note us-ascii::) \e$B$N\e(B plain text (*Note plain text::) \e$B$7$+\e(B
-\e$BI=8=$G$-$J$+$C$?$N$KBP$7$F!"3($d2;@<$dF02h$J$I$NMM!9$J\e(B data \e$B$rI=8=$9$k$3\e(B
-\e$B$H$,$G$-$^$9!#\e(B
-
-\e$B$^$?!"LLGr$$$3$H$K!"\e(Bftp (*Note FTP::) \e$B$d\e(B ftp mail \e$B$r$7$?$j!"\e(Bfile \e$B$r<h$j\e(B
-\e$B=P$7$?$j!"\e(Bpatch \e$B$rEv$F$?$j!"$H$$$C$?!"!X<jB3$-!Y$rAw$k$3$H$,$G$-$^$9!#\e(B
-
-\e$B!t\e(B \e$B$b$C$H$b!"$3$&$$$&$N$O!"$"$k0UL#$G$O4m81$@$C$?$j$9$k$N$G$9$,!#\e(B
-
-\e$B$3$&$7$?\e(B message \e$B$O!"FbMF$N<oN`$r\e(B
-*Content-Type* (*Note Content-Type field::) \e$B$H\e(B
-\e$B$$$&\e(B field \e$B$K=q$$$?\e(B message \e$B$N7?$G;XDj$7$^$9!#$9$k$H!"<u$1<j$O3F\e(B
-content-type (*Note content-type::) \e$B$KBP1~$7$?=hM}$N<oN`$r@_Dj$7$F$*$$$F!"\e(B
-message \e$B$r!XFI$`!Y$@$1$G!"3($dF02h$r8+$?$j!"2;$rLD$i$7$?$j!"\e(Bftp \e$B$G\e(B file
-\e$B$r<h$C$?$j!"\e(Bfile\e$B$r<h$j=P$7$?$j$G$-$^$9!#\e(B
-
-\e$B$^$?!"$"$k\e(B message \e$B$KJ#?t$N\e(B content-type \e$B$,B8:_$9$k\e(B
-*Multipart* (*Note multipart::) \e$B$N\e(B message \e$B$H$$$&\e(B
-\e$B$N$b2DG=$G!"0l$D$N\e(B message \e$B$NCf$K!"3($H2;$HJ8>O$rF~$l$?$j$H$$$C$?$h$&$J\e(B
-\e$B$3$H$,$G$-$^$9!#\e(B
-
-MIME \e$B$K$O$3$N$h$&$J!X@k8@!Y$N;WA[$,$"$k$h$&$K;W$o$l$^$9!#$D$^$j!"\e(B
-us-ascii (*Note us-ascii::) \e$B$r!V%"%k%U%!%Y%C%H!W$H$9$k\e(B MIME \e$B$H$$$&\e(B
-message \e$B5-=R8@8l$G!"$$$m$$$m$J$b$N$r5-=R$7$F$$$3$&$H$$$&$3$H$G$9!#$3$l$O\e(B
-RFC 1522 (*Note encoded-word::) \e$B$G5,Dj$5$l$?\e(B encoded-word \e$B$G$b$$$($k$H;W\e(B
-\e$B$$$^$9!#\e(B
-
-\e$B$=$7$F!"<u$1<j$O!"M}2r$G$-$J$$$b$N$OL5;k$9$k$,!"$=$N7k2L!"\e(Bdata \e$B$r2u$9$3\e(B
-\e$B$H$O$7$J$$$H$$$&$b$N$,$"$j$^$9!#\e(B
-
-\e$BNc$($P!"\e(BASCII (*Note ASCII::) \e$B$7$+I=<($G$-$J$$4D6-$G\e(B JIS X0208 (*Note
-JIS X0208::) \e$B$H\e(B ISO 8859-1 (*Note ISO 8859-1::) \e$B$,:.$8$C$?%F%-%9%H$r$b$i$C\e(B
-\e$B$?$i:$$kLu$G$9$,!"$=$&$$$&;~$@$1B?8@8lC<Kv$r3+$/$H$$$&$h$&$J5;$,;H$($^$9!#\e(B
-
-\e$B$b$A$m$s!"\e(BMULE (*Note MULE::) \e$B$N$h$&$JB?8@8l4D6-$K$*$$$F$b\e(B MUA (*Note
-MUA::) \e$B$KBP$7$FL@<(E*$K\e(B MIME charset (*Note MIME charset::) \e$B$r<($9$3$H$O\e(B
-\e$BM-1W$G$7$g$&!#\e(B
-
-
-
-\1f
-File: tm-ja.info, Node: Glossary, Prev: How is MIME?, Up: Introduction
+File: tm-ja.info, Node: Glossary, Prev: Introduction, Up: Introduction
\e$BMQ8l\e(B
====
* Coded character set:: Coded character set\e$B!JId9f2=J8;z=89g!K\e(B, Character code\e$B!JJ8;zId9f!K\e(B
* Code extension:: Code extension\e$B!JId9f3HD%!K\e(B
* Content-Disposition:: Content-Disposition field
-* content-type::
+* media type::
* Content-Type field::
* Emacs::
* encoded-word::
* RFC 934::
* RFC 1036::
* RFC 1153::
-* RFC 1521:: RFC 1521
* RFC 1557::
* RFC 1922::
+* RFC 2045::
+* RFC 2046::
+* RFC 2048::
+* RFC 2049::
* plain text::
* Security multipart::
* text/enriched::
Base64
------
-RFC 1521 (*Note RFC 1521::) \e$B$GDj5A$5$l$F$$$k\e(B MIME (*Note MIME::) \e$B$K$*$1\e(B
+RFC 2045 (*Note RFC 2045::) \e$B$GDj5A$5$l$F$$$k\e(B MIME (*Note MIME::) \e$B$K$*$1\e(B
\e$B$k\e(B binary data (*Note binary::) \e$B$N\e(B network \e$B$G$NJQ49K!$N#1$D!#\e(B
\e$B!X\e(B64 \e$B?J?t!Y$H$$$&0UL#$G!"\e(B3 byte \e$B$N\e(B data \e$B$r\e(B 0 \e$B$+$i\e(B 63 \e$B$N?t$rI=$9\e(B ASCII
\1f
-File: tm-ja.info, Node: Content-Disposition, Next: content-type, Prev: Code extension, Up: Glossary
+File: tm-ja.info, Node: Content-Disposition, Next: media type, Prev: Code extension, Up: Glossary
Content-Disposition field
-------------------------
\1f
-File: tm-ja.info, Node: content-type, Next: Content-Type field, Prev: Content-Disposition, Up: Glossary
+File: tm-ja.info, Node: media type, Next: Content-Type field, Prev: Content-Disposition, Up: Glossary
-content-type
-------------
+media type
+----------
-MIME (*Note MIME::) \e$B$K$*$1$k\e(B part (*Note part::) \e$B$N<oN`!#\e(B
+MIME (*Note MIME::) \e$B$K$*$1$k\e(B entity (*Note entity::) \e$B$N<oN`!#\e(B
*type* \e$B$H\e(B *subtype* \e$B$+$i$J$k!#\e(B
-RFC 1521 (*Note RFC 1521::) \e$B$GDj5A$5$l$F$$$k!#\e(B
+RFC 2046 (*Note RFC 2046::) \e$B$GDj5A$5$l$F$$$k!#\e(B
+
+type \e$B$OI8=`$G$O\e(B
-type \e$B$OI8=`$G$O\e(B *application*,
-*audio*, *image*,
-*message*, *multipart*
-(*Note multipart::), *text*,
-*video* \e$B$,Dj5A$5$l!"$=$l$>$l$K$O\e(B
-application/octet-stream, audio/basic, image/jpeg, multipart/mixed
-(*Note multipart/mixed::), text/plain (*Note text/plain::), video/mpeg
-\e$B$J$I$N$5$^$6$^$J\e(B subtype \e$B$,Dj5A$5$l$F$$$k!#\e(B
+ * *text*
+ * *image*
+ * *audio*
+ * *video*
+ * *application*
+ * *multipart* (*Note multipart::)
+ * *message*
+
+\e$B$,Dj5A$5$l!"$=$l$>$l$K$O\e(B application/octet-stream, audio/basic,
+image/jpeg, multipart/mixed (*Note multipart/mixed::), text/plain (*Note
+text/plain::), video/mpeg \e$B$J$I$N$5$^$6$^$J\e(B subtype \e$B$,Dj5A$5$l$F$$$k!#\e(B
*[\e$BCm0U\e(B]*
*content-type/subtype* \e$B$H=q$/!#\e(B
-content-type \e$B$O!"\e(BRFC 1521 \e$B$GDj5A$5$l$F$$$k$b$N$K2C$($F!"EPO?$9$k$3$H$b$G\e(B
-\e$B$-$k!#8=:_!"EPO?$5$l$F$$$k$b$N$O\e(B MEDIA TYPES
+media type \e$B$O!"\e(BRFC 2046 \e$B$GDj5A$5$l$F$$$k$b$N$K2C$($F!"EPO?$9$k$3$H$b$G$-\e(B
+\e$B$k!#8=:_!"EPO?$5$l$F$$$k$b$N$O\e(B MEDIA TYPES
(ftp://ftp.isi.edu/in-notes/iana/assignments/media-types) \e$B$G;2>H$G$-$k!#\e(B
\e$B$^$?!"\e(Btype \e$B$b$7$/$O\e(B subtype \e$B$K!"A0$K\e(B `x-' \e$B$rIU$1$?\e(B
\1f
-File: tm-ja.info, Node: Content-Type field, Next: Emacs, Prev: content-type, Up: Glossary
+File: tm-ja.info, Node: Content-Type field, Next: Emacs, Prev: media type, Up: Glossary
Content-Type field
------------------
-content-type (*Note content-type::) \e$B$d\e(B MIME charset (*Note MIME
-charset::) \e$B$J$I$N\e(B part \e$B$K4X$9$k>pJs$rI=8=$9$k$?$a$N\e(B field. RFC 1521
-(*Note RFC 1521::) \e$B$GDj5A$5$l$F$$$k!#\e(B
+media type (*Note media type::) \e$B$d\e(B MIME charset (*Note MIME charset::)
+\e$B$J$I$N\e(B part \e$B$K4X$9$k>pJs$rI=8=$9$k$?$a$N\e(B field. RFC 2045 (*Note RFC
+2045::) \e$B$GDj5A$5$l$F$$$k!#\e(B
*[Memo]*
\e$BNr;KE*$K$O\e(B RFC 1049 \e$B$G\e(B Content-Type field \e$B$,Ds0F$5$l$F$$$k!#C"$7!"\e(B
- \e$B$3$3$G$O\e(B type \e$B$H\e(B subtype \e$B$N6hJL$O$J$$!#$7$+$7!"J8K!E*$K$O\e(B RFC 1521
- parser\e$B$O\e(B RFC 1049 \e$B$K4p$E$/\e(B message \e$B$rL$CN$N\e(B content-type \e$B$r;}$C$?\e(B
+ \e$B$3$3$G$O\e(B type \e$B$H\e(B subtype \e$B$N6hJL$O$J$$!#$7$+$7!"J8K!E*$K$O\e(B MIME
+ parser \e$B$O\e(B RFC 1049 \e$B$K4p$E$/\e(B message \e$B$rL$CN$N\e(B content-type \e$B$r;}$C$?\e(B
message \e$B$H$7$F\e(B parse \e$B$G$-$k$@$m$&!#\e(B
encoded-word
------------
-header \e$B$K$*$1$kHs\e(B ASCII (*Note ASCII::) \e$BJ8;z$NI=8=!#\e(B*RFC 1522* \e$B$GDj5A$5\e(B
+header \e$B$K$*$1$kHs\e(B ASCII (*Note ASCII::) \e$BJ8;z$NI=8=!#\e(B*RFC 2047* \e$B$GDj5A$5\e(B
\e$B$l$F$$$k!#\e(B
-[RFC 1522] K. Moore, "MIME (Multipurpose Internet Mail Extensions)
- Part Two: Message Header Extensions for Non-ASCII Text", September
- 1993, Standards Track.
+[RFC 2047] K. Moore, "MIME (Multipurpose Internet Mail Extensions)
+ Part Three: Message Header Extensions for Non-ASCII Text", November
+ 1996, Standards Track (obsolete RFC 1521,1522,1590).
8859-1 (*Note ISO 8859-1::) \e$B$r\e(B 8bit (*Note 8bit::) \e$B$GId9f3HD%\e(B (*Note
Code extension::)\e$B$7$F$$$k!#\e(B
-RFC 1521 (*Note RFC 1521::) \e$B$GDj5A$5$l$F$$$k!#\e(B
+RFC 2046 (*Note RFC 2046::) \e$B$GDj5A$5$l$F$$$k!#\e(B
8859-2 (*Note ISO 8859-2::) \e$B$r\e(B 8bit (*Note 8bit::) \e$B$GId9f3HD%\e(B (*Note
Code extension::)\e$B$7$F$$$k!#\e(B
-RFC 1521 (*Note RFC 1521::) \e$B$GDj5A$5$l$F$$$k!#\e(B
+RFC 2046 (*Note RFC 2046::) \e$B$GDj5A$5$l$F$$$k!#\e(B
8859-5 (*Note ISO 8859-5::) \e$B$r\e(B 8bit (*Note 8bit::) \e$B$GId9f3HD%\e(B (*Note
Code extension::)\e$B$7$F$$$k!#\e(B
-RFC 1521 (*Note RFC 1521::) \e$B$GDj5A$5$l$F$$$k!#\e(B
+RFC 2046 (*Note RFC 2046::) \e$B$GDj5A$5$l$F$$$k!#\e(B
--------------
\e$BEAE}E*$J\e(B RFC 934 (*Note RFC 934::) \e$B$KBe$o$j!"\e(BRFC 822 (*Note RFC 822::)
-\e$B$GDj5A$5$l$k\e(B mail \e$B$rI=$9\e(B MIME \e$B$N7A<0!#\e(BRFC 1521 (*Note RFC 1521::) \e$B$GDj5A\e(B
+\e$B$GDj5A$5$l$k\e(B mail \e$B$rI=$9\e(B MIME \e$B$N7A<0!#\e(BRFC 2046 (*Note RFC 2046::) \e$B$GDj5A\e(B
\e$B$5$l$F$$$k!#\e(B
plain text (*Note us-ascii::) \e$B0J30$NJ8;z$r;H$&$?$a$N\e(B RFC 822 (*Note RFC
822::) \e$B$KBP$9$k3HD%!#\e(B
-RFC 1521 (*Note RFC 1521::) \e$B$H\e(B RFC 1522 (*Note encoded-word::) \e$B$GDj5A$5\e(B
-\e$B$l$F$$$k!#\e(B
+RFC 2045 \e$B$OKAF,$G<!$N$h$&$K=R$Y$F$$$k!'\e(B
+
+STD 11, RFC 822 \e$B$O!"\e(BUS-ASCII message header \e$B$K4X$7$FHs>o$K>\:Y$K5,Dj$7$?\e(B
+message \e$BI=8=\e(B protocol \e$B$rDj5A$7$F$$$k!#$7$+$7!"$=$l$OC1$K\e(B flat \e$B$J\e(B
+US-ASCII text \e$B$N$_$KN1$^$j!"\e(Bmessage \e$B$NFbMF$d\e(B message body \e$B$K4X$9$k5,Dj$O\e(B
+\e$B$J$5$l$F$$$J$$!#\e(BMultipurpose Internet Mail Extensions, \e$B$"$k$$$O\e(B MIME \e$B$H\e(B
+\e$BAm>N$5$l$k!"$3$N0lO"$NJ8=q$O!"0J2<$N;v$r2DG=$H$9$k$?$a$K\e(B message \e$B$N7A<0\e(B
+\e$B$r:FDj5A$7$?!'\e(B
-(cf. *Note What is MIME?::)
+ 1. \e$BJ8=q\e(B message body \e$B$K$*$1$k\e(B US-ASCII \e$B0J30$NJ8;z=89g\e(B
+ 2. \e$BHsJ8=q\e(B message body
+ 3. \e$BJ#?t$NItJ,$+$i$J$k\e(B message body
+ 4. US-ASCII \e$B0J30$NJ8;z=89g$+$i$J$kJ8=q\e(B header \e$B>pJs\e(B
+RFC 2045 (*Note RFC 2045::), RFC 2046 (*Note RFC 2046::), RFC 2047
+(*Note encoded-word::), RFC 2048 (*Note RFC 2048::), RFC 2049 (*Note RFC
+2049::) \e$B$GDj5A$5$l$F$$$k!#\e(B
+
\1f
encoded-word::) \e$B$N\e(B charset parameter \e$B$GMQ$$$i$l$kEPO?$5$l$?Id9f2=J8;z=8\e(B
\e$B9g\e(B (*Note Coded character set::)\e$B!#\e(B
-RFC 1521 (*Note RFC 1521::) \e$B$GDj5A$5$l$F$$$k!#\e(B
+RFC 2045 (*Note RFC 2045::) \e$B$GDj5A$5$l$F$$$k!#\e(B
iso-2022-jp (*Note iso-2022-jp::) \e$B$d\e(B euc-kr (*Note euc-kr::) \e$B$O$=$N#1$D!#\e(B
\e$B!J$3$3$G$O!"\e(BMIME charset \e$B$OJ8;z=89g\e(B (*Note Character set::)\e$B$H6hJL$7$F>.\e(B
Multipart
---------
-\e$B#1$D$N\e(B message (*Note message::) \e$B$KJ#?t$N\e(B part \e$B$rF~$l$k$?$a$N\e(B MIME
-(*Note MIME::) \e$B$K$*$1$kI=8=K!!"$b$7$/$O!"J#?t$N\e(B part \e$B$+$i$J$k\e(B message \e$B$r\e(B
-\e$B;X$9!#\e(B(cf. *Note content-type::)
+\e$B#1$D$N\e(B message (*Note message::) \e$B$KJ#?t$N\e(B entity (*Note entity::) \e$B$rF~$l\e(B
+\e$B$k$?$a$N\e(B MIME (*Note MIME::) \e$B$K$*$1$k\e(B media type (*Note media type::) \e$B$N\e(B
+\e$B#1$D!"$b$7$/$O!"J#?t$N\e(B entity \e$B$+$i$J$k\e(B message \e$B$r;X$9!#\e(B
-\e$B8=:_!"Dj5A$5$l$F$$$k\e(B *multipart* \e$B$H$7$F$O!"\e(BRFC 1521 (*Note RFC 1521::)
+\e$B8=:_!"Dj5A$5$l$F$$$k\e(B *multipart* \e$B$H$7$F$O!"\e(BRFC 2046 (*Note RFC 2046::)
\e$B$GDj5A$5$l$?\e(B
* multipart/mixed (*Note multipart/mixed::)
multipart (*Note multipart::) \e$B$N#1$D$G!"F1$8>pJs$r0[$C$?7A<0$GF~$l!"A*Br\e(B
\e$B;h$H$9$k>l9g$KMQ$$$k!#\e(B
-(cf. *Note RFC 1521::)
+(cf. *Note RFC 2046::)
multipart/digest
----------------
-multipart (*Note multipart::) \e$B$N#1$D$G!"4^$^$l$k\e(B part \e$B$N\e(B default \e$B$N\e(B
-content-type (*Note content-type::) \e$B$,\e(B multipart/mixed (*Note
+multipart (*Note multipart::) \e$B$N#1$D$G!"4^$^$l$k\e(B entity (*Note entity::)
+\e$B$N\e(B default \e$B$N\e(Bmedia type (*Note media type::) \e$B$,\e(B multipart/mixed (*Note
multipart/mixed::) \e$B$J$I$N>l9g\e(B text/plain (*Note text/plain::) \e$B$G$"$k$N$K\e(B
\e$BBP$7!"\e(B*multipart/digest*\e$B$G$O\e(B message/rfc822 (*Note message/rfc822::) \e$B$,\e(B
\e$BMQ$$$i$l$kE@$,0[$J$k!#\e(B
\e$B$3$l$OEAE}E*$J\e(B RFC 1153 (*Note RFC 1153::) \e$B$K4p$E$/\e(B encapsulation (*Note
encapsulation::) \e$B$KBe$o$k$b$N$G$"$k!#\e(B
-(cf. *Note RFC 1521::)
+(cf. *Note RFC 2046::)
multipart (*Note multipart::) \e$B$N<gMW$J\e(B subtype \e$B$G!"J#?t$N\e(B part \e$B$r=g=xIU\e(B
\e$B$1$FJB$Y$k>l9g$KMQ$$$k!#\e(B
-(cf. *Note RFC 1521::)
+(cf. *Note RFC 2046::)
multipart (*Note multipart::) \e$B$N#1$D$G!"J#?t$N\e(B part \e$B$r=g=xIU$1$:$K4^$a$k\e(B
\e$B>l9g$KMQ$$$k!#\e(B
-(cf. *Note RFC 1521::)
+(cf. *Note RFC 2046::)
Quoted-Printable
----------------
-RFC 1521 (*Note RFC 1521::) \e$B$GDj5A$5$l$F$$$k\e(B MIME (*Note MIME::) \e$B$K$*$1\e(B
-\e$B$k\e(B binary data (*Note binary::) \e$B$N\e(B network \e$B$G$NJQ49K!$N#1$D!#\e(B
+RFC 2045 (*Note RFC 2045::) \e$B$GDj5A$5$l$F$$$k\e(B MIME (*Note MIME::) \e$B$K$*$1\e(B
+\e$B$k\e(B binary data (*Note binary data::) \e$B$N\e(B network \e$B$G$NJQ49K!$N#1$D!#\e(B
`=' \e$B$d@)8fJ8;z$d\e(B 128 \e$B0J>e$NJ8;z$J$I$O\e(B `=AF' \e$B$N$h$&$K\e(B `=' \e$B$N8e$KB3$/\e(B 16
\e$B?J?t$GI=8=$9$k!#$3$N$?$a!"\e(BASCII (*Note ASCII::) \e$BJ8;zCf?4$N\e(B data \e$B$G$O\e(B
\1f
-File: tm-ja.info, Node: RFC 1153, Next: RFC 1521, Prev: RFC 1036, Up: Glossary
+File: tm-ja.info, Node: RFC 1153, Next: RFC 1557, Prev: RFC 1036, Up: Glossary
RFC 1153
--------
\1f
-File: tm-ja.info, Node: RFC 1521, Next: RFC 1557, Prev: RFC 1153, Up: Glossary
-
-RFC 1521
---------
-
-MIME (*Note MIME::) \e$B$rDj5A$7$F$$$k\e(B RFC \e$B$N#1$D!#\e(B
-
-
-[RFC 1521] N. Borenstein and N. Freed, "MIME (Multipurpose Internet
- Mail Extensions) Part One: Mechanisms for Specifying and Describing
- the Format of Internet Message Bodies", September 1993, Standards
- Track (obsolete RFC 1341).
-
-
-(RFC 1522 (*Note encoded-word::))
-
-
-
-\1f
-File: tm-ja.info, Node: RFC 1557, Next: RFC 1922, Prev: RFC 1521, Up: Glossary
+File: tm-ja.info, Node: RFC 1557, Next: RFC 1922, Prev: RFC 1153, Up: Glossary
RFC 1557
--------
\1f
-File: tm-ja.info, Node: RFC 1922, Next: plain text, Prev: RFC 1557, Up: Glossary
+File: tm-ja.info, Node: RFC 1922, Next: RFC 2045, Prev: RFC 1557, Up: Glossary
RFC 1922
--------
\1f
-File: tm-ja.info, Node: plain text, Next: Security multipart, Prev: RFC 1922, Up: Glossary
+File: tm-ja.info, Node: RFC 2045, Next: RFC 2046, Prev: RFC 1922, Up: Glossary
+
+RFC 2045
+--------
+
+
+[RFC 2045] N. Freed and N. Borenstein, "Multipurpose Internet Mail
+ Extensions (MIME) Part One: Format of Internet Message Bodies",
+ November 1996, Standards Track (obsolete RFC 1521, 1522, 1590).
+
+
+
+
+\1f
+File: tm-ja.info, Node: RFC 2046, Next: RFC 2048, Prev: RFC 2045, Up: Glossary
+
+RFC 2046
+--------
+
+
+[RFC 2046] N. Freed and N. Borenstein, "Multipurpose Internet Mail
+ Extensions (MIME) Part Two: Media Types", November 1996, Standards
+ Track (obsolete RFC 1521, 1522, 1590).
+
+
+
+
+\1f
+File: tm-ja.info, Node: RFC 2048, Next: RFC 2049, Prev: RFC 2046, Up: Glossary
+
+RFC 2048
+--------
+
+
+[RFC 2048] N. Freed, J. Klensin and J. Postel, "Multipurpose
+ Internet Mail Extensions (MIME) Part Four: Registration
+ Procedures", November 1996, Standards Track (obsolete RFC 1521,
+ 1522, 1590).
+
+
+
+
+\1f
+File: tm-ja.info, Node: RFC 2049, Next: plain text, Prev: RFC 2048, Up: Glossary
+
+RFC 2049
+--------
+
+
+[RFC 2049] N. Freed and N. Borenstein, "Multipurpose Internet Mail
+ Extensions (MIME) Part Five: Conformance Criteria and Examples",
+ November 1996, Standards Track (obsolete RFC 1521, 1522, 1590).
+
+
+
+
+\1f
+File: tm-ja.info, Node: plain text, Next: Security multipart, Prev: RFC 2049, Up: Glossary
plain text
----------
text/enriched
-------------
-RFC 1521 (*Note RFC 1521::) \e$B$GDj5A$5$l$?\e(B
-*text/richtext* \e$B$KBe$o$C$F!"=qBN$dAHHG$K4X\e(B
-\e$B$9$k>pJs$r;}$C$?\e(B text\e$B$rI=8=$9$k$?$a$N\e(B content-type (*Note
-content-type::).
+RFC 1521 \e$B$GDj5A$5$l$?\e(B *text/richtext* \e$B$KBe$o$C$F!"=qBN$dAHHG$K4X$9$k>pJs\e(B
+\e$B$r;}$C$?\e(B text\e$B$rI=8=$9$k$?$a$N\e(B media type (*Note media type::).
[text/enriched: RFC 1896] P. Resnick and A. Walker, "The
text/plain
----------
-RFC 1521 (*Note RFC 1521::) \e$B$GDj5A$5$l$?!"\e(Bplain text (*Note plain
-text::) \e$B$rI=8=$9$k$?$a$N\e(B content-type (*Note content-type::).
+RFC 2046 (*Note RFC 2046::) \e$B$GDj5A$5$l$?!"\e(Bplain text (*Note plain
+text::) \e$B$rI=8=$9$k$?$a$N\e(B media type (*Note media type::).
\e$BHs\e(B MIME message \e$B$J$I$N\e(B content-type \e$B$,Dj5A$5$l$J$$\e(B part \e$B$O\e(B MIME charset
(*Note MIME charset::) \e$B$,\e(B us-ascii (*Note us-ascii::) \e$B$G$"$k\e(B
* Menu:
* ANSI X3.4:1986: ASCII. 9.
-* application: content-type. 10.
+* application: media type. 20.
* application/pgp: PGP-kazu. 9.
* ASCII: ASCII. 9.
* ASCII: us-ascii. 16.
-* audio: content-type. 10.
+* audio: media type. 16.
* BBDB: setting for VM. 15.
* BIG5: cn-big5. 13.
* binary: 8bit. 35.
* charset-extension: RFC 1922. 11.
* CNS 11643:1992: CNS. 13.
* CNS 11643-1992: CNS. 13.
-* Content-Type: How is MIME?. 16.
-* content-type/subtype: content-type. 21.
+* content-type/subtype: media type. 26.
* Emacs/mule: MULE. 20.
* encapsulation: RFC 1153. 6.
* encapsulation: RFC 934. 6.
* GB 8565.2: GB 8565.2. 8.
* GB 8565.2:1988: GB 8565.2. 8.
* gnus-mime: tm-MUA. 16.
-* image: content-type. 11.
+* image: media type. 14.
* Informational: hz-gb2312. 14.
* Informational: hz-gb2312. 19.
* Informational: iso-2022-jp-2. 10.
* KS C 5601:1987: KS C5601. 8.
* KS C 5861:1992: euc-kr. 14.
* KS C5601: KS C5601. 8.
-* message: content-type. 11.
+* message: media type. 24.
* message header: RFC 822. 6.
* Message Transfer Agent: MTA. 5.
* Message User Agent: MUA. 5.
-* MIME: What is MIME?. 5.
* mime-setup: mime-setup. 6.
* mule: MULE. 19.
* MULE: MULE. 20.
-* multipart: content-type. 12.
-* Multipart: How is MIME?. 23.
+* multipart: media type. 22.
* multipart: multipart. 10.
* multipart/digest: multipart/digest. 9.
* multipart/encrypted: Security multipart. 8.
* multipart/signed: Security multipart. 6.
-* Multipurpose Internet Mail
* Multipurpose Internet Mail Extensions: MIME. 5.
* pad: Base64. 10.
* parameter: Content-Type field. 21.
* RFC 1153: RFC 1153. 16.
* RFC 1468: iso-2022-jp. 18.
* RFC 1489: koi8-r. 13.
-* RFC 1521: RFC 1521. 7.
-* RFC 1522: encoded-word. 8.
* RFC 1554: iso-2022-jp-2. 10.
* RFC 1557: RFC 1557. 8.
* RFC 1806: Content-Disposition. 8.
* RFC 1842: hz-gb2312. 14.
* RFC 1843: hz-gb2312. 19.
* RFC 1847: Security multipart. 12.
-* RFC 1896: text/enriched. 10.
+* RFC 1896: text/enriched. 8.
* RFC 1922: RFC 1922. 14.
* RFC 1947: iso-8859-7. 13.
* RFC 1991: PGP. 16.
* RFC 2015: PGP/MIME. 20.
+* RFC 2045: RFC 2045. 5.
+* RFC 2046: RFC 2046. 5.
+* RFC 2047: encoded-word. 8.
+* RFC 2048: RFC 2048. 5.
+* RFC 2049: RFC 2049. 5.
* RFC 821: RFC 821. 8.
* RFC 822: RFC 822. 14.
* RFC 934: RFC 934. 13.
* SMTP: RFC 821. 8.
* Standards Track: encoded-word. 8.
* Standards Track: PGP/MIME. 20.
-* Standards Track: RFC 1521. 7.
+* Standards Track: RFC 2045. 5.
+* Standards Track: RFC 2046. 5.
+* Standards Track: RFC 2048. 5.
+* Standards Track: RFC 2049. 5.
* Standards Track: Security multipart. 12.
* STD 10: RFC 821. 8.
* STD 11: RFC 822. 14.
* STD 9: FTP. 8.
-* subtype: content-type. 7.
* subtype: Content-Type field. 20.
-* text: content-type. 13.
-* text/enriched: text/enriched. 10.
+* subtype: media type. 7.
+* text: media type. 12.
+* text/enriched: text/enriched. 8.
* text/plain: text/plain. 10.
* text/richtext: text/enriched. 6.
* tm \e$BBg@9$j\e(B package: tm-MUA. 8.
* tm-rmail: tm-MUA. 20.
* tm-setup: tm-setup. 6.
* tm-vm: tm-MUA. 18.
-* type: content-type. 6.
* type: Content-Type field. 20.
+* type: media type. 6.
* us-ascii: us-ascii. 13.
* USENET: RFC 1036. 9.
-* video: content-type. 13.
+* video: media type. 18.
* vm: setting for VM. 6.
* XEmacs/mule: MULE. 21.
-* x-token: content-type. 29.
-1522: encoded-word. 6.
-Extensions: What is MIME?. 6.
+* x-token: media type. 34.
+2047: encoded-word. 6.
mail: RFC 822. 11.
message: RFC 822. 11.
method: method. 8.
Tag table:
Node: Top\7f152
Node: Introduction\7f680
-Node: What is MIME?\7f1569
-Node: How is MIME?\7f2248
-Node: Glossary\7f4723
-Node: 7bit\7f8111
-Node: 8bit\7f9428
-Node: 94 character set\7f11483
-Node: 96 character set\7f11756
-Node: 94x94 character set\7f12023
-Node: ASCII\7f12327
-Node: Base64\7f12757
-Node: binary\7f13455
-Node: Character Set\7f14045
-Node: cn-gb\7f14375
-Node: cn-big5\7f14861
-Node: CNS\7f15497
-Node: Coded character set\7f16178
-Node: Code extension\7f16505
-Node: Content-Disposition\7f16849
-Node: content-type\7f17291
-Node: Content-Type field\7f18698
-Node: Emacs\7f19791
-Node: encoded-word\7f20025
-Node: encapsulation\7f20416
-Node: euc-kr\7f20711
-Node: FTP\7f21228
-Node: GB 2312\7f21513
-Node: GB 8565.2\7f22067
-Node: hz-gb2312\7f22530
-Node: ISO 2022\7f23339
-Node: iso-2022-cn\7f23918
-Node: iso-2022-cn-ext\7f24394
-Node: iso-2022-jp\7f25066
-Node: iso-2022-jp-2\7f25781
-Node: iso-2022-kr\7f26190
-Node: ISO 646\7f26623
-Node: ISO 8859-1\7f27283
-Node: iso-8859-1\7f27714
-Node: ISO 8859-2\7f28159
-Node: iso-8859-2\7f28593
-Node: ISO 8859-3\7f29032
-Node: ISO 8859-4\7f29349
-Node: ISO 8859-5\7f29666
-Node: iso-8859-5\7f30075
-Node: ISO 8859-6\7f30517
-Node: ISO 8859-7\7f30836
-Node: iso-8859-7\7f31240
-Node: ISO 8859-8\7f31790
-Node: ISO 8859-9\7f32109
-Node: ISO-IR-165\7f32426
-Node: JIS X0201\7f32941
-Node: JIS C6226\7f33735
-Node: JIS X0208\7f34028
-Node: JIS X0212\7f35911
-Node: koi8-r\7f36263
-Node: KS C5601\7f36761
-Node: message\7f37162
-Node: message/rfc822\7f37425
-Node: method\7f37733
-Node: MIME\7f38084
-Node: MIME charset\7f38506
-Node: MTA\7f39068
-Node: MUA\7f39282
-Node: MULE\7f39456
-Node: multipart\7f40310
-Node: multipart/alternative\7f41146
-Node: multipart/digest\7f41451
-Node: multipart/encrypted\7f42098
-Node: multipart/mixed\7f42428
-Node: multipart/parallel\7f42721
-Node: multipart/signed\7f43008
-Node: PGP\7f43304
-Node: PGP-kazu\7f44140
-Node: PGP/MIME\7f45627
-Node: Quoted-Printable\7f46660
-Node: RFC 821\7f47421
-Node: RFC 822\7f47701
-Node: RFC 934\7f48185
-Node: RFC 1036\7f48640
-Node: RFC 1153\7f49094
-Node: RFC 1521\7f49635
-Node: RFC 1557\7f50080
-Node: RFC 1922\7f50471
-Node: plain text\7f51137
-Node: Security multipart\7f51413
-Node: text/enriched\7f52046
-Node: text/plain\7f52512
-Node: tm-kernel\7f53000
-Node: tm-MUA\7f53505
-Node: us-ascii\7f54024
-Node: Setting\7f54690
-Node: mime-setup\7f55370
-Node: signature\7f55992
-Node: Notice about GNUS\7f57750
-Node: tm-setup\7f58902
-Node: setting for VM\7f59743
-Node: manual setting\7f60109
-Node: Bug report\7f60664
-Node: Concept Index\7f62274
-Node: Variable Index\7f71651
+Node: Glossary\7f1421
+Node: 7bit\7f4899
+Node: 8bit\7f6216
+Node: 94 character set\7f8271
+Node: 96 character set\7f8544
+Node: 94x94 character set\7f8811
+Node: ASCII\7f9115
+Node: Base64\7f9545
+Node: binary\7f10243
+Node: Character Set\7f10833
+Node: cn-gb\7f11163
+Node: cn-big5\7f11649
+Node: CNS\7f12285
+Node: Coded character set\7f12966
+Node: Code extension\7f13293
+Node: Content-Disposition\7f13637
+Node: media type\7f14077
+Node: Content-Type field\7f15509
+Node: Emacs\7f16594
+Node: encoded-word\7f16828
+Node: encapsulation\7f17250
+Node: euc-kr\7f17545
+Node: FTP\7f18062
+Node: GB 2312\7f18347
+Node: GB 8565.2\7f18901
+Node: hz-gb2312\7f19364
+Node: ISO 2022\7f20173
+Node: iso-2022-cn\7f20752
+Node: iso-2022-cn-ext\7f21228
+Node: iso-2022-jp\7f21900
+Node: iso-2022-jp-2\7f22615
+Node: iso-2022-kr\7f23024
+Node: ISO 646\7f23457
+Node: ISO 8859-1\7f24117
+Node: iso-8859-1\7f24548
+Node: ISO 8859-2\7f24993
+Node: iso-8859-2\7f25427
+Node: ISO 8859-3\7f25866
+Node: ISO 8859-4\7f26183
+Node: ISO 8859-5\7f26500
+Node: iso-8859-5\7f26909
+Node: ISO 8859-6\7f27351
+Node: ISO 8859-7\7f27670
+Node: iso-8859-7\7f28074
+Node: ISO 8859-8\7f28624
+Node: ISO 8859-9\7f28943
+Node: ISO-IR-165\7f29260
+Node: JIS X0201\7f29775
+Node: JIS C6226\7f30569
+Node: JIS X0208\7f30862
+Node: JIS X0212\7f32745
+Node: koi8-r\7f33097
+Node: KS C5601\7f33595
+Node: message\7f33996
+Node: message/rfc822\7f34259
+Node: method\7f34567
+Node: MIME\7f34918
+Node: MIME charset\7f36140
+Node: MTA\7f36702
+Node: MUA\7f36916
+Node: MULE\7f37090
+Node: multipart\7f37944
+Node: multipart/alternative\7f38809
+Node: multipart/digest\7f39114
+Node: multipart/encrypted\7f39776
+Node: multipart/mixed\7f40106
+Node: multipart/parallel\7f40399
+Node: multipart/signed\7f40686
+Node: PGP\7f40982
+Node: PGP-kazu\7f41818
+Node: PGP/MIME\7f43305
+Node: Quoted-Printable\7f44338
+Node: RFC 821\7f45104
+Node: RFC 822\7f45384
+Node: RFC 934\7f45868
+Node: RFC 1036\7f46323
+Node: RFC 1153\7f46777
+Node: RFC 1557\7f47318
+Node: RFC 1922\7f47709
+Node: RFC 2045\7f48373
+Node: RFC 2046\7f48684
+Node: RFC 2048\7f48973
+Node: RFC 2049\7f49288
+Node: plain text\7f49602
+Node: Security multipart\7f49878
+Node: text/enriched\7f50511
+Node: text/plain\7f50953
+Node: tm-kernel\7f51437
+Node: tm-MUA\7f51942
+Node: us-ascii\7f52461
+Node: Setting\7f53127
+Node: mime-setup\7f53807
+Node: signature\7f54429
+Node: Notice about GNUS\7f56187
+Node: tm-setup\7f57339
+Node: setting for VM\7f58180
+Node: manual setting\7f58546
+Node: Bug report\7f59101
+Node: Concept Index\7f60711
+Node: Variable Index\7f70173
\1f
End tag table
<!doctype sinfo system>
-<!-- $Id: tm-ja.sgml,v 6.1 1996/10/21 02:32:00 morioka Exp $ -->
+<!-- $Id: tm-ja.sgml,v 7.0 1996/12/02 19:15:36 morioka Exp $ -->
<head>
<title>tm 7.90 Manual\e$B!JF|K\8lHG!K\e(B
<author>\e$B<i2,\e(B \e$BCNI'\e(B <mail>morioka@jaist.ac.jp</mail>
</ul>
-<h2> \e$B$H$3$m$G!"\e(BMIME \e$B$C$F$$$C$?$$2?!)\e(B
-<node> What is MIME?
-<p>
-<concept>MIME</concept> \e$B$H$O\e(B <concept>Multipurpose Internet Mail
-Extensions</concept> \e$B$NN,$G!"=>Mh$N!"4pK\E*$K\e(B <dref>us-ascii</dref> \e$B$N\e(B
-<dref>plain text</dref> \e$B$G$"$C$?\e(B Internet Mail/News \e$B$KBP$9$k3HD%$K$J$C\e(B
-\e$B$F$$$^$9!#\e(B
-<p>
-MIME \e$B$K$O!"\e(B<a node="RFC 1521">RFC 1521</a> \e$B$G5,Dj$5$l$F$$$kB?L\E*\e(B
-message \e$B$NB&LL$H!"\e(B<a node="encoded-word">RFC 1522</a> \e$B$G5,Dj$5$l$F$$$k\e(B
-message header \e$B$K$*$1$kHs\e(B ASCII \e$BJ8;z$NI=8=K!$N$h$&$J!"B?8@8l2=$NB&LL$,\e(B
-\e$B$"$j$^$9!#\e(B
-
-
-<h2> MIME \e$B$G$I$s$J$3$H=PMh$k$N!)\e(B
-<node> How is MIME?
-<P>
-\e$B$^$:!"B?L\E*\e(B message \e$B$NB&LL$r9M$($k$H!"=>Mh$N\e(B Internet Mail/News \e$B$,4p\e(B
-\e$BK\E*$K\e(B <dref>us-ascii</dref> \e$B$N\e(B <dref>plain text</dref> \e$B$7$+I=8=$G$-$J\e(B
-\e$B$+$C$?$N$KBP$7$F!"3($d2;@<$dF02h$J$I$NMM!9$J\e(B data \e$B$rI=8=$9$k$3$H$,$G$-\e(B
-\e$B$^$9!#\e(B
-<P>
-\e$B$^$?!"LLGr$$$3$H$K!"\e(B<a node="FTP">ftp</a> \e$B$d\e(B ftp mail \e$B$r$7$?$j!"\e(Bfile
-\e$B$r<h$j=P$7$?$j!"\e(Bpatch \e$B$rEv$F$?$j!"$H$$$C$?!"!X<jB3$-!Y$rAw$k$3$H$,$G$-\e(B
-\e$B$^$9!#\e(B
-<P>
-\e$B!t\e(B \e$B$b$C$H$b!"$3$&$$$&$N$O!"$"$k0UL#$G$O4m81$@$C$?$j$9$k$N$G$9$,!#\e(B
-<P>
-\e$B$3$&$7$?\e(B message \e$B$O!"FbMF$N<oN`$r\e(B <a node="Content-Type
-field"><concept>Content-Type</concept></a> \e$B$H$$$&\e(B field \e$B$K=q$$$?\e(B
-message \e$B$N7?$G;XDj$7$^$9!#$9$k$H!"<u$1<j$O3F\e(B <dref>content-type</dref>
-\e$B$KBP1~$7$?=hM}$N<oN`$r@_Dj$7$F$*$$$F!"\e(Bmessage \e$B$r!XFI$`!Y$@$1$G!"3($dF0\e(B
-\e$B2h$r8+$?$j!"2;$rLD$i$7$?$j!"\e(Bftp \e$B$G\e(B file \e$B$r<h$C$?$j!"\e(Bfile\e$B$r<h$j=P$7$?$j\e(B
-\e$B$G$-$^$9!#\e(B
-<p>
-\e$B$^$?!"$"$k\e(B message \e$B$KJ#?t$N\e(B content-type \e$B$,B8:_$9$k\e(B <a
-node="multipart"><concept>Multipart</concept></a> \e$B$N\e(B message \e$B$H$$$&$N\e(B
-\e$B$b2DG=$G!"0l$D$N\e(B message \e$B$NCf$K!"3($H2;$HJ8>O$rF~$l$?$j$H$$$C$?$h$&$J\e(B
-\e$B$3$H$,$G$-$^$9!#\e(B
-<p>
-MIME \e$B$K$O$3$N$h$&$J!X@k8@!Y$N;WA[$,$"$k$h$&$K;W$o$l$^$9!#$D$^$j!"\e(B
-<dref>us-ascii</dref> \e$B$r!V%"%k%U%!%Y%C%H!W$H$9$k\e(B MIME \e$B$H$$$&\e(B message
-\e$B5-=R8@8l$G!"$$$m$$$m$J$b$N$r5-=R$7$F$$$3$&$H$$$&$3$H$G$9!#$3$l$O\e(B <a
-node="encoded-word">RFC 1522</a> \e$B$G5,Dj$5$l$?\e(B encoded-word \e$B$G$b$$$($k\e(B
-\e$B$H;W$$$^$9!#\e(B
-<P>
-\e$B$=$7$F!"<u$1<j$O!"M}2r$G$-$J$$$b$N$OL5;k$9$k$,!"$=$N7k2L!"\e(Bdata \e$B$r2u$9\e(B
-\e$B$3$H$O$7$J$$$H$$$&$b$N$,$"$j$^$9!#\e(B
-<p>
-\e$BNc$($P!"\e(B<a node="ASCII">ASCII</a> \e$B$7$+I=<($G$-$J$$4D6-$G\e(B <a node="JIS
-X0208">JIS X0208</a> \e$B$H\e(B <a node="ISO 8859-1">ISO 8859-1</a> \e$B$,:.$8$C$?\e(B
-\e$B%F%-%9%H$r$b$i$C$?$i:$$kLu$G$9$,!"$=$&$$$&;~$@$1B?8@8lC<Kv$r3+$/$H$$$&\e(B
-\e$B$h$&$J5;$,;H$($^$9!#\e(B
-<p>
-\e$B$b$A$m$s!"\e(B<a node="MULE">MULE</a> \e$B$N$h$&$JB?8@8l4D6-$K$*$$$F$b\e(B <a
-node="MUA">MUA</a> \e$B$KBP$7$FL@<(E*$K\e(B <a node="MIME charset">MIME
-charset</a> \e$B$r<($9$3$H$OM-1W$G$7$g$&!#\e(B
-
-
<h2> \e$BMQ8l\e(B
<node> Glossary
<p>
<h3> Base64
<node> Base64
<p>
-<a node="RFC 1521">RFC 1521</a> \e$B$GDj5A$5$l$F$$$k\e(B <a
-node="MIME">MIME</a> \e$B$K$*$1$k\e(B <a node="binary">binary data</a> \e$B$N\e(B
-network \e$B$G$NJQ49K!$N#1$D!#\e(B
+<dref>RFC 2045</dref> \e$B$GDj5A$5$l$F$$$k\e(B <dref>MIME</dref> \e$B$K$*$1$k\e(B <a
+node="binary">binary data</a> \e$B$N\e(B network \e$B$G$NJQ49K!$N#1$D!#\e(B
<p>
\e$B!X\e(B64 \e$B?J?t!Y$H$$$&0UL#$G!"\e(B3 byte \e$B$N\e(B data \e$B$r\e(B 0 \e$B$+$i\e(B 63 \e$B$N?t$rI=$9\e(B
<dref>ASCII</dref> 4 \e$BJ8;z$KJQ49$9$kJ}K!!#!J$b$7!"\e(B4 \e$BJ8;z$K$J$i$J$1$l$P\e(B
date="June 1995">
-<h3> content-type
-<node> content-type
+<h3> media type
+<node> media type
<p>
-<dref>MIME</dref> \e$B$K$*$1$k\e(B <dref>part</dref> \e$B$N<oN`!#\e(B<concept>type</>
-\e$B$H\e(B <concept>subtype</concept> \e$B$+$i$J$k!#\e(B<dref>RFC 1521</dref> \e$B$GDj5A$5\e(B
-\e$B$l$F$$$k!#\e(B
+<dref>MIME</dref> \e$B$K$*$1$k\e(B <dref>entity</dref> \e$B$N<oN`!#\e(B
+<concept>type</> \e$B$H\e(B <concept>subtype</concept> \e$B$+$i$J$k!#\e(B<dref>RFC
+2046</dref> \e$B$GDj5A$5$l$F$$$k!#\e(B
<p>
-type \e$B$OI8=`$G$O\e(B <concept>application</concept>,
-<concept>audio</concept>, <concept>image</concept>,
-<concept>message</concept>, <a
-node="multipart"><concept>multipart</concept></a>,
-<concept>text</concept>, <concept>video</concept> \e$B$,Dj5A$5$l!"$=$l$>$l\e(B
-\e$B$K$O\e(B application/octet-stream, audio/basic, image/jpeg,
-<dref>multipart/mixed</dref>, <dref>text/plain</dref>, video/mpeg \e$B$J$I\e(B
-\e$B$N$5$^$6$^$J\e(B subtype \e$B$,Dj5A$5$l$F$$$k!#\e(B
+type \e$B$OI8=`$G$O\e(B
+
+<ul>
+<li><concept>text</concept>
+</li>
+<li><concept>image</concept>
+</li>
+<li><concept>audio</concept>
+</li>
+<li><concept>video</concept>
+</li>
+<li><concept>application</concept>
+</li>
+<li><a node="multipart"><concept>multipart</concept></a>
+</li>
+<li><concept>message</concept>
+</ul>
+
+<noindent>
+\e$B$,Dj5A$5$l!"$=$l$>$l$K$O\e(B application/octet-stream, audio/basic,
+image/jpeg, <dref>multipart/mixed</dref>, <dref>text/plain</dref>,
+video/mpeg \e$B$J$I$N$5$^$6$^$J\e(B subtype \e$B$,Dj5A$5$l$F$$$k!#\e(B
<memo title="\e$BCm0U\e(B">
<p>
</memo>
<p>
-content-type \e$B$O!"\e(BRFC 1521 \e$B$GDj5A$5$l$F$$$k$b$N$K2C$($F!"EPO?$9$k$3$H$b\e(B
-\e$B$G$-$k!#8=:_!"EPO?$5$l$F$$$k$b$N$O\e(B <a
+media type \e$B$O!"\e(BRFC 2046 \e$B$GDj5A$5$l$F$$$k$b$N$K2C$($F!"EPO?$9$k$3$H$b$G\e(B
+\e$B$-$k!#8=:_!"EPO?$5$l$F$$$k$b$N$O\e(B <a
href="ftp://ftp.isi.edu/in-notes/iana/assignments/media-types">MEDIA
TYPES</a> \e$B$G;2>H$G$-$k!#\e(B
<p>
<h3> Content-Type field
<node> Content-Type field
<p>
-<dref>content-type</dref> \e$B$d\e(B <dref>MIME charset</dref> \e$B$J$I$N\e(B part \e$B$K\e(B
-\e$B4X$9$k>pJs$rI=8=$9$k$?$a$N\e(B field. <dref>RFC 1521</dref> \e$B$GDj5A$5$l$F$$\e(B
-\e$B$k!#\e(B
+<dref>media type</dref> \e$B$d\e(B <dref>MIME charset</dref> \e$B$J$I$N\e(B part \e$B$K4X\e(B
+\e$B$9$k>pJs$rI=8=$9$k$?$a$N\e(B field. <dref>RFC 2045</dref> \e$B$GDj5A$5$l$F$$$k!#\e(B
<memo>
<p>
\e$BNr;KE*$K$O\e(B RFC 1049 \e$B$G\e(B Content-Type field \e$B$,Ds0F$5$l$F$$$k!#C"$7!"$3$3\e(B
-\e$B$G$O\e(B type \e$B$H\e(B subtype \e$B$N6hJL$O$J$$!#$7$+$7!"J8K!E*$K$O\e(B RFC 1521 parser
-\e$B$O\e(B RFC 1049 \e$B$K4p$E$/\e(B message \e$B$rL$CN$N\e(B content-type \e$B$r;}$C$?\e(B message \e$B$H\e(B
-\e$B$7$F\e(B parse \e$B$G$-$k$@$m$&!#\e(B
+\e$B$G$O\e(B type \e$B$H\e(B subtype \e$B$N6hJL$O$J$$!#$7$+$7!"J8K!E*$K$O\e(B MIME parser \e$B$O\e(B
+RFC 1049 \e$B$K4p$E$/\e(B message \e$B$rL$CN$N\e(B content-type \e$B$r;}$C$?\e(B message \e$B$H$7\e(B
+\e$B$F\e(B parse \e$B$G$-$k$@$m$&!#\e(B
</memo>
<p>
<node> encoded-word
<p>
header \e$B$K$*$1$kHs\e(B <a node="ASCII">ASCII</a> \e$BJ8;z$NI=8=!#\e(B<concept>RFC
-1522</concept> \e$B$GDj5A$5$l$F$$$k!#\e(B
+2047</concept> \e$B$GDj5A$5$l$F$$$k!#\e(B
<p>
-<rfc number="1522" type="Standards Track" author="K. Moore"
+<rfc number="2047" type="Standards Track" author="K. Moore"
title="MIME (Multipurpose Internet Mail Extensions) Part
- Two: Message Header Extensions for Non-ASCII Text"
- date="September 1993">
+ Three: Message Header Extensions for Non-ASCII Text"
+ date="November 1996" obsolete="1521,1522,1590">
<h3> encapsulation
<h3> iso-8859-1
<node> iso-8859-1
<p>
-\e$B@>2$=t8l$J$I$rI=8=$9$k$?$a$N\e(B <a node="MIME charset">MIME charset</a>
-\e$B$N#1$D!#\e(B
+\e$B@>2$=t8l$J$I$rI=8=$9$k$?$a$N\e(B <dref>MIME charset</dref> \e$B$N#1$D!#\e(B
<p>
<a node="ISO 2022">ISO 2022</a> \e$B$K4p$$$F!"\e(B<a node="ASCII">ASCII</a> \e$B$K\e(B
<a node="ISO 8859-1">ISO 8859-1</a> \e$B$r\e(B <a node="8bit">8bit</a> \e$B$G\e(B<a
node="Code extension">\e$BId9f3HD%\e(B</a>\e$B$7$F$$$k!#\e(B
<p>
-<a node="RFC 1521">RFC 1521</a> \e$B$GDj5A$5$l$F$$$k!#\e(B
+<dref>RFC 2046</dref> \e$B$GDj5A$5$l$F$$$k!#\e(B
<h3> ISO 8859-2
<a node="ISO 8859-2">ISO 8859-2</a> \e$B$r\e(B <a node="8bit">8bit</a> \e$B$G\e(B<a
node="Code extension">\e$BId9f3HD%\e(B</a>\e$B$7$F$$$k!#\e(B
<p>
-<a node="RFC 1521">RFC 1521</a> \e$B$GDj5A$5$l$F$$$k!#\e(B
+<dref>RFC 2046</dref> \e$B$GDj5A$5$l$F$$$k!#\e(B
<h3> ISO 8859-3
<a node="ISO 8859-5">ISO 8859-5</a> \e$B$r\e(B <a node="8bit">8bit</a> \e$B$G\e(B<a
node="Code extension">\e$BId9f3HD%\e(B</a>\e$B$7$F$$$k!#\e(B
<p>
-<a node="RFC 1521">RFC 1521</a> \e$B$GDj5A$5$l$F$$$k!#\e(B
+<dref>RFC 2046</dref> \e$B$GDj5A$5$l$F$$$k!#\e(B
<h3> ISO 8859-6
<node> message/rfc822
<p>
\e$BEAE}E*$J\e(B <dref>RFC 934</dref> \e$B$KBe$o$j!"\e(B<dref>RFC 822</dref> \e$B$GDj5A$5\e(B
-\e$B$l$k\e(B mail \e$B$rI=$9\e(B MIME \e$B$N7A<0!#\e(B<dref>RFC 1521</dref> \e$B$GDj5A$5$l$F$$$k!#\e(B
+\e$B$l$k\e(B mail \e$B$rI=$9\e(B MIME \e$B$N7A<0!#\e(B<dref>RFC 2046</dref> \e$B$GDj5A$5$l$F$$$k!#\e(B
<h3> method
Internet \e$B$N\e(B mail \e$B$d\e(B news \e$B$G\e(B <a node="us-ascii">us-ascii plain text</a>
\e$B0J30$NJ8;z$r;H$&$?$a$N\e(B <dref>RFC 822</dref> \e$B$KBP$9$k3HD%!#\e(B
<p>
-<a node="RFC 1521">RFC 1521</a> \e$B$H\e(B <a node="encoded-word">RFC 1522</a>
-\e$B$GDj5A$5$l$F$$$k!#\e(B
+RFC 2045 \e$B$OKAF,$G<!$N$h$&$K=R$Y$F$$$k!'\e(B
+<p>
+STD 11, RFC 822 \e$B$O!"\e(BUS-ASCII message header \e$B$K4X$7$FHs>o$K>\:Y$K5,Dj$7\e(B
+\e$B$?\e(B message \e$BI=8=\e(B protocol \e$B$rDj5A$7$F$$$k!#$7$+$7!"$=$l$OC1$K\e(B flat \e$B$J\e(B
+US-ASCII text \e$B$N$_$KN1$^$j!"\e(Bmessage \e$B$NFbMF$d\e(B message body \e$B$K4X$9$k5,Dj\e(B
+\e$B$O$J$5$l$F$$$J$$!#\e(BMultipurpose Internet Mail Extensions, \e$B$"$k$$$O\e(B MIME
+\e$B$HAm>N$5$l$k!"$3$N0lO"$NJ8=q$O!"0J2<$N;v$r2DG=$H$9$k$?$a$K\e(B message \e$B$N\e(B
+\e$B7A<0$r:FDj5A$7$?!'\e(B
+
+<ol>
+<li>\e$BJ8=q\e(B message body \e$B$K$*$1$k\e(B US-ASCII \e$B0J30$NJ8;z=89g\e(B
+</li>
+<li>\e$BHsJ8=q\e(B message body
+</li>
+<li>\e$BJ#?t$NItJ,$+$i$J$k\e(B message body
+</li>
+<li>US-ASCII \e$B0J30$NJ8;z=89g$+$i$J$kJ8=q\e(B header \e$B>pJs\e(B
+</ol>
+
<p>
-<cf node="What is MIME?">
+<dref>RFC 2045</dref>, <dref>RFC 2046</dref>, <a
+node="encoded-word">RFC 2047</a>, <dref>RFC 2048</dref>, <dref>RFC
+2049</dref> \e$B$GDj5A$5$l$F$$$k!#\e(B
<h3> MIME charset
node="encoded-word">encoded-word</a> \e$B$N\e(B charset parameter \e$B$GMQ$$$i$l$k\e(B
\e$BEPO?$5$l$?\e(B<a node="Coded character set">\e$BId9f2=J8;z=89g\e(B</a>\e$B!#\e(B
<p>
-<a node="RFC 1521">RFC 1521</a> \e$B$GDj5A$5$l$F$$$k!#\e(B
+<dref>RFC 2045</dref> \e$B$GDj5A$5$l$F$$$k!#\e(B
<p>
<a node="iso-2022-jp">iso-2022-jp</a> \e$B$d\e(B <a node="euc-kr">euc-kr</a>
\e$B$O$=$N#1$D!#!J$3$3$G$O!"\e(BMIME charset \e$B$O\e(B<a node="Character set">\e$BJ8;z=8\e(B
<h3> Multipart
<node> multipart
<p>
-\e$B#1$D$N\e(B <dref>message</dref> \e$B$KJ#?t$N\e(B part \e$B$rF~$l$k$?$a$N\e(B
-<dref>MIME</dref> \e$B$K$*$1$kI=8=K!!"$b$7$/$O!"J#?t$N\e(B part \e$B$+$i$J$k\e(B
-message \e$B$r;X$9!#\e(B<cf node="content-type">
+\e$B#1$D$N\e(B <dref>message</dref> \e$B$KJ#?t$N\e(B <dref>entity</dref> \e$B$rF~$l$k$?$a\e(B
+\e$B$N\e(B <dref>MIME</dref> \e$B$K$*$1$k\e(B <dref>media type</dref> \e$B$N#1$D!"$b$7$/$O!"\e(B
+\e$BJ#?t$N\e(B entity \e$B$+$i$J$k\e(B message \e$B$r;X$9!#\e(B
<p>
\e$B8=:_!"Dj5A$5$l$F$$$k\e(B <concept>multipart</concept> \e$B$H$7$F$O!"\e(B<dref>RFC
-1521</dref> \e$B$GDj5A$5$l$?\e(B
+2046</dref> \e$B$GDj5A$5$l$?\e(B
<ul>
<li><dref>multipart/mixed</dref>
<dref>multipart</dref> \e$B$N#1$D$G!"F1$8>pJs$r0[$C$?7A<0$GF~$l!"A*Br;h$H\e(B
\e$B$9$k>l9g$KMQ$$$k!#\e(B
<p>
-<cf node="RFC 1521">
+<cf node="RFC 2046">
<h3> multipart/digest
<node> multipart/digest
<p>
-<dref>multipart</dref> \e$B$N#1$D$G!"4^$^$l$k\e(B part \e$B$N\e(B default \e$B$N\e(B
-<dref>content-type</dref> \e$B$,\e(B <dref>multipart/mixed</dref> \e$B$J$I$N>l9g\e(B
-<dref>text/plain</dref> \e$B$G$"$k$N$KBP$7!"\e(B
+<dref>multipart</dref> \e$B$N#1$D$G!"4^$^$l$k\e(B <dref>entity</dref> \e$B$N\e(B
+default \e$B$N\e(B<dref>media type</dref> \e$B$,\e(B <dref>multipart/mixed</dref> \e$B$J$I\e(B
+\e$B$N>l9g\e(B <dref>text/plain</dref> \e$B$G$"$k$N$KBP$7!"\e(B
<concept>multipart/digest</concept>\e$B$G$O\e(B <dref>message/rfc822</dref> \e$B$,\e(B
\e$BMQ$$$i$l$kE@$,0[$J$k!#\e(B
<p>
\e$B$3$l$OEAE}E*$J\e(B <dref>RFC 1153</dref> \e$B$K4p$E$/\e(B
<dref>encapsulation</dref> \e$B$KBe$o$k$b$N$G$"$k!#\e(B
<p>
-<cf node="RFC 1521">
+<cf node="RFC 2046">
<h3> multipart/encrypted
<dref>multipart</dref> \e$B$N<gMW$J\e(B subtype \e$B$G!"J#?t$N\e(B part \e$B$r=g=xIU$1$FJB\e(B
\e$B$Y$k>l9g$KMQ$$$k!#\e(B
<p>
-<cf node="RFC 1521">
+<cf node="RFC 2046">
<h3> multipart/parallel
<dref>multipart</dref> \e$B$N#1$D$G!"J#?t$N\e(B part \e$B$r=g=xIU$1$:$K4^$a$k>l9g\e(B
\e$B$KMQ$$$k!#\e(B
<p>
-<cf node="RFC 1521">
+<cf node="RFC 2046">
<h3> multipart/signed
<h3> Quoted-Printable
<node> Quoted-Printable
<p>
-<a node="RFC 1521">RFC 1521</a> \e$B$GDj5A$5$l$F$$$k\e(B <a
-node="MIME">MIME</a> \e$B$K$*$1$k\e(B <a node="binary">binary data</a> \e$B$N\e(B
-network \e$B$G$NJQ49K!$N#1$D!#\e(B
+<dref>RFC 2045</dref> \e$B$GDj5A$5$l$F$$$k\e(B <dref>MIME</dref> \e$B$K$*$1$k\e(B
+<dref>binary data</dref> \e$B$N\e(B network \e$B$G$NJQ49K!$N#1$D!#\e(B
<p>
`=' \e$B$d@)8fJ8;z$d\e(B 128 \e$B0J>e$NJ8;z$J$I$O\e(B `=AF' \e$B$N$h$&$K\e(B `=' \e$B$N8e$KB3$/\e(B 16
-\e$B?J?t$GI=8=$9$k!#$3$N$?$a!"\e(B<a node="ASCII">ASCII</a> \e$BJ8;zCf?4$N\e(B data \e$B$G\e(B
-\e$B$O\e(B <a node="Base64">Base64</a> \e$B$KHf$Y$k$H2DFI@-$,9b$/$J$k2DG=@-$,$"$k!#\e(B
+\e$B?J?t$GI=8=$9$k!#$3$N$?$a!"\e(B<dref>ASCII</dref> \e$BJ8;zCf?4$N\e(B data \e$B$G$O\e(B
+<dref>Base64</dref> \e$B$KHf$Y$k$H2DFI@-$,9b$/$J$k2DG=@-$,$"$k!#\e(B
<p>
\e$B$7$+$7$J$,$i!"\e(BEBCDIC \e$B$K$OB8:_$7$J$$J8;z$rMxMQ$9$k>l9g!"\e(BEBCDIC \e$B$rMxMQ$7\e(B
\e$B$F$$$k\e(B network \e$B$G$O0BA4$KE>Aw$9$k$3$H$,$G$-$:!"\e(BBase64 \e$B$KHf$Y$F0BA4@-$O\e(B
date="April 1990">
-<h3> RFC 1521 <node> RFC 1521
-<p>
-<a node="MIME">MIME</a> \e$B$rDj5A$7$F$$$k\e(B RFC \e$B$N#1$D!#\e(B
-
-<rfc number="1521" type="Standards Track" author="N. Borenstein and
- N. Freed" title="MIME (Multipurpose Internet Mail
- Extensions) Part One: Mechanisms for Specifying and
- Describing the Format of Internet Message Bodies"
- date="September 1993" obsolete="1341">
-
-(<a node="encoded-word">RFC 1522</a>)
-
-
<h3> RFC 1557
<node> RFC 1557
<p>
date="March 1996">
+<h3> RFC 2045
+<node> RFC 2045
+<p>
+<rfc number="2045" type="Standards Track" author="N. Freed and
+ N. Borenstein" title="Multipurpose Internet Mail
+ Extensions (MIME) Part One: Format of Internet Message
+ Bodies" date="November 1996" obsolete="1521, 1522,
+ 1590">
+
+
+<h3> RFC 2046
+<node> RFC 2046
+<p>
+<rfc number="2046" type="Standards Track" author="N. Freed and
+ N. Borenstein" title="Multipurpose Internet Mail
+ Extensions (MIME) Part Two: Media Types"
+ date="November 1996" obsolete="1521, 1522, 1590">
+
+
+<h3> RFC 2048
+<node> RFC 2048
+<p>
+<rfc number="2048" type="Standards Track" author="N. Freed, J. Klensin
+ and J. Postel" title="Multipurpose Internet Mail
+ Extensions (MIME) Part Four: Registration Procedures"
+ date="November 1996" obsolete="1521, 1522, 1590">
+
+
+<h3> RFC 2049
+<node> RFC 2049
+<p>
+<rfc number="2049" type="Standards Track" author="N. Freed and
+ N. Borenstein" title="Multipurpose Internet Mail
+ Extensions (MIME) Part Five: Conformance Criteria and
+ Examples" date="November 1996" obsolete="1521, 1522,
+ 1590">
+
+
<h3> plain text
<node> plain text
<p>
<h3> text/enriched
<node> text/enriched
<p>
-<a node="RFC 1521">RFC 1521</a> \e$B$GDj5A$5$l$?\e(B
-<concept>text/richtext</concept> \e$B$KBe$o$C$F!"=qBN$dAHHG$K4X$9$k>pJs$r\e(B
-\e$B;}$C$?\e(B text\e$B$rI=8=$9$k$?$a$N\e(B <dref>content-type</dref>.
+RFC 1521 \e$B$GDj5A$5$l$?\e(B <concept>text/richtext</concept> \e$B$KBe$o$C$F!"=q\e(B
+\e$BBN$dAHHG$K4X$9$k>pJs$r;}$C$?\e(B text\e$B$rI=8=$9$k$?$a$N\e(B <dref>media
+type</dref>.
<rfc name="text/enriched" number="1896" author="P. Resnick and
A. Walker" title="The text/enriched MIME Content-type"
<h3> text/plain
<node> text/plain
<p>
-<dref>RFC 1521</dref> \e$B$GDj5A$5$l$?!"\e(B<dref>plain text</dref> \e$B$rI=8=$9$k\e(B
-\e$B$?$a$N\e(B <dref>content-type</dref>.
+<dref>RFC 2046</dref> \e$B$GDj5A$5$l$?!"\e(B<dref>plain text</dref> \e$B$rI=8=$9$k\e(B
+\e$B$?$a$N\e(B <dref>media type</dref>.
<p>
\e$BHs\e(B MIME message \e$B$J$I$N\e(B content-type \e$B$,Dj5A$5$l$J$$\e(B part \e$B$O\e(B <dref>MIME
charset</dref> \e$B$,\e(B <dref>us-ascii</dref> \e$B$G$"$k\e(B
@menu
-* What is MIME?:: \e$B$H$3$m$G!"\e(BMIME \e$B$C$F$$$C$?$$2?!)\e(B
-* How is MIME?:: MIME \e$B$G$I$s$J$3$H=PMh$k$N!)\e(B
* Glossary:: \e$BMQ8l\e(B
@end menu
-@node What is MIME?, How is MIME?, Introduction, Introduction
-@section \e$B$H$3$m$G!"\e(BMIME \e$B$C$F$$$C$?$$2?!)\e(B
-
-@cindex{MIME}@strong{MIME} \e$B$H$O\e(B @cindex{Multipurpose Internet Mail
-Extensions}@strong{Multipurpose Internet Mail Extensions} \e$B$NN,$G!"=>Mh$N!"\e(B
-\e$B4pK\E*$K\e(B us-ascii (@ref{us-ascii}) \e$B$N\e(B plain text (@ref{plain text}) \e$B$G$"$C\e(B
-\e$B$?\e(B Internet Mail/News \e$B$KBP$9$k3HD%$K$J$C$F$$$^$9!#\e(B@refill
-
-MIME \e$B$K$O!"\e(BRFC 1521 (@ref{RFC 1521}) \e$B$G5,Dj$5$l$F$$$kB?L\E*\e(Bmessage \e$B$NB&\e(B
-\e$BLL$H!"\e(BRFC 1522 (@ref{encoded-word}) \e$B$G5,Dj$5$l$F$$$k\e(Bmessage header \e$B$K$*\e(B
-\e$B$1$kHs\e(B ASCII \e$BJ8;z$NI=8=K!$N$h$&$J!"B?8@8l2=$NB&LL$,$"$j$^$9!#\e(B
-
-
-@node How is MIME?, Glossary, What is MIME?, Introduction
-@section MIME \e$B$G$I$s$J$3$H=PMh$k$N!)\e(B
-
-\e$B$^$:!"B?L\E*\e(B message \e$B$NB&LL$r9M$($k$H!"=>Mh$N\e(B Internet Mail/News \e$B$,4pK\\e(B
-\e$BE*$K\e(B us-ascii (@ref{us-ascii}) \e$B$N\e(B plain text (@ref{plain text}) \e$B$7$+I=8=\e(B
-\e$B$G$-$J$+$C$?$N$KBP$7$F!"3($d2;@<$dF02h$J$I$NMM!9$J\e(B data \e$B$rI=8=$9$k$3$H$,\e(B
-\e$B$G$-$^$9!#\e(B@refill
-
-\e$B$^$?!"LLGr$$$3$H$K!"\e(Bftp (@ref{FTP}) \e$B$d\e(B ftp mail \e$B$r$7$?$j!"\e(Bfile \e$B$r<h$j=P\e(B
-\e$B$7$?$j!"\e(Bpatch \e$B$rEv$F$?$j!"$H$$$C$?!"!X<jB3$-!Y$rAw$k$3$H$,$G$-$^$9!#\e(B
-
-\e$B!t\e(B \e$B$b$C$H$b!"$3$&$$$&$N$O!"$"$k0UL#$G$O4m81$@$C$?$j$9$k$N$G$9$,!#\e(B@refill
-
-\e$B$3$&$7$?\e(B message \e$B$O!"FbMF$N<oN`$r\e(B
-@cindex{Content-Type}@strong{Content-Type} (@ref{Content-Type field}) \e$B$H\e(B
-\e$B$$$&\e(B field \e$B$K=q$$$?\e(B message \e$B$N7?$G;XDj$7$^$9!#$9$k$H!"<u$1<j$O3F\e(B
-content-type (@ref{content-type}) \e$B$KBP1~$7$?=hM}$N<oN`$r@_Dj$7$F$*$$$F!"\e(B
-message \e$B$r!XFI$`!Y$@$1$G!"3($dF02h$r8+$?$j!"2;$rLD$i$7$?$j!"\e(Bftp \e$B$G\e(B file
-\e$B$r<h$C$?$j!"\e(Bfile\e$B$r<h$j=P$7$?$j$G$-$^$9!#\e(B@refill
-
-\e$B$^$?!"$"$k\e(B message \e$B$KJ#?t$N\e(B content-type \e$B$,B8:_$9$k\e(B
-@cindex{Multipart}@strong{Multipart} (@ref{multipart}) \e$B$N\e(B message \e$B$H$$$&\e(B
-\e$B$N$b2DG=$G!"0l$D$N\e(B message \e$B$NCf$K!"3($H2;$HJ8>O$rF~$l$?$j$H$$$C$?$h$&$J\e(B
-\e$B$3$H$,$G$-$^$9!#\e(B@refill
-
-MIME \e$B$K$O$3$N$h$&$J!X@k8@!Y$N;WA[$,$"$k$h$&$K;W$o$l$^$9!#$D$^$j!"\e(B
-us-ascii (@ref{us-ascii}) \e$B$r!V%"%k%U%!%Y%C%H!W$H$9$k\e(B MIME \e$B$H$$$&\e(B message
-\e$B5-=R8@8l$G!"$$$m$$$m$J$b$N$r5-=R$7$F$$$3$&$H$$$&$3$H$G$9!#$3$l$O\e(B RFC
-1522 (@ref{encoded-word}) \e$B$G5,Dj$5$l$?\e(B encoded-word \e$B$G$b$$$($k$H;W$$$^$9!#\e(B
-
-\e$B$=$7$F!"<u$1<j$O!"M}2r$G$-$J$$$b$N$OL5;k$9$k$,!"$=$N7k2L!"\e(Bdata \e$B$r2u$9$3\e(B
-\e$B$H$O$7$J$$$H$$$&$b$N$,$"$j$^$9!#\e(B@refill
-
-\e$BNc$($P!"\e(BASCII (@ref{ASCII}) \e$B$7$+I=<($G$-$J$$4D6-$G\e(B JIS X0208 (@ref{JIS
-X0208}) \e$B$H\e(B ISO 8859-1 (@ref{ISO 8859-1}) \e$B$,:.$8$C$?%F%-%9%H$r$b$i$C$?$i\e(B
-\e$B:$$kLu$G$9$,!"$=$&$$$&;~$@$1B?8@8lC<Kv$r3+$/$H$$$&$h$&$J5;$,;H$($^$9!#\e(B
-
-\e$B$b$A$m$s!"\e(BMULE (@ref{MULE}) \e$B$N$h$&$JB?8@8l4D6-$K$*$$$F$b\e(B MUA (@ref{MUA})
-\e$B$KBP$7$FL@<(E*$K\e(B MIME charset (@ref{MIME charset}) \e$B$r<($9$3$H$OM-1W$G$7$g\e(B
-\e$B$&!#\e(B
-
-
-@node Glossary, , How is MIME?, Introduction
+@node Glossary, , Introduction, Introduction
@section \e$BMQ8l\e(B
tm \e$B$G;H$o$l$F$$$kMQ8l$K$D$$$F2r@b$7$^$9!#\e(B
* Coded character set:: Coded character set\e$B!JId9f2=J8;z=89g!K\e(B, Character code\e$B!JJ8;zId9f!K\e(B
* Code extension:: Code extension\e$B!JId9f3HD%!K\e(B
* Content-Disposition:: Content-Disposition field
-* content-type::
+* media type::
* Content-Type field::
* Emacs::
* encoded-word::
* RFC 934::
* RFC 1036::
* RFC 1153::
-* RFC 1521:: RFC 1521
* RFC 1557::
* RFC 1922::
+* RFC 2045::
+* RFC 2046::
+* RFC 2048::
+* RFC 2049::
* plain text::
* Security multipart::
* text/enriched::
@node Base64, binary, ASCII, Glossary
@subsection Base64
-RFC 1521 (@ref{RFC 1521}) \e$B$GDj5A$5$l$F$$$k\e(B MIME (@ref{MIME}) \e$B$K$*$1$k\e(B
+RFC 2045 (@ref{RFC 2045}) \e$B$GDj5A$5$l$F$$$k\e(B MIME (@ref{MIME}) \e$B$K$*$1$k\e(B
binary data (@ref{binary}) \e$B$N\e(B network \e$B$G$NJQ49K!$N#1$D!#\e(B@refill
\e$B!X\e(B64 \e$B?J?t!Y$H$$$&0UL#$G!"\e(B3 byte \e$B$N\e(B data \e$B$r\e(B 0 \e$B$+$i\e(B 63 \e$B$N?t$rI=$9\e(B ASCII
\e$B$a$KMQ$$$k<jK!!#\e(BISO 2022 (@ref{ISO 2022}) \e$B$O$=$N#1$D!#\e(B
-@node Content-Disposition, content-type, Code extension, Glossary
+@node Content-Disposition, media type, Code extension, Glossary
@subsection Content-Disposition field
Content \e$B$NI=<($N;EJ}$d\e(B file \e$BL>$rI=8=$9$k$?$a$N\e(B field. MIME (@ref{MIME})
-@node content-type, Content-Type field, Content-Disposition, Glossary
-@subsection content-type
+@node media type, Content-Type field, Content-Disposition, Glossary
+@subsection media type
-MIME (@ref{MIME}) \e$B$K$*$1$k\e(B part (@ref{part}) \e$B$N<oN`!#\e(B
+MIME (@ref{MIME}) \e$B$K$*$1$k\e(B entity (@ref{entity}) \e$B$N<oN`!#\e(B
@cindex{type}@strong{type} \e$B$H\e(B @cindex{subtype}@strong{subtype} \e$B$+$i$J$k!#\e(B
-RFC 1521 (@ref{RFC 1521}) \e$B$GDj5A$5$l$F$$$k!#\e(B@refill
+RFC 2046 (@ref{RFC 2046}) \e$B$GDj5A$5$l$F$$$k!#\e(B@refill
+
+type \e$B$OI8=`$G$O\e(B
+
+@itemize @bullet
+@item
+@cindex{text}@strong{text}
+@item
+@cindex{image}@strong{image}
+@item
+@cindex{audio}@strong{audio}
+@item
+@cindex{video}@strong{video}
+@item
+@cindex{application}@strong{application}
+@item
+@cindex{multipart}@strong{multipart} (@ref{multipart})
+@item
+@cindex{message}@strong{message}
+@end itemize
-type \e$B$OI8=`$G$O\e(B @cindex{application}@strong{application},
-@cindex{audio}@strong{audio}, @cindex{image}@strong{image},
-@cindex{message}@strong{message}, @cindex{multipart}@strong{multipart}
-(@ref{multipart}), @cindex{text}@strong{text},
-@cindex{video}@strong{video} \e$B$,Dj5A$5$l!"$=$l$>$l$K$O\e(B
-application/octet-stream, audio/basic, image/jpeg, multipart/mixed
-(@ref{multipart/mixed}), text/plain (@ref{text/plain}), video/mpeg \e$B$J$I\e(B
-\e$B$N$5$^$6$^$J\e(B subtype \e$B$,Dj5A$5$l$F$$$k!#\e(B
+@noindent
+\e$B$,Dj5A$5$l!"$=$l$>$l$K$O\e(B application/octet-stream, audio/basic,
+image/jpeg, multipart/mixed (@ref{multipart/mixed}), text/plain
+(@ref{text/plain}), video/mpeg \e$B$J$I$N$5$^$6$^$J\e(B subtype \e$B$,Dj5A$5$l$F$$$k!#\e(B
@noindent
@strong{[\e$BCm0U\e(B]}
@end quotation
-content-type \e$B$O!"\e(BRFC 1521 \e$B$GDj5A$5$l$F$$$k$b$N$K2C$($F!"EPO?$9$k$3$H$b$G\e(B
-\e$B$-$k!#8=:_!"EPO?$5$l$F$$$k$b$N$O\e(B MEDIA TYPES
+media type \e$B$O!"\e(BRFC 2046 \e$B$GDj5A$5$l$F$$$k$b$N$K2C$($F!"EPO?$9$k$3$H$b$G$-\e(B
+\e$B$k!#8=:_!"EPO?$5$l$F$$$k$b$N$O\e(B MEDIA TYPES
(ftp://ftp.isi.edu/in-notes/iana/assignments/media-types) \e$B$G;2>H$G$-$k!#\e(B
\e$B$^$?!"\e(Btype \e$B$b$7$/$O\e(B subtype \e$B$K!"A0$K\e(B `x-' \e$B$rIU$1$?\e(B
-@node Content-Type field, Emacs, content-type, Glossary
+@node Content-Type field, Emacs, media type, Glossary
@subsection Content-Type field
-content-type (@ref{content-type}) \e$B$d\e(B MIME charset (@ref{MIME charset})
-\e$B$J$I$N\e(B part \e$B$K4X$9$k>pJs$rI=8=$9$k$?$a$N\e(B field. RFC 1521 (@ref{RFC
-1521}) \e$B$GDj5A$5$l$F$$$k!#\e(B
+media type (@ref{media type}) \e$B$d\e(B MIME charset (@ref{MIME charset}) \e$B$J$I\e(B
+\e$B$N\e(B part \e$B$K4X$9$k>pJs$rI=8=$9$k$?$a$N\e(B field. RFC 2045 (@ref{RFC 2045}) \e$B$G\e(B
+\e$BDj5A$5$l$F$$$k!#\e(B
@noindent
@strong{[Memo]}
@quotation
\e$BNr;KE*$K$O\e(B RFC 1049 \e$B$G\e(B Content-Type field \e$B$,Ds0F$5$l$F$$$k!#C"$7!"$3$3$G\e(B
-\e$B$O\e(B type \e$B$H\e(B subtype \e$B$N6hJL$O$J$$!#$7$+$7!"J8K!E*$K$O\e(B RFC 1521 parser\e$B$O\e(B
-RFC 1049 \e$B$K4p$E$/\e(B message \e$B$rL$CN$N\e(B content-type \e$B$r;}$C$?\e(B message \e$B$H$7$F\e(B
+\e$B$O\e(B type \e$B$H\e(B subtype \e$B$N6hJL$O$J$$!#$7$+$7!"J8K!E*$K$O\e(B MIME parser \e$B$O\e(B RFC
+1049 \e$B$K4p$E$/\e(B message \e$B$rL$CN$N\e(B content-type \e$B$r;}$C$?\e(B message \e$B$H$7$F\e(B
parse \e$B$G$-$k$@$m$&!#\e(B
@end quotation
@subsection encoded-word
header \e$B$K$*$1$kHs\e(B ASCII (@ref{ASCII}) \e$BJ8;z$NI=8=!#\e(B@cindex{RFC
-1522}@strong{RFC 1522} \e$B$GDj5A$5$l$F$$$k!#\e(B@refill
+2047}@strong{RFC 2047} \e$B$GDj5A$5$l$F$$$k!#\e(B@refill
-@cindex{Standards Track}@cindex{RFC 1522}
+@cindex{Standards Track}@cindex{RFC 2047}
@noindent
-[RFC 1522]
+[RFC 2047]
@quotation
-K. Moore, ``MIME (Multipurpose Internet Mail Extensions) Part Two:
-Message Header Extensions for Non-ASCII Text'', September 1993,
-Standards Track.
+K. Moore, ``MIME (Multipurpose Internet Mail Extensions) Part Three:
+Message Header Extensions for Non-ASCII Text'', November 1996, Standards
+Track (obsolete RFC 1521,1522,1590).
@end quotation
(@ref{ISO 8859-1}) \e$B$r\e(B 8bit (@ref{8bit}) \e$B$GId9f3HD%\e(B (@ref{Code
extension})\e$B$7$F$$$k!#\e(B@refill
-RFC 1521 (@ref{RFC 1521}) \e$B$GDj5A$5$l$F$$$k!#\e(B
+RFC 2046 (@ref{RFC 2046}) \e$B$GDj5A$5$l$F$$$k!#\e(B
@node ISO 8859-2, iso-8859-2, iso-8859-1, Glossary
(@ref{ISO 8859-2}) \e$B$r\e(B 8bit (@ref{8bit}) \e$B$GId9f3HD%\e(B (@ref{Code
extension})\e$B$7$F$$$k!#\e(B@refill
-RFC 1521 (@ref{RFC 1521}) \e$B$GDj5A$5$l$F$$$k!#\e(B
+RFC 2046 (@ref{RFC 2046}) \e$B$GDj5A$5$l$F$$$k!#\e(B
@node ISO 8859-3, ISO 8859-4, iso-8859-2, Glossary
(@ref{ISO 8859-5}) \e$B$r\e(B 8bit (@ref{8bit}) \e$B$GId9f3HD%\e(B (@ref{Code
extension})\e$B$7$F$$$k!#\e(B@refill
-RFC 1521 (@ref{RFC 1521}) \e$B$GDj5A$5$l$F$$$k!#\e(B
+RFC 2046 (@ref{RFC 2046}) \e$B$GDj5A$5$l$F$$$k!#\e(B
@node ISO 8859-6, ISO 8859-7, iso-8859-5, Glossary
@subsection message/rfc822
\e$BEAE}E*$J\e(B RFC 934 (@ref{RFC 934}) \e$B$KBe$o$j!"\e(BRFC 822 (@ref{RFC 822}) \e$B$GDj\e(B
-\e$B5A$5$l$k\e(B mail \e$B$rI=$9\e(B MIME \e$B$N7A<0!#\e(BRFC 1521 (@ref{RFC 1521}) \e$B$GDj5A$5$l$F\e(B
+\e$B5A$5$l$k\e(B mail \e$B$rI=$9\e(B MIME \e$B$N7A<0!#\e(BRFC 2046 (@ref{RFC 2046}) \e$B$GDj5A$5$l$F\e(B
\e$B$$$k!#\e(B
plain text (@ref{us-ascii}) \e$B0J30$NJ8;z$r;H$&$?$a$N\e(B RFC 822 (@ref{RFC
822}) \e$B$KBP$9$k3HD%!#\e(B@refill
-RFC 1521 (@ref{RFC 1521}) \e$B$H\e(B RFC 1522 (@ref{encoded-word}) \e$B$GDj5A$5$l$F\e(B
-\e$B$$$k!#\e(B@refill
+RFC 2045 \e$B$OKAF,$G<!$N$h$&$K=R$Y$F$$$k!'\e(B@refill
-(cf. @ref{What is MIME?})
+STD 11, RFC 822 \e$B$O!"\e(BUS-ASCII message header \e$B$K4X$7$FHs>o$K>\:Y$K5,Dj$7\e(B
+\e$B$?\e(B message \e$BI=8=\e(B protocol \e$B$rDj5A$7$F$$$k!#$7$+$7!"$=$l$OC1$K\e(B flat \e$B$J\e(B
+US-ASCII text \e$B$N$_$KN1$^$j!"\e(Bmessage \e$B$NFbMF$d\e(B message body \e$B$K4X$9$k5,Dj\e(B
+\e$B$O$J$5$l$F$$$J$$!#\e(BMultipurpose Internet Mail Extensions, \e$B$"$k$$$O\e(B MIME
+\e$B$HAm>N$5$l$k!"$3$N0lO"$NJ8=q$O!"0J2<$N;v$r2DG=$H$9$k$?$a$K\e(B message \e$B$N\e(B
+\e$B7A<0$r:FDj5A$7$?!'\e(B
+@enumerate
+@item
+\e$BJ8=q\e(B message body \e$B$K$*$1$k\e(B US-ASCII \e$B0J30$NJ8;z=89g\e(B
+@item
+\e$BHsJ8=q\e(B message body
+@item
+\e$BJ#?t$NItJ,$+$i$J$k\e(B message body
+@item
+US-ASCII \e$B0J30$NJ8;z=89g$+$i$J$kJ8=q\e(B header \e$B>pJs\e(B
+@end enumerate
+
+
+RFC 2045 (@ref{RFC 2045}), RFC 2046 (@ref{RFC 2046}), RFC 2047
+(@ref{encoded-word}), RFC 2048 (@ref{RFC 2048}), RFC 2049 (@ref{RFC
+2049}) \e$B$GDj5A$5$l$F$$$k!#\e(B
@node MIME charset, MTA, MIME, Glossary
(@ref{encoded-word}) \e$B$N\e(B charset parameter \e$B$GMQ$$$i$l$kEPO?$5$l$?Id9f2=J8\e(B
\e$B;z=89g\e(B (@ref{Coded character set})\e$B!#\e(B@refill
-RFC 1521 (@ref{RFC 1521}) \e$B$GDj5A$5$l$F$$$k!#\e(B@refill
+RFC 2045 (@ref{RFC 2045}) \e$B$GDj5A$5$l$F$$$k!#\e(B@refill
iso-2022-jp (@ref{iso-2022-jp}) \e$B$d\e(B euc-kr (@ref{euc-kr}) \e$B$O$=$N#1$D!#\e(B
\e$B!J$3$3$G$O!"\e(BMIME charset \e$B$OJ8;z=89g\e(B (@ref{Character set})\e$B$H6hJL$7$F>.J8\e(B
@node multipart, multipart/alternative, MULE, Glossary
@subsection Multipart
-\e$B#1$D$N\e(B message (@ref{message}) \e$B$KJ#?t$N\e(B part \e$B$rF~$l$k$?$a$N\e(B MIME
-(@ref{MIME}) \e$B$K$*$1$kI=8=K!!"$b$7$/$O!"J#?t$N\e(B part \e$B$+$i$J$k\e(B message \e$B$r;X\e(B
-\e$B$9!#\e(B(cf. @ref{content-type}) @refill
+\e$B#1$D$N\e(B message (@ref{message}) \e$B$KJ#?t$N\e(B entity (@ref{entity}) \e$B$rF~$l$k$?\e(B
+\e$B$a$N\e(B MIME (@ref{MIME}) \e$B$K$*$1$k\e(B media type (@ref{media type}) \e$B$N#1$D!"$b\e(B
+\e$B$7$/$O!"J#?t$N\e(B entity \e$B$+$i$J$k\e(B message \e$B$r;X$9!#\e(B@refill
\e$B8=:_!"Dj5A$5$l$F$$$k\e(B @cindex{multipart}@strong{multipart} \e$B$H$7$F$O!"\e(BRFC
-1521 (@ref{RFC 1521}) \e$B$GDj5A$5$l$?\e(B
+2046 (@ref{RFC 2046}) \e$B$GDj5A$5$l$?\e(B
@itemize @bullet
@item
multipart (@ref{multipart}) \e$B$N#1$D$G!"F1$8>pJs$r0[$C$?7A<0$GF~$l!"A*Br;h\e(B
\e$B$H$9$k>l9g$KMQ$$$k!#\e(B@refill
-(cf. @ref{RFC 1521})
+(cf. @ref{RFC 2046})
@node multipart/digest, multipart/encrypted, multipart/alternative, Glossary
@subsection multipart/digest
-multipart (@ref{multipart}) \e$B$N#1$D$G!"4^$^$l$k\e(B part \e$B$N\e(B default \e$B$N\e(B
-content-type (@ref{content-type}) \e$B$,\e(B multipart/mixed
+multipart (@ref{multipart}) \e$B$N#1$D$G!"4^$^$l$k\e(B entity (@ref{entity}) \e$B$N\e(B
+default \e$B$N\e(Bmedia type (@ref{media type}) \e$B$,\e(B multipart/mixed
(@ref{multipart/mixed}) \e$B$J$I$N>l9g\e(B text/plain (@ref{text/plain}) \e$B$G$"$k\e(B
\e$B$N$KBP$7!"\e(B@cindex{multipart/digest}@strong{multipart/digest}\e$B$G$O\e(B
message/rfc822 (@ref{message/rfc822}) \e$B$,MQ$$$i$l$kE@$,0[$J$k!#\e(B@refill
\e$B$3$l$OEAE}E*$J\e(B RFC 1153 (@ref{RFC 1153}) \e$B$K4p$E$/\e(B encapsulation
(@ref{encapsulation}) \e$B$KBe$o$k$b$N$G$"$k!#\e(B@refill
-(cf. @ref{RFC 1521})
+(cf. @ref{RFC 2046})
multipart (@ref{multipart}) \e$B$N<gMW$J\e(B subtype \e$B$G!"J#?t$N\e(B part \e$B$r=g=xIU$1\e(B
\e$B$FJB$Y$k>l9g$KMQ$$$k!#\e(B@refill
-(cf. @ref{RFC 1521})
+(cf. @ref{RFC 2046})
multipart (@ref{multipart}) \e$B$N#1$D$G!"J#?t$N\e(B part \e$B$r=g=xIU$1$:$K4^$a$k>l\e(B
\e$B9g$KMQ$$$k!#\e(B@refill
-(cf. @ref{RFC 1521})
+(cf. @ref{RFC 2046})
@node Quoted-Printable, RFC 821, PGP/MIME, Glossary
@subsection Quoted-Printable
-RFC 1521 (@ref{RFC 1521}) \e$B$GDj5A$5$l$F$$$k\e(B MIME (@ref{MIME}) \e$B$K$*$1$k\e(B
-binary data (@ref{binary}) \e$B$N\e(B network \e$B$G$NJQ49K!$N#1$D!#\e(B@refill
+RFC 2045 (@ref{RFC 2045}) \e$B$GDj5A$5$l$F$$$k\e(B MIME (@ref{MIME}) \e$B$K$*$1$k\e(B
+binary data (@ref{binary data}) \e$B$N\e(B network \e$B$G$NJQ49K!$N#1$D!#\e(B@refill
`=' \e$B$d@)8fJ8;z$d\e(B 128 \e$B0J>e$NJ8;z$J$I$O\e(B `=AF' \e$B$N$h$&$K\e(B `=' \e$B$N8e$KB3$/\e(B 16
\e$B?J?t$GI=8=$9$k!#$3$N$?$a!"\e(BASCII (@ref{ASCII}) \e$BJ8;zCf?4$N\e(B data \e$B$G$O\e(B
-@node RFC 1153, RFC 1521, RFC 1036, Glossary
+@node RFC 1153, RFC 1557, RFC 1036, Glossary
@subsection RFC 1153
\e$BJ#?t$N\e(B Internet mail (@ref{RFC 822}) \e$B$r\e(B
-@node RFC 1521, RFC 1557, RFC 1153, Glossary
-@subsection RFC 1521
-
-MIME (@ref{MIME}) \e$B$rDj5A$7$F$$$k\e(B RFC \e$B$N#1$D!#\e(B
-
-@cindex{Standards Track}@cindex{RFC 1521}
-@noindent
-[RFC 1521]
-@quotation
-N. Borenstein and N. Freed, ``MIME (Multipurpose Internet Mail
-Extensions) Part One: Mechanisms for Specifying and Describing the
-Format of Internet Message Bodies'', September 1993, Standards Track
-(obsolete RFC 1341).
-@end quotation
-
-
-(RFC 1522 (@ref{encoded-word}))
-
-
-@node RFC 1557, RFC 1922, RFC 1521, Glossary
+@node RFC 1557, RFC 1922, RFC 1153, Glossary
@subsection RFC 1557
euc-kr (@ref{euc-kr}) \e$B$H\e(B iso-2022-kr (@ref{iso-2022-kr}) \e$B$H$$$&4Z9q8l$N\e(B
-@node RFC 1922, plain text, RFC 1557, Glossary
+@node RFC 1922, RFC 2045, RFC 1557, Glossary
@subsection RFC 1922
iso-2022-cn (@ref{iso-2022-cn}), iso-2022-cn-ext
-@node plain text, Security multipart, RFC 1922, Glossary
+@node RFC 2045, RFC 2046, RFC 1922, Glossary
+@subsection RFC 2045
+
+@cindex{Standards Track}@cindex{RFC 2045}
+@noindent
+[RFC 2045]
+@quotation
+N. Freed and N. Borenstein, ``Multipurpose Internet Mail Extensions
+(MIME) Part One: Format of Internet Message Bodies'', November 1996,
+Standards Track (obsolete RFC 1521, 1522, 1590).
+@end quotation
+
+
+
+@node RFC 2046, RFC 2048, RFC 2045, Glossary
+@subsection RFC 2046
+
+@cindex{Standards Track}@cindex{RFC 2046}
+@noindent
+[RFC 2046]
+@quotation
+N. Freed and N. Borenstein, ``Multipurpose Internet Mail Extensions
+(MIME) Part Two: Media Types'', November 1996, Standards Track (obsolete
+RFC 1521, 1522, 1590).
+@end quotation
+
+
+
+@node RFC 2048, RFC 2049, RFC 2046, Glossary
+@subsection RFC 2048
+
+@cindex{Standards Track}@cindex{RFC 2048}
+@noindent
+[RFC 2048]
+@quotation
+N. Freed, J. Klensin and J. Postel, ``Multipurpose Internet Mail
+Extensions (MIME) Part Four: Registration Procedures'', November 1996,
+Standards Track (obsolete RFC 1521, 1522, 1590).
+@end quotation
+
+
+
+@node RFC 2049, plain text, RFC 2048, Glossary
+@subsection RFC 2049
+
+@cindex{Standards Track}@cindex{RFC 2049}
+@noindent
+[RFC 2049]
+@quotation
+N. Freed and N. Borenstein, ``Multipurpose Internet Mail Extensions
+(MIME) Part Five: Conformance Criteria and Examples'', November 1996,
+Standards Track (obsolete RFC 1521, 1522, 1590).
+@end quotation
+
+
+
+@node plain text, Security multipart, RFC 2049, Glossary
@subsection plain text
\e$B=qBN$dAHHG$K4X$9$k>pJs$r;}$?$J$$\e(B \e$BJ8;zId9f\e(B(@ref{Coded character set})\e$B$N$_\e(B
@node text/enriched, text/plain, Security multipart, Glossary
@subsection text/enriched
-RFC 1521 (@ref{RFC 1521}) \e$B$GDj5A$5$l$?\e(B
-@cindex{text/richtext}@strong{text/richtext} \e$B$KBe$o$C$F!"=qBN$dAHHG$K4X\e(B
-\e$B$9$k>pJs$r;}$C$?\e(B text\e$B$rI=8=$9$k$?$a$N\e(B content-type (@ref{content-type}).
+RFC 1521 \e$B$GDj5A$5$l$?\e(B @cindex{text/richtext}@strong{text/richtext} \e$B$KBe\e(B
+\e$B$o$C$F!"=qBN$dAHHG$K4X$9$k>pJs$r;}$C$?\e(B text\e$B$rI=8=$9$k$?$a$N\e(B media type
+(@ref{media type}).
@cindex{text/enriched}@cindex{RFC 1896}
@noindent
@node text/plain, tm-kernel, text/enriched, Glossary
@subsection text/plain
-RFC 1521 (@ref{RFC 1521}) \e$B$GDj5A$5$l$?!"\e(Bplain text (@ref{plain text}) \e$B$r\e(B
-\e$BI=8=$9$k$?$a$N\e(B content-type (@ref{content-type}).@refill
+RFC 2046 (@ref{RFC 2046}) \e$B$GDj5A$5$l$?!"\e(Bplain text (@ref{plain text}) \e$B$r\e(B
+\e$BI=8=$9$k$?$a$N\e(B media type (@ref{media type}).@refill
\e$BHs\e(B MIME message \e$B$J$I$N\e(B content-type \e$B$,Dj5A$5$l$J$$\e(B part \e$B$O\e(B MIME charset
(@ref{MIME charset}) \e$B$,\e(B us-ascii (@ref{us-ascii}) \e$B$G$"$k\e(B
--- /dev/null
+Info file: tm-view-en.info, -*-Text-*-
+produced by `texinfo-format-buffer'
+from file `tm-view-en.texi'
+using `texinfmt.el' version 2.32 of 19 November 1993.
+
+
+\1f
+File: tm-view-en.info, Node: Top, Next: Introduction, Prev: (dir), Up: (dir)
+
+tm-view 7.77 Reference Manual (English Version)
+***********************************************
+
+
+This file documents tm-view, a MIME Viewer for GNU Emacs.
+
+* Menu:
+
+* Introduction:: What is tm-view?
+* MIME display:: Structure of display in mime/viewer-mode
+* mime/viewer-mode:: Navigation in mime/viewer-mode
+* method:: Mechanism of decoding
+* Two buffers for an article:: raw-article-buffer and preview-buffer
+* API:: Functions to decode MIME message
+* Concept Index::
+* Function Index::
+* Variable Index::
+
+
+\1f
+File: tm-view-en.info, Node: Introduction, Next: MIME display, Prev: Top, Up: Top
+
+What is tm-view?
+****************
+
+The tm-view is a general MIME viewer running on GNU Emacs.
+
+tm-view provides the major-mode called `mime/viewer-mode' (*Note
+mime/viewer-mode::) to read MIME message for MUA. MUA (*Note
+(tm-en)MUA::) implementer can use it to add MIME function.
+
+tm-view is a user interface kernel to view and navigate MIME message.
+tm-view drives some programs to navigate each content-type
+(*Note (tm-en)content-type::)s, they are called
+*method* (*Note method::). tm-view calls some
+programs to display each contents and headers in preview buffer, they
+are called *filter* (*Note Two buffers for an article::). Method and
+filters are tm-view application program. They expand tm-view to treat
+various kinds of MIME types.
+
+
+
+\1f
+File: tm-view-en.info, Node: MIME display, Next: mime/viewer-mode, Prev: Introduction, Up: Top
+
+Structure of display in mime/viewer-mode
+****************************************
+
+In mime/viewer-mode (*Note mime/viewer-mode::), following are displayed
+for each parts:
+
+ [content-button]
+ (content-header)
+
+ (content-body)
+ (content-separator)
+
+You can change design or stop to display if you specify for each
+conditions, such as content-types.
+
+Example:
+
+ From: morioka@jaist.ac.jp (MORIOKA Tomohiko)
+ Subject: Re: Question
+ Newsgroups: zxr.message.mime
+ Date: 22 Oct 93 11:02:44
+ Mime-Version: 1.0
+ Organization: Japan Advanced Institute of Science and Technology,
+ Ishikawa, Japan
+
+ [1 (text/plain)]
+ How to compose MIME message in MIME-Edit mode.
+
+ Press `C-c C-x ?' then help message will be displayed:
+
+ C-c C-x C-t insert a text message.
+ C-c C-x TAB insert a (binary) file.
+ C-c C-x C-e insert a reference to external body.
+ C-c C-x C-v insert a voice message.
+ C-c C-x C-y insert a mail or news message.
+ C-c C-x RET insert a mail message.
+ C-c C-x C-s insert a signature file at end.
+ C-c C-x t insert a new MIME tag.
+ C-c C-x a enclose as multipart/alternative.
+ C-c C-x p enclose as multipart/parallel.
+ C-c C-x m enclose as multipart/mixed.
+ C-c C-x d enclose as multipart/digest.
+ C-c C-x s enclose as PGP signed.
+ C-c C-x e enclose as PGP encrypted.
+ C-c C-x C-k insert PGP public key.
+ C-c C-x C-p preview editing MIME message.
+ ...
+
+ So press `C-c C-x C-i' and specify file name you want to include.
+
+ MIME encoding for binary file is normally Base64.
+
+ [2 (image/gif)]
+
+ [3 (text/plain)]
+
+ In this way, it is finish a message attaching a picture.
+
+ ======================== A cup of Russian tea ========================
+ ============ * not by jam, not by marmalade, by honey * ============
+ ============ MORIOKA Tomohiko ============
+ =============== Internet E-mail: <morioka@jaist.ac.jp> ===============
+
+
+
+* Menu:
+
+* content-button::
+* content-header::
+* content-body::
+* content-separator::
+
+
+\1f
+File: tm-view-en.info, Node: content-button, Next: content-header, Prev: MIME display, Up: MIME display
+
+content-button
+==============
+
+content-subject displays abstract for the part. It is placed in top of
+the part.
+
+In default, it is displayed following design:
+
+ [1.3 test (text/plain)]
+
+
+First number field represents position of a content in the part. It is
+called *content-number*. It can be considered as the chapter number in
+the message.
+
+Second string part represents title. It is created by following:
+
+ 1. name paramater or x-name parameter in Content-Type field (*Note
+ (tm-en)Content-Type field::)
+ 2. Content-Description field (*Note (tm-en)Content-Description
+ field::) or Subject field
+ 3. filename of uuencode
+
+
+If they are not exists, space is displayed.
+
+Third parenthesis part represents content-type/subtype of the part. If
+it is non-MIME part, `nil' is displayed.
+
+Content-button is used like icon when content-header (*Note
+content-header::) and content-body (*Note content-body::) are hidden.
+For example:
+
+ [2 (image/gif)]
+
+if you press `v' key, GIF image is displayed.
+
+If mouse operations are available, you can press content-button by mouse
+button-2 (center button of 3 button-mouse) to play, similarly to press
+`v' key. (cf. *Note mime/viewer-mode::)
+
+By the way, it is annoying to display content-button if content-header
+is displayed. So tm-view provides a mechanism to specify conditions to
+display content-button.
+
+
+ -- Variable: mime-viewer/content-button-ignored-ctype-list
+
+ List of content-types.
+
+ If content-type of a part is a member of this list, its
+ content-button is not displayed.
+
+
+
+
+\1f
+File: tm-view-en.info, Node: content-header, Next: content-body, Prev: content-button, Up: MIME display
+
+content-header
+==============
+
+A content header displays the header portion of a part in the
+preview-buffer. However it is annoying to display header for every
+parts, so tm-view provides a mechanism to specify its condition.
+
+When the function `mime-viewer/header-visible-p' returns `t' for
+reversed-content-number of a part, content-header is displayed.
+
+This judge function returns `t' when a part is root or content-type of
+its parent is a member of the variable
+`mime-viewer/childrens-header-showing-Content-Type-list'.
+
+If you want to change this condition, please redefine it. Notice that
+it refers variable
+`mime-viewer/childrens-header-showing-Content-Type-list', however if you
+redefine function `mime-viewer/header-visible-p', it may not work. So
+if you want to redefine it, it should be refer variable
+`mime-viewer/childrens-header-showing-Content-Type-list'.
+
+When content-header is displayed, content-header are formated by the
+program called by
+*content-header-filter*.
+Content-header-filter is searched from variable
+`mime-viewer/content-header-filter-alist'. Its key is major-mode of the
+raw-article-buffer (*Note raw-article-buffer::). If not found, function
+`mime-viewer/default-content-header-filter' is called.
+
+
+ -- Variable: mime-viewer/childrens-header-showing-Content-Type-list
+
+ List of content-types. If content-type of parent of a part is a
+ member of this variable, its content-header is displayed. Default
+ value is `'("message/rfc822" "message/news")'.
+
+ This variable is referred by the function
+ `mime-viewer/header-visible-p'.
+
+
+
+ -- Function: mime-viewer/header-visible-p RCNUM CINFO &optional CTYPE
+
+ Returns `t' if a part which reversed-content-number is RCNUM in
+ content-info CINFO is displayed.
+
+ If you know content-type, you can specify by CTYPE.
+
+
+
+ -- Variable: mime-viewer/content-header-filter-alist
+
+ Association-list whose key is major-mode of a raw-article-buffer,
+ value is content-header-filter.
+
+
+
+ -- Function: mime-viewer/default-content-header-filter
+
+ It is called when content-header-filter is not found in variable
+ `mime-viewer/content-header-filter-alist'.
+
+ It refers `mime-viewer/ignored-field-regexp'.
+
+
+
+ -- Variable: mime-viewer/ignored-field-list
+
+ List of regular expression to represent invisible fields even if
+ content-header is displayed.
+
+ Variable `mime-viewer/ignored-field-regexp' is created from it.
+
+ Please use function `tm:add-fields' or `tm:delete-fields' to set
+ it.
+
+
+
+
+\1f
+File: tm-view-en.info, Node: content-body, Next: content-separator, Prev: content-header, Up: MIME display
+
+content-body
+============
+
+*content-body* represents content of the
+part.
+
+tm-view does not display raw content body. For example, if a content
+has binary, it is hidden. If a content has text/enriched, it is
+formated. Namely content body is hidden or formated.
+
+Function `mime-viewer/body-visible-p' is a judge function whether
+content-body of a content is displayed. If it returns `nil',
+content-body is hidden. In default, it returns non-`nil' when
+content-type of a part is a member of variable
+`mime-viewer/default-showing-Content-Type-list'.
+
+When content-body of a content is displayed, content-body is formated by
+*content-filter*. Content-filter is
+searched from variable `mime-viewer/content-filter-alist'. At this
+time, major-mode of the raw-article-buffer (*Note raw-article-buffer::)
+is used as the key.
+
+If it is not found, function `mime-viewer/default-content-filter' is
+called.
+
+
+ -- Variable: mime-viewer/default-showing-Content-Type-list
+
+ List of content-type. If content-type of a part is a member of
+ this variable, its body is displayed.
+
+
+
+ -- Function: mime-viewer/body-visible-p RCNUM CINFO &optional CTYPE
+
+ Return non-`nil', if content-type of a part is displayed. RCNUM is
+ reversed-content-number of a part. CINFO is content-info of the
+ message. If you know content-type of a part, you can specify it as
+ argument CTYPE.
+
+
+
+ -- Variable: mime-viewer/content-filter-alist
+
+ Association-list whose key is major-mode of a raw-article-buffer,
+ value is content-filter.
+
+
+
+ -- Function: mime-viewer/default-content-filter RCNUM CINFO CTYPE PARAMS SUBJ
+
+ It is called when content-body of a part should be displayed and
+ content-filter is not found in `mime-viewer/content-filter-alist'.
+
+ In default, it does nothing.
+
+
+
+
+\1f
+File: tm-view-en.info, Node: content-separator, Prev: content-body, Up: MIME display
+
+content-separator
+=================
+
+*content-separator* is displayed to
+represent boundary of contents.
+
+Content-separator is displayed by function
+`mime-viewer/default-content-separator'. In default, it displays
+line-break when content-header and content-body are not displayed.
+
+If you want to change this condition, please redefine this function.
+
+
+ -- Function: mime-viewer/default-content-separator RCNUM CINFO CTYPE PARAMS SUBJ
+
+ Display content-separator. CNUM is content-number of a content.
+ CINFO is content-info of the message. CTYPE is content-type of a
+ content. PARAMS is Content-Type field parameters of a content.
+ SUBJ is subject.
+
+ In default, it displays line-break when content-header and
+ content-body are not displayed.
+
+
+
+
+\1f
+File: tm-view-en.info, Node: mime/viewer-mode, Next: method, Prev: MIME display, Up: Top
+
+Navigation in mime/viewer-mode
+******************************
+
+`mime/viewer-mode' has following functions:
+
+`u'
+ goes to the upper content (returns to the Summary mode if the
+ cursor is sitting on the top content (*1))
+
+`p'
+ goes to the previous content
+
+`n'
+ goes to the next content
+
+`SPC'
+ scrolls up
+
+`M-SPC'
+ scrolls down
+
+`DEL'
+ scrolls down
+
+`RET'
+ goes to the next line
+
+`M-RET'
+ goes to the previous line
+
+`<'
+ goes to the beginning of message
+
+`>'
+ goes to the end of message
+
+`v'
+ playbacks a part (*2)
+
+`e'
+ extracts a file from a part (*2)
+
+`C-c C-p'
+ prints a part (*2)
+
+`f'
+ displays X-Face in the message
+
+`mouse-button-2'
+ drives mouse button in preview-buffer.
+
+ For content-button, it playbacks a part (*2)
+
+ For URL-button, it drives WWW browser
+
+
+*[Notice]*
+
+ (*1) Not return to the Summary mode unless tm-view has been setup
+ using tm-mh-e, tm-vm, gnus-mime, tm-gnus, tm-rmail etc.
+
+ (*2) Actual playback/extract/print will be performed by a method.
+
+
+
+
+\1f
+File: tm-view-en.info, Node: method, Next: Two buffers for an article, Prev: mime/viewer-mode, Up: Top
+
+Mechanism of decoding
+*********************
+
+In `mime/viewer-mode', you can do play (`v'), extract
+(`e'), or print (`C-c C-p') for each parts. These operations
+are called *decoding
+operation(s) (for a part)*. And kind of decoding operations are called
+*decoding-mode*.
+
+When decoding operation is driven, tm-view calls a procedure matched for
+the condition, such as content-type (*Note (tm-en)content-type::) of the
+part or its environment. This procedure is called
+*method*.
+
+There are two kinds of methods. One is Emacs Lisp function, called
+*internal method*. Another one is
+external program, called *external method*.
+
+Internal method operates in Emacs, so it can do carefully.
+
+External method is called as asynchronous process, so Emacs does not
+wait while method is running. So it is good for big data, such as
+audio, image or video.
+
+
+* Menu:
+
+* decoding-condition:: Setting decoding condition for parts
+* environment variables:: Environment variables
+
+
+\1f
+File: tm-view-en.info, Node: decoding-condition, Next: environment variables, Prev: method, Up: method
+
+Setting decoding condition for parts
+====================================
+
+When decoding operation is driven, tm-view calls a method matched for
+the condition searched from the variable
+`mime/content-decoding-condition'.
+
+Variable `mime/content-decoding-condition' is defined as a list with the
+following syntax:
+
+ (condition_1 condition_2 ...)
+
+Each condition are association-list with the following syntax:
+
+ ((field-type_1 . value_1)
+ (field-type_2 . value_2)
+ ...)
+
+For example, if you want to call the external method named tm-plain to
+decode every text/plain (*Note (tm-en)text/plain::) type parts, you can
+define the condition like:
+
+ ((type . "text/plain")
+ (method "tm-plain" nil 'file 'type 'encoding 'mode 'name))
+
+This condition definition will match all parts whose content-type (*Note
+(tm-en)content-type::) are text/plain. Here is an another example:
+
+ ((type . "text/plain")
+ (method "tm-plain" nil 'file 'type 'encoding 'mode 'name)
+ (mode . "play"))
+
+This will match the part whose type is text/plain and the mode is play.
+
+Here is an another example:
+
+ ((method "metamail" t "-m" "tm" "-x" "-d" "-z" "-e" 'file)
+ (mode . "play"))
+
+This will match all parts which have a mode of play.
+
+The conditions defined in a variable `mime/content-decoding-condition'
+are examined from top to bottom. The first matching condition becomes
+valid and the method specified in that condition definition will be
+executed.
+
+
+* Menu:
+
+* method value:: Format of method value
+* Example of decoding-condition::
+
+
+\1f
+File: tm-view-en.info, Node: method value, Next: Example of decoding-condition, Prev: decoding-condition, Up: decoding-condition
+
+Format of method value
+----------------------
+
+You can specify the method field of the decoding-condition definition in
+two different ways,
+
+ (method . SYMBOL)
+
+or
+
+ (method STRING FLAG arg1 arg2 ...)
+
+can be accepted.
+
+When a symbol is specified in the method field, a function whose name is
+SYMBOL will be called as an internal method.
+
+When a list is specified in the method field, it will be called as an
+external method.
+
+The list below shows the meaning of the parameters when the external
+method is specified in the method field.
+
+`STRING'
+ name of an external method
+
+`FLAG'
+ If `t', both the content-header and the content-body are passed to
+ an external method.
+
+ If `nil', only the content-body is passed to an external method.
+
+`ARGUMENTs'
+ list of arguments passed to an external method
+
+
+An argument passed to an external method can be in one of the following
+formats:
+
+`STRING'
+ string itself
+
+`'SYMBOL'
+ value gotten using SYMBOL as a key from decoding-condition
+
+`'STRING'
+ value gotten using STRING as a key from decoding-condition
+
+
+`'SYMBOL' can be one of the following:
+
+`'file'
+ name of a file holding the original content
+
+`'type'
+ content-type/sub-type of Content-Type field
+
+`'encoding'
+ field body of Content-Transfer-Encoding field
+
+`'mode'
+ decoding-mode
+
+`'name'
+ name of a file created by decode operation
+
+
+
+`'STRING' is used to search a parameter of the Content-Type field whose
+name matches with it, and pass the value of that parameter to the
+external method.
+
+
+
+\1f
+File: tm-view-en.info, Node: Example of decoding-condition, Prev: method value, Up: decoding-condition
+
+Example of decoding-condition
+-----------------------------
+
+Following is an example of decoding-condition:
+
+ (defvar mime/content-decoding-condition
+ '(((type . "text/plain")
+ (method "tm-plain" nil 'file 'type 'encoding 'mode 'name))
+ ((type . "text/x-latex")
+ (method "tm-latex" nil 'file 'type 'encoding 'mode 'name))
+ ((type . "audio/basic")
+ (method "tm-au" nil 'file 'type 'encoding 'mode 'name))
+ ((type . "image/gif")
+ (method "tm-image" nil 'file 'type 'encoding 'mode 'name))
+ ((type . "image/jpeg")
+ (method "tm-image" nil 'file 'type 'encoding 'mode 'name))
+ ((type . "image/tiff")
+ (method "tm-image" nil 'file 'type 'encoding 'mode 'name))
+ ((type . "image/x-tiff")
+ (method "tm-image" nil 'file 'type 'encoding 'mode 'name))
+ ((type . "image/x-xbm")
+ (method "tm-image" nil 'file 'type 'encoding 'mode 'name))
+ ((type . "image/x-pic")
+ (method "tm-image" nil 'file 'type 'encoding 'mode 'name))
+ ((type . "video/mpeg")`
+ (method "tm-mpeg" nil 'file 'type 'encoding 'mode 'name))
+ ((type . "application/octet-stream")
+ (method "tm-file" nil 'file 'type 'encoding 'mode 'name))
+ ((type . "message/partial")
+ (method . mime/decode-message/partial-region))
+ ((method "metamail" t
+ "-m" "tm" "-x" "-d" "-z" "-e" 'file)(mode . "play"))
+ ))
+
+
+For example, if you want to use metamail to decode any contents,
+
+ (setq mime/content-decoding-condition
+ '(
+ ((method "metamail" t "-m" "tm" "-x" "-d" "-z" "-e" 'file))
+ ))
+
+will work.
+
+Variable `mime/content-decoding-condition' provides you of very flexible
+way to define the conditions of decoding. It can be simple if you only
+need the a few decoding methods, while it can be very complicated if you
+want to use the separate decoding method for each type/mode combination.
+
+Following function may be useful to set decoding-condition. It is a
+function of `tl-atype.el'.
+
+
+ -- Function: set-atype SYMBOL ALIST
+
+ Add condition ALIST to SYMBOL.
+
+ *[Example]*
+
+ (set-atype 'mime/content-decoding-condition
+ '((type . "message/external-body")
+ ("access-type" . "anon-ftp")
+ (method . mime/decode-message/external-ftp)
+ ))
+
+
+
+
+\1f
+File: tm-view-en.info, Node: environment variables, Prev: decoding-condition, Up: method
+
+Environment variables
+=====================
+
+Standard methods of tm-view reference some environment variables. You
+can specify them to customize.
+
+TM_TMP_DIR
+ Directory for temporary files or extracted files. If it is
+ omitted, `/tmp/' is used.
+
+VIDEO_DITHER
+ Dither for mpeg_play. If it is omitted, `gray' is used.
+
+TM_WWW_BROWSER
+ WWW browser name. If it is omitted, `netscape' is used.
+
+
+
+
+
+\1f
+File: tm-view-en.info, Node: Two buffers for an article, Next: API, Prev: method, Up: Top
+
+raw-article-buffer and preview-buffer
+*************************************
+
+tm-view managements two buffers, one is for raw message called
+*raw-article-buffer*, another one is
+to preview for user called
+*preview-buffer*. major-mode of
+raw-article-buffer is same as major-mode for article of original MUA,
+major-mode of preview-buffer is `mime/viewer-mode' (*Note
+mime/viewer-mode::).
+
+When called `mime/viewer-mode', tm-view analyzes raw-article-buffer, and
+sets its result to the variable `mime::article/content-info'.
+
+After that, tm-view create a preview-buffer corresponded to the
+raw-article-buffer. As this time, tm-view modifies header and body of
+each parts of the message by specified conditions. Filter program for
+header is called *header-filter*
+(*Note content-header::), filter program for body is called
+*content-filter* (*Note content-body::), and
+they are called *filter*.
+
+When preview-buffer is made, buffer local variable of preview-buffer
+`mime::preview/content-list' is made to register structure of
+preview-buffer. tm-view manages message by `mime::article/content-info'
+in raw-article-buffer and `mime::preview/content-list' in
+preview-buffer.
+
+*[Notice]*
+ In this document, I call "content-type" as content-type/subtype of
+ Content-Type field.
+
+
+
+* Menu:
+
+* raw-article-buffer:: buffer local variables of raw-article-buffer
+* preview-buffer:: Buffer local variables of preview-buffer
+
+
+\1f
+File: tm-view-en.info, Node: raw-article-buffer, Next: preview-buffer, Prev: Two buffers for an article, Up: Two buffers for an article
+
+buffer local variables of raw-article-buffer
+============================================
+
+ -- Structure: mime::content-info RCNUM POINT-MIN POINT-MAX TYPE PARAMETERS ENCODING CHILDREN
+
+ structure to represent MIME content in raw-article-buffer. It is
+ called by *content-info*.
+
+ Please use reference function `mime::content-info/SLOT-NAME' to
+ reference slot of content-info. Their argument is only
+ content-info.
+
+ Following is a list of slots of the structure:
+
+ RCNUM
+ "reversed content-number" (list)
+
+ POINT-MIN
+ beginning point of region in raw-article-buffer
+
+ POINT-MAX
+ end point of region in raw-article-buffer
+
+ TYPE
+ content-type/sub-type (string or nil)
+
+ PARAMETERS
+ parameter of Content-Type field (association list)
+
+ ENCODING
+ Content-Transfer-Encoding (string or nil)
+
+ CHILDREN
+ parts included in this part (list of content-infos)
+
+
+ If a part includes other parts in its contents, such as multipart
+ or message/rfc822, content-infos of other parts are included in
+ CHILDREN, so content-info become a tree.
+
+
+ -- Variable: mime::article/content-info
+
+ result of MIME parsing of raw-article-buffer (content-info)
+
+
+ -- Variable: mime::article/preview-buffer
+
+ preview-buffer corresponded by this buffer
+
+
+ -- Function: mime-article/point-content-number POINT &optional CINFO
+
+ In a region managed by content-info CINFO, it returns
+ content-number corresponded by POINT.
+
+ If CINFO is omitted, `mime::article/content-info' is used as
+ default value.
+
+
+ -- Function: mime-article/rcnum-to-cinfo RCNUM &optional CINFO
+
+ In a region managed by content-info CINFO, it returns content-info
+ corresponded by reversed-content-number RCNUM.
+
+ If CINFO is omitted, `mime::article/content-info' is used as
+ default value.
+
+
+ -- Function: mime-article/cnum-to-cinfo RCNUM &optional CINFO
+
+ In a region managed by content-info CINFO, it returns content-info
+ corresponded by content-number RCNUM.
+
+ If CINFO is omitted, `mime::article/content-info' is used as
+ default value.
+
+
+ -- Function: mime/flatten-content-info &optional CINFO
+
+ It returns flatten list of content-info from content-info CINFO
+ tree.
+
+ If CINFO is omitted, `mime::article/content-info' is used as
+ default value.
+
+
+
+
+\1f
+File: tm-view-en.info, Node: preview-buffer, Prev: raw-article-buffer, Up: Two buffers for an article
+
+Buffer local variables of preview-buffer
+========================================
+
+ -- Variable: mime::preview/mother-buffer
+
+ Mother buffer of this preview-buffer.
+
+
+ -- Structure: mime::preview-content-info POINT-MIN POINT-MAX BUFFER CONTENT-INFO
+
+ structure to represent MIME content in preview-buffer. It is called by
+ *preview-content-info*.
+
+ Please use reference function
+ `mime::preview-content-info/SLOT-NAME' to reference slot of
+ preview-content-info. Their argument is only preview-content-info.
+
+ Following is a list of slots of the structure:
+
+ POINT-MIN
+ beginning point of region in preview-buffer
+
+ POINT-MAX
+ end point of region in preview-buffer
+
+ BUFFER
+ raw-article-buffer corresponding a part
+
+ CONTENT-INFO
+ content-info corresponding a part
+
+
+
+
+ -- Variable: mime::preview/content-list
+
+ List of preview-content-info to represent structure of this
+ preview-buffer.
+
+
+
+ -- Variable: mime::preview/article-buffer
+
+ raw-article-buffer corresponded by this preview-buffer.
+
+
+
+ -- Variable: mime::preview/original-major-mode
+
+ major-mode of original buffer.
+
+
+
+ -- Variable: mime::preview/original-window-configuration
+
+ window-configuration just before made this preview-buffer.
+
+
+
+ -- Function: mime-preview/point-pcinfo POINT &optional PCL
+
+ In a region of preview-buffer managed by preview-content-info PCL,
+ it returns preview-content-info corresponded by POINT.
+
+ If CINFO is omitted, `mime::preview/content-list' is used.
+
+
+
+
+\1f
+File: tm-view-en.info, Node: API, Next: Concept Index, Prev: Two buffers for an article, Up: Top
+
+Functions to decode MIME message
+********************************
+
+tm-view provides some available functions to decode and navigate MIME
+message to each MUA (*Note (tm-en)MUA::)s.
+
+There are 2 kinds of functions, one is for MIME preview, another one is
+to decode RFC 1522 encoded-word (*Note (tm-en)encoded-word::).
+
+
+* Menu:
+
+* API about MIME preview:: Function to preview MIME message
+* encoded-word decoding:: encoded-word decoder
+
+
+\1f
+File: tm-view-en.info, Node: API about MIME preview, Next: encoded-word decoding, Prev: API, Up: API
+
+Function to preview MIME message
+================================
+
+
+ -- Command: mime/viewer-mode &optional MOTHER CTL ENCODING IBUF OBUF MOTHER-KEYMAP
+
+ Parse IBUF as a MIME message, and create preview-buffer into OBUF
+ to display to user, then enter `mime/viewer-mode' (*Note
+ mime/viewer-mode::).
+
+ If IBUF is omitted, current buffer is used.
+
+ MOTHER is used to specify original raw-article-buffer. It may be
+ useful when a raw-article-buffer is assembled from message/partial
+ messages.
+
+ CTL is used to specify Content-Type field (*Note
+ (tm-en)Content-Type field::) information. Its format is output
+ format of `mime/Content-Type'. When CTL is specified, tm-view uses
+ it instead of Content-Type field of the raw-article-buffer.
+
+ ENCODING is used to specify field-body of Content-Transfer-Encoding
+ field. When is is specified, tm-view uses it instead of
+ Content-Type field of the raw-article-buffer.
+
+ If MOTHER-KEYMAP is specified, keymap of `mime/viewer-mode'
+ includes it.
+
+
+
+
+\1f
+File: tm-view-en.info, Node: encoded-word decoding, Prev: API about MIME preview, Up: API
+
+encoded-word decoder
+====================
+
+tm-view has functions to decode RFC 1522 encoded-word (*Note
+(tm-en)encoded-word::).
+
+
+ -- Command: mime/decode-message-header
+
+ It decodes encoded-words in message header of current buffer.
+
+ If an encoded-word is broken or invalid, or it has non supported
+ MIME charset (*Note (tm-en)MIME charset::), it is not decoded.
+
+
+
+ -- Command: mime-eword/decode-region START END &optional UNFOLDING MUST-UNFOLD
+
+ It decodes encoded-words in region START to END.
+
+ If an encoded-word is broken or invalid, or it has non supported
+ MIME charset (*Note (tm-en)MIME charset::), it is not decoded.
+
+ If UNFOLDING is non-nil, it unfolds folded fields.
+
+ If MUST-FOLD is non-nil and decoded result of an encoded-word has
+ folding or raw CR or LF, it unfolds or delete raw CR or LF.
+
+
+
+ -- Function: mime-eword/decode-string STRING &optional MUST-UNFOLD
+
+ It decodes encoded-words in STRING and returns decoded string.
+
+ If an encoded-word is broken or invalid, or it has non supported
+ MIME charset (*Note (tm-en)MIME charset::), it is not decoded.
+
+ If STRING is folded, it unfolds STRING before decoding.
+
+ If MUST-FOLD is non-nil and decoded result of an encoded-word has
+ folding or raw CR or LF, it unfolds or delete raw CR or LF.
+
+
+
+
+\1f
+File: tm-view-en.info, Node: Concept Index, Next: Function Index, Prev: API, Up: Top
+
+Concept Index
+*************
+
+
+* Menu:
+
+* content-body: content-body. 5.
+* content-filter: content-body. 19.
+* content-filter: Two buffers for an article. 21.
+* content-header-filter: content-header. 25.
+* content-info: raw-article-buffer. 10.
+* content-number: content-button. 15.
+* content-separator: content-separator. 5.
+* decoding operation(s) (for a part): method. 8.
+* decoding-mode: method. 9.
+* external method: method. 19.
+* filter: Introduction. 17.
+* filter: Two buffers for an article. 23.
+* header-filter: Two buffers for an article. 20.
+* internal method: method. 17.
+* method: Introduction. 14.
+* method: method. 14.
+* preview-buffer: Two buffers for an article. 8.
+* preview-content-info: preview-buffer. 14.
+* raw-article-buffer: Two buffers for an article. 6.
+
+
+\1f
+File: tm-view-en.info, Node: Function Index, Next: Variable Index, Prev: Concept Index, Up: Top
+
+Function Index
+**************
+
+
+* Menu:
+
+* mime-article/cnum-to-cinfo: raw-article-buffer. 73.
+* mime-article/point-content-number: raw-article-buffer. 55.
+* mime-article/rcnum-to-cinfo: raw-article-buffer. 64.
+* mime::content-info: raw-article-buffer. 7.
+* mime/decode-message-header: encoded-word decoding. 11.
+* mime-eword/decode-region: encoded-word decoding. 20.
+* mime-eword/decode-string: encoded-word decoding. 34.
+* mime/flatten-content-info: raw-article-buffer. 82.
+* mime::preview-content-info: preview-buffer. 12.
+* mime-preview/point-pcinfo: preview-buffer. 63.
+* mime-viewer/body-visible-p: content-body. 37.
+* mime-viewer/default-content-filter: content-body. 53.
+* mime-viewer/default-content-header-filter: content-header. 61.
+* mime-viewer/default-content-separator: content-separator. 17.
+* mime-viewer/header-visible-p: content-header. 45.
+* mime/viewer-mode: API about MIME preview. 8.
+* set-atype: Example of decoding-condition. 57.
+
+
+\1f
+File: tm-view-en.info, Node: Variable Index, Prev: Function Index, Up: Top
+
+Variable Index
+**************
+
+
+* Menu:
+
+* mime::article/content-info: raw-article-buffer. 45.
+* mime::article/preview-buffer: raw-article-buffer. 50.
+* mime::preview/article-buffer: preview-buffer. 45.
+* mime::preview/content-list: preview-buffer. 38.
+* mime::preview/mother-buffer: preview-buffer. 7.
+* mime::preview/original-major-mode: preview-buffer. 51.
+* mime::preview/original-window-configuration: preview-buffer. 57.
+* mime-viewer/childrens-header-showing-Content-Type-list: content-header. 34.
+* mime-viewer/content-button-ignored-ctype-list: content-button. 50.
+* mime-viewer/content-filter-alist: content-body. 46.
+* mime-viewer/content-header-filter-alist: content-header. 54.
+* mime-viewer/default-showing-Content-Type-list: content-body. 30.
+* mime-viewer/ignored-field-list: content-header. 70.
+\1f\f
+Tag table:
+Node: Top\7f162
+Node: Introduction\7f883
+Node: MIME display\7f1717
+Node: content-button\7f4001
+Node: content-header\7f5689
+Node: content-body\7f8326
+Node: content-separator\7f10238
+Node: mime/viewer-mode\7f11101
+Node: method\7f12253
+Node: decoding-condition\7f13342
+Node: method value\7f15115
+Node: Example of decoding-condition\7f16825
+Node: environment variables\7f19390
+Node: Two buffers for an article\7f19896
+Node: raw-article-buffer\7f21434
+Node: preview-buffer\7f23971
+Node: API\7f25642
+Node: API about MIME preview\7f26189
+Node: encoded-word decoding\7f27351
+Node: Concept Index\7f28774
+Node: Function Index\7f30062
+Node: Variable Index\7f31244
+\1f
+End tag table
--- /dev/null
+<!doctype sinfo system>
+<!-- $Id: tm-view-en.sgml,v 1.1 1996/11/29 19:09:27 morioka Exp $ -->
+<head>
+<title>tm-view 7.77 Reference Manual (English Version)
+<author>MORIOKA Tomohiko <mail>morioka@jaist.ac.jp</mail>
+<date>1996/10/11
+
+<toc>
+</head>
+
+<body>
+
+<abstract>
+<p>
+This file documents tm-view, a MIME Viewer for GNU Emacs.
+</abstract>
+
+
+<h1> What is tm-view?
+<node> Introduction
+<p>
+The tm-view is a general MIME viewer running on GNU Emacs.
+<p>
+tm-view provides the major-mode called <a
+node="mime/viewer-mode"><code>mime/viewer-mode</code> </a> to read
+MIME message for MUA. <a file="tm-en" node="MUA">MUA</a> implementer
+can use it to add MIME function.
+<p>
+tm-view is a user interface kernel to view and navigate MIME message.
+tm-view drives some programs to navigate each <dref
+file="tm-en">content-type</dref>s, they are called <a
+node="method"><concept>method</concept></a>. tm-view calls some
+programs to display each contents and headers in preview buffer, they
+are called <a node="Two buffers for an
+article"><concept>filter</concept></a>. Method and filters are
+tm-view application program. They expand tm-view to treat various
+kinds of MIME types.
+
+
+<h1> Structure of display in mime/viewer-mode
+<node> MIME display
+<p>
+In <a node="mime/viewer-mode">mime/viewer-mode</a>, following are
+displayed for each parts:
+<p>
+<verb>
+ [content-button]
+ (content-header)
+
+ (content-body)
+ (content-separator)
+</verb>
+<p>
+You can change design or stop to display if you specify for each
+conditions, such as content-types.
+<p>
+Example:
+
+<verb>
+From: morioka@jaist.ac.jp (MORIOKA Tomohiko)
+Subject: Re: Question
+Newsgroups: zxr.message.mime
+Date: 22 Oct 93 11:02:44
+Mime-Version: 1.0
+Organization: Japan Advanced Institute of Science and Technology,
+ Ishikawa, Japan
+
+[1 (text/plain)]
+ How to compose MIME message in MIME-Edit mode.
+
+ Press `C-c C-x ?' then help message will be displayed:
+
+C-c C-x C-t insert a text message.
+C-c C-x TAB insert a (binary) file.
+C-c C-x C-e insert a reference to external body.
+C-c C-x C-v insert a voice message.
+C-c C-x C-y insert a mail or news message.
+C-c C-x RET insert a mail message.
+C-c C-x C-s insert a signature file at end.
+C-c C-x t insert a new MIME tag.
+C-c C-x a enclose as multipart/alternative.
+C-c C-x p enclose as multipart/parallel.
+C-c C-x m enclose as multipart/mixed.
+C-c C-x d enclose as multipart/digest.
+C-c C-x s enclose as PGP signed.
+C-c C-x e enclose as PGP encrypted.
+C-c C-x C-k insert PGP public key.
+C-c C-x C-p preview editing MIME message.
+...
+
+So press `C-c C-x C-i' and specify file name you want to include.
+
+ MIME encoding for binary file is normally Base64.
+
+[2 (image/gif)]
+
+[3 (text/plain)]
+
+ In this way, it is finish a message attaching a picture.
+
+======================== A cup of Russian tea ========================
+============ * not by jam, not by marmalade, by honey * ============
+============ MORIOKA Tomohiko ============
+=============== Internet E-mail: <morioka@jaist.ac.jp> ===============
+</verb>
+
+
+<h2> content-button
+<node> content-button
+<p>
+content-subject displays abstract for the part. It is placed in top
+of the part.
+<p>
+In default, it is displayed following design:
+
+<verb>
+ [1.3 test (text/plain)]
+</verb>
+
+<p>
+First number field represents position of a content in the part. It
+is called <concept>content-number</concept>. It can be considered as
+the chapter number in the message.
+<p>
+Second string part represents title. It is created by following:
+
+<ol>
+<li>name paramater or x-name parameter in <dref
+file="tm-en">Content-Type field</dref>
+</li>
+<li><dref file="tm-en">Content-Description field</dref> or Subject
+field
+</li>
+<li> filename of uuencode
+</ol>
+
+<p>
+If they are not exists, space is displayed.
+<p>
+Third parenthesis part represents content-type/subtype of the part.
+If it is non-MIME part, <code>nil</code> is displayed.
+<p>
+Content-button is used like icon when <dref>content-header</dref> and
+<dref>content-body</dref> are hidden. For example:
+
+<verb>
+ [2 (image/gif)]
+</verb>
+
+<noindent>
+if you press <kbd>v</kbd> key, GIF image is displayed.
+<p>
+If mouse operations are available, you can press content-button by
+mouse button-2 (center button of 3 button-mouse) to play, similarly to
+press <kbd>v</kbd> key. <cf node="mime/viewer-mode">
+<p>
+By the way, it is annoying to display content-button if content-header
+is displayed. So tm-view provides a mechanism to specify conditions
+to display content-button.
+
+
+<defvar name="mime-viewer/content-button-ignored-ctype-list">
+<p>
+List of content-types.
+<p>
+If content-type of a part is a member of this list, its content-button
+is not displayed.
+</defvar>
+
+
+<h2> content-header
+<node> content-header
+<p>
+A content header displays the header portion of a part in the
+preview-buffer. However it is annoying to display header for every
+parts, so tm-view provides a mechanism to specify its condition.
+<p>
+When the function <code>mime-viewer/header-visible-p</code> returns
+<code>t</code> for reversed-content-number of a part, content-header
+is displayed.
+<p>
+This judge function returns <code>t</code> when a part is root or
+content-type of its parent is a member of the variable
+<code>mime-viewer/childrens-header-showing-Content-Type-list</code>.
+<p>
+If you want to change this condition, please redefine it. Notice that
+it refers variable
+<code>mime-viewer/childrens-header-showing-Content-Type-list</code>,
+however if you redefine function
+<code>mime-viewer/header-visible-p</code>, it may not work. So if you
+want to redefine it, it should be refer variable
+<code>mime-viewer/childrens-header-showing-Content-Type-list</code>.
+<p>
+When content-header is displayed, content-header are formated by the
+program called by <concept>content-header-filter</concept>.
+Content-header-filter is searched from variable
+<code>mime-viewer/content-header-filter-alist</code>. Its key is
+major-mode of the <a node="raw-article-buffer">raw-article-buffer</a>.
+If not found, function
+<code>mime-viewer/default-content-header-filter</code> is called.
+<p>
+
+<defvar name="mime-viewer/childrens-header-showing-Content-Type-list">
+<p>
+List of content-types. If content-type of parent of a part is a
+member of this variable, its content-header is displayed. Default
+value is <code>'("message/rfc822" "message/news")</code>.
+<p>
+This variable is referred by the function
+<code>mime-viewer/header-visible-p</code>.
+</defvar>
+
+
+<defun name="mime-viewer/header-visible-p">
+<args> rcnum cinfo <opts> ctype
+<p>
+Returns <code>t</code> if a part which reversed-content-number is
+<var>rcnum</var> in content-info <var>cinfo</var> is displayed.
+<p>
+If you know content-type, you can specify by <var>ctype</var>.
+</defun>
+
+
+<defvar name="mime-viewer/content-header-filter-alist">
+<p>
+Association-list whose key is major-mode of a raw-article-buffer,
+value is content-header-filter.
+</defvar>
+
+
+<defun name="mime-viewer/default-content-header-filter">
+<p>
+It is called when content-header-filter is not found in variable
+<code>mime-viewer/content-header-filter-alist</code>.
+<p>
+It refers <code>mime-viewer/ignored-field-regexp</code>.
+</defun>
+
+
+<defvar name="mime-viewer/ignored-field-list">
+<p>
+List of regular expression to represent invisible fields even if
+content-header is displayed.
+<p>
+Variable <code>mime-viewer/ignored-field-regexp</code> is created from
+it.
+<p>
+Please use function <code>tm:add-fields</code> or
+<code>tm:delete-fields</code> to set it.
+</defvar>
+
+
+<h2> content-body
+<node> content-body
+<p>
+<concept>content-body</concept> represents content of the part.
+<p>
+tm-view does not display raw content body. For example, if a content
+has binary, it is hidden. If a content has text/enriched, it is
+formated. Namely content body is hidden or formated.
+<p>
+Function <code>mime-viewer/body-visible-p</code> is a judge function
+whether content-body of a content is displayed. If it returns
+<code>nil</code>, content-body is hidden. In default, it returns
+non-<code>nil</code> when content-type of a part is a member of
+variable <code>mime-viewer/default-showing-Content-Type-list</code>.
+<p>
+When content-body of a content is displayed, content-body is formated
+by <concept>content-filter</concept>. Content-filter is searched from
+variable <code>mime-viewer/content-filter-alist</code>. At this time,
+major-mode of the <dref>raw-article-buffer</dref> is used as the key.
+
+If it is not found, function
+<code>mime-viewer/default-content-filter</code> is called.
+
+
+<defvar name="mime-viewer/default-showing-Content-Type-list">
+<p>
+List of content-type. If content-type of a part is a member of this
+variable, its body is displayed.
+</defvar>
+
+
+<defun name="mime-viewer/body-visible-p">
+<args> rcnum cinfo <opts> ctype
+<p>
+Return non-<code>nil</code>, if content-type of a part is displayed.
+<var>rcnum</var> is reversed-content-number of a part.
+<var>cinfo</var> is content-info of the message. If you know
+content-type of a part, you can specify it as argument
+<var>ctype</var>.
+</defun>
+
+
+<defvar name="mime-viewer/content-filter-alist">
+<p>
+Association-list whose key is major-mode of a raw-article-buffer,
+value is content-filter.
+</defvar>
+
+
+<defun name="mime-viewer/default-content-filter">
+<args> rcnum cinfo ctype params subj
+<p>
+It is called when content-body of a part should be displayed and
+content-filter is not found in
+<code>mime-viewer/content-filter-alist</code>.
+<p>
+In default, it does nothing.
+</defun>
+
+
+<h2> content-separator
+<node> content-separator
+<p>
+<concept>content-separator</concept> is displayed to represent
+boundary of contents.
+<p>
+Content-separator is displayed by function
+<code>mime-viewer/default-content-separator</code>. In default, it
+displays line-break when content-header and content-body are not
+displayed.
+<p>
+If you want to change this condition, please redefine this function.
+
+
+<defun name="mime-viewer/default-content-separator">
+<args> rcnum cinfo ctype params subj
+<p>
+Display content-separator. <var>cnum</var> is content-number of a
+content. <var>cinfo</var> is content-info of the message.
+<var>ctype</var> is content-type of a content. <var>params</var> is
+Content-Type field parameters of a content. <var>subj</var> is
+subject.
+<p>
+In default, it displays line-break when content-header and
+content-body are not displayed.
+</defun>
+
+
+<h1> Navigation in mime/viewer-mode
+<node> mime/viewer-mode
+<p>
+<code>mime/viewer-mode</code> has following functions:
+<p>
+<kl>
+<kt>u
+<kd>
+goes to the upper content (returns to the Summary mode if the cursor
+is sitting on the top content (*1))
+</kd>
+<kt>p
+<kd>
+goes to the previous content
+</kd>
+<kt>n
+<kd>
+goes to the next content
+</kd>
+<kt>SPC
+<kd>
+scrolls up
+</kd>
+<kt>M-SPC
+<kd>
+scrolls down
+</kd>
+<kt>DEL
+<kd>
+scrolls down
+</kd>
+<kt>RET
+<kd>
+goes to the next line
+</kd>
+<kt>M-RET
+<kd>
+goes to the previous line
+</kd>
+<kt><
+<kd>
+goes to the beginning of message
+</kd>
+<kt>>
+<kd>
+goes to the end of message
+</kd>
+<kt>v
+<kd>
+playbacks a part (*2)
+</kd>
+<kt>e
+<kd>
+extracts a file from a part (*2)
+</kd>
+<kt>C-c C-p
+<kd>
+prints a part (*2)
+</kd>
+<kt>f
+<kd>
+displays X-Face in the message
+</kd>
+<kt>mouse-button-2
+<kd>
+drives mouse button in preview-buffer.
+<p>
+For content-button, it playbacks a part (*2)
+<p>
+For URL-button, it drives WWW browser
+</kd>
+</kl>
+<p>
+<memo title="Notice">
+<p>
+(*1) Not return to the Summary mode unless tm-view has been setup
+using tm-mh-e, tm-vm, gnus-mime, tm-gnus, tm-rmail etc.
+<p>
+(*2) Actual playback/extract/print will be performed by a method.
+</memo>
+
+
+<h1> Mechanism of decoding
+<node> method
+<p>
+In <code>mime/viewer-mode</code>, you can do play (<kbd>v</kbd>),
+extract (<kbd>e</kbd>), or print (<kbd>C-c C-p</kbd>) for each parts.
+These operations are called <concept>decoding operation(s) (for a
+part)</concept>. And kind of decoding operations are called
+<concept>decoding-mode</concept>.
+<p>
+When decoding operation is driven, tm-view calls a procedure matched
+for the condition, such as <dref file="tm-en">content-type</dref> of
+the part or its environment. This procedure is called
+<concept>method</concept>.
+<p>
+There are two kinds of methods. One is Emacs Lisp function, called
+<concept>internal method</concept>. Another one is external program,
+called <concept>external method</concept>.
+<p>
+Internal method operates in Emacs, so it can do carefully.
+<p>
+External method is called as asynchronous process, so Emacs does not
+wait while method is running. So it is good for big data, such as
+audio, image or video.
+
+
+<h2> Setting decoding condition for parts
+<node> decoding-condition
+<p>
+When decoding operation is driven, tm-view calls a method matched for
+the condition searched from the variable
+<code>mime/content-decoding-condition</code>.
+<p>
+Variable <code>mime/content-decoding-condition</code> is defined as a
+list with the following syntax:
+<p>
+<lisp>
+ (condition_1 condition_2 ...)
+</lisp>
+<p>
+Each condition are association-list with the following syntax:
+<p>
+<lisp>
+ ((field-type_1 . value_1)
+ (field-type_2 . value_2)
+ ...)
+</lisp>
+<p>
+For example, if you want to call the external method named tm-plain to
+decode every <dref file="tm-en">text/plain</dref> type parts, you can
+define the condition like:
+<p>
+<lisp>
+ ((type . "text/plain")
+ (method "tm-plain" nil 'file 'type 'encoding 'mode 'name))
+</lisp>
+<p>
+This condition definition will match all parts whose <dref
+file="tm-en">content-type</dref> are text/plain. Here is an another
+example:
+<p>
+<lisp>
+ ((type . "text/plain")
+ (method "tm-plain" nil 'file 'type 'encoding 'mode 'name)
+ (mode . "play"))
+</lisp>
+<p>
+This will match the part whose type is text/plain and the mode is
+play.
+<p>
+Here is an another example:
+<p>
+<lisp>
+ ((method "metamail" t "-m" "tm" "-x" "-d" "-z" "-e" 'file)
+ (mode . "play"))
+</lisp>
+<p>
+This will match all parts which have a mode of play.
+<p>
+The conditions defined in a variable
+<code>mime/content-decoding-condition</code> are examined from top to
+bottom. The first matching condition becomes valid and the method
+specified in that condition definition will be executed.
+
+
+<h3> Format of method value
+<node> method value
+<p>
+You can specify the method field of the decoding-condition definition
+in two different ways,
+<p>
+<lisp>
+ (method . SYMBOL)
+</lisp>
+<p>
+<noindent>
+or
+<p>
+<lisp>
+ (method STRING FLAG arg1 arg2 ...)
+</lisp>
+<p>
+<noindent>
+can be accepted.
+<p>
+When a symbol is specified in the method field, a function whose name
+is SYMBOL will be called as an internal method.
+<p>
+When a list is specified in the method field, it will be called as an
+external method.
+<p>
+The list below shows the meaning of the parameters when the external
+method is specified in the method field.
+<p>
+<dl>
+<dt>STRING
+<dd>name of an external method
+</dd>
+<dt>FLAG
+<dd>If <code>t</code>, both the content-header and the content-body
+are passed to an external method.
+<p>
+If <code>nil</code>, only the content-body is passed to an external
+method.
+</dd>
+<dt>ARGUMENTs
+<dd>list of arguments passed to an external method
+</dd>
+</dl>
+<p>
+An argument passed to an external method can be in one of the
+following formats:
+<p>
+<dl>
+<dt>STRING
+<dd>string itself
+</dd>
+<dt>'SYMBOL
+<dd>value gotten using SYMBOL as a key from decoding-condition
+</dd>
+<dt>'STRING
+<dd>value gotten using STRING as a key from decoding-condition
+</dd>
+</dl>
+<p>
+<code>'SYMBOL</code> can be one of the following:
+<p>
+<dl>
+<dt>'file
+<dd>name of a file holding the original content
+</dd>
+<dt>'type
+<dd>content-type/sub-type of Content-Type field
+</dd>
+<dt>'encoding
+<dd>field body of Content-Transfer-Encoding field
+</dd>
+<dt>'mode
+<dd>decoding-mode
+</dd>
+<dt>'name
+<dd>name of a file created by decode operation
+</dd>
+</dl>
+
+<p>
+<code>'STRING</code> is used to search a parameter of the Content-Type
+field whose name matches with it, and pass the value of that parameter
+to the external method.
+
+
+<h3> Example of decoding-condition
+<node> Example of decoding-condition
+<p>
+Following is an example of decoding-condition:
+
+<lisp>
+(defvar mime/content-decoding-condition
+ '(((type . "text/plain")
+ (method "tm-plain" nil 'file 'type 'encoding 'mode 'name))
+ ((type . "text/x-latex")
+ (method "tm-latex" nil 'file 'type 'encoding 'mode 'name))
+ ((type . "audio/basic")
+ (method "tm-au" nil 'file 'type 'encoding 'mode 'name))
+ ((type . "image/gif")
+ (method "tm-image" nil 'file 'type 'encoding 'mode 'name))
+ ((type . "image/jpeg")
+ (method "tm-image" nil 'file 'type 'encoding 'mode 'name))
+ ((type . "image/tiff")
+ (method "tm-image" nil 'file 'type 'encoding 'mode 'name))
+ ((type . "image/x-tiff")
+ (method "tm-image" nil 'file 'type 'encoding 'mode 'name))
+ ((type . "image/x-xbm")
+ (method "tm-image" nil 'file 'type 'encoding 'mode 'name))
+ ((type . "image/x-pic")
+ (method "tm-image" nil 'file 'type 'encoding 'mode 'name))
+ ((type . "video/mpeg")`
+ (method "tm-mpeg" nil 'file 'type 'encoding 'mode 'name))
+ ((type . "application/octet-stream")
+ (method "tm-file" nil 'file 'type 'encoding 'mode 'name))
+ ((type . "message/partial")
+ (method . mime/decode-message/partial-region))
+ ((method "metamail" t
+ "-m" "tm" "-x" "-d" "-z" "-e" 'file)(mode . "play"))
+ ))
+</lisp>
+
+<p>
+For example, if you want to use metamail to decode any contents,
+
+<lisp>
+(setq mime/content-decoding-condition
+ '(
+ ((method "metamail" t "-m" "tm" "-x" "-d" "-z" "-e" 'file))
+ ))
+</lisp>
+
+<noindent>
+will work.
+<p>
+Variable <code>mime/content-decoding-condition</code> provides you of
+very flexible way to define the conditions of decoding. It can be
+simple if you only need the a few decoding methods, while it can be
+very complicated if you want to use the separate decoding method for
+each type/mode combination.
+<p>
+Following function may be useful to set decoding-condition. It is a
+function of <file>tl-atype.el</file>.
+
+
+<defun name="set-atype">
+<args> symbol alist
+<p>
+Add condition <var>alist</var> to <var>symbol</var>.
+
+<memo title="Example">
+<p>
+<lisp>
+(set-atype 'mime/content-decoding-condition
+ '((type . "message/external-body")
+ ("access-type" . "anon-ftp")
+ (method . mime/decode-message/external-ftp)
+ ))
+</lisp>
+</memo>
+</defun>
+
+
+<h2> Environment variables
+<node> environment variables
+<p>
+Standard methods of tm-view reference some environment variables. You
+can specify them to customize.
+
+<vl>
+<dt>TM_TMP_DIR
+<dd>
+Directory for temporary files or extracted files. If it is omitted,
+<file>/tmp/</file> is used.
+</dd>
+<dt>VIDEO_DITHER
+<dd>
+Dither for mpeg_play. If it is omitted, `gray' is used.
+</dd>
+<dt>TM_WWW_BROWSER
+<dd>
+WWW browser name. If it is omitted, `netscape' is used.
+</vl>
+
+
+<h1> raw-article-buffer and preview-buffer
+<node> Two buffers for an article
+<p>
+tm-view managements two buffers, one is for raw message called
+<concept>raw-article-buffer</concept>, another one is to preview for
+user called <concept>preview-buffer</concept>. major-mode of
+raw-article-buffer is same as major-mode for article of original MUA,
+major-mode of preview-buffer is <a
+node="mime/viewer-mode"><code>mime/viewer-mode</code></a>.
+<p>
+When called <code>mime/viewer-mode</code>, tm-view analyzes
+raw-article-buffer, and sets its result to the variable
+<code>mime::article/content-info</code>.
+<p>
+After that, tm-view create a preview-buffer corresponded to the
+raw-article-buffer. As this time, tm-view modifies header and body of
+each parts of the message by specified conditions. Filter program for
+header is called <a
+node="content-header"><concept>header-filter</concept></a>, filter
+program for body is called <a
+node="content-body"><concept>content-filter</concept></a>, and they
+are called <concept>filter</concept>.
+<p>
+When preview-buffer is made, buffer local variable of preview-buffer
+<code>mime::preview/content-list</code> is made to register structure
+of preview-buffer. tm-view manages message by
+<code>mime::article/content-info</code> in raw-article-buffer and
+<code>mime::preview/content-list</code> in preview-buffer.
+<p>
+<memo title="Notice">
+In this document, I call ``content-type'' as content-type/subtype of
+Content-Type field.
+</memo>
+
+
+<h2> buffer local variables of raw-article-buffer
+<node> raw-article-buffer
+<p>
+<define type="Structure" name="mime::content-info">
+<args> rcnum point-min point-max type parameters encoding children
+<p>
+structure to represent MIME content in raw-article-buffer. It is
+called by <concept>content-info</concept>.
+<p>
+Please use reference function
+<code>mime::content-info/SLOT-NAME</code> to reference slot of
+content-info. Their argument is only content-info.
+<p>
+Following is a list of slots of the structure:
+
+<vl>
+<dt>rcnum<dd>``reversed content-number'' (list)
+</dd>
+<dt>point-min<dd>beginning point of region in raw-article-buffer
+</dd>
+<dt>point-max<dd>end point of region in raw-article-buffer
+</dd>
+<dt>type<dd>content-type/sub-type (string or nil)
+</dd>
+<dt>parameters<dd>parameter of Content-Type field (association list)
+</dd>
+<dt>encoding<dd>Content-Transfer-Encoding (string or nil)
+</dd>
+<dt>children<dd>parts included in this part (list of content-infos)
+</dd>
+</vl>
+<p>
+If a part includes other parts in its contents, such as multipart or
+message/rfc822, content-infos of other parts are included in
+<var>children</var>, so content-info become a tree.
+</define>
+
+<defvar name="mime::article/content-info">
+<p>
+result of MIME parsing of raw-article-buffer (content-info)
+</defvar>
+
+<defvar name="mime::article/preview-buffer">
+<p>
+preview-buffer corresponded by this buffer
+</defvar>
+
+<defun name="mime-article/point-content-number">
+<args> point <opts> cinfo
+<p>
+In a region managed by content-info <var>cinfo</var>, it returns
+content-number corresponded by <var>point</var>.
+<p>
+If <var>cinfo</var> is omitted,
+<code>mime::article/content-info</code> is used as default value.
+</defun>
+
+<defun name="mime-article/rcnum-to-cinfo">
+<args> rcnum <opts> cinfo
+<p>
+In a region managed by content-info <var>cinfo</var>, it returns
+content-info corresponded by reversed-content-number <var>rcnum</var>.
+<p>
+If <var>cinfo</var> is omitted,
+<code>mime::article/content-info</code> is used as default value.
+</defun>
+
+<defun name="mime-article/cnum-to-cinfo">
+<args> rcnum <opts> cinfo
+<p>
+In a region managed by content-info <var>cinfo</var>, it returns
+content-info corresponded by content-number <var>rcnum</var>.
+<p>
+If <var>cinfo</var> is omitted,
+<code>mime::article/content-info</code> is used as default value.
+</defun>
+
+<defun name="mime/flatten-content-info">
+<args> <opts> cinfo
+<p>
+It returns flatten list of content-info from content-info
+<var>cinfo</var> tree.
+<p>
+If <var>cinfo</var> is omitted,
+<code>mime::article/content-info</code> is used as default value.
+</defun>
+
+
+<h2> Buffer local variables of preview-buffer
+<node> preview-buffer
+<p>
+<defvar name="mime::preview/mother-buffer">
+<p>
+Mother buffer of this preview-buffer.
+</defvar>
+
+<define type="Structure" name="mime::preview-content-info">
+<args> point-min point-max buffer content-info
+<p>
+structure to represent MIME content in preview-buffer. It is called
+by <concept>preview-content-info</concept>.
+<p>
+Please use reference function
+<code>mime::preview-content-info/SLOT-NAME</code> to reference slot of
+preview-content-info. Their argument is only preview-content-info.
+<p>
+Following is a list of slots of the structure:
+
+<vl>
+<dt>point-min<dd>beginning point of region in preview-buffer
+</dd>
+<dt> point-max<dd>end point of region in preview-buffer
+</dd>
+<dt>buffer<dd>raw-article-buffer corresponding a part
+</dd>
+<dt>content-info<dd>content-info corresponding a part
+</dd>
+</vl>
+</define>
+
+
+<defvar name="mime::preview/content-list">
+<p>
+List of preview-content-info to represent structure of this
+preview-buffer.
+</defvar>
+
+
+<defvar name="mime::preview/article-buffer">
+<p>
+raw-article-buffer corresponded by this preview-buffer.
+</defvar>
+
+
+<defvar name="mime::preview/original-major-mode">
+<p>
+major-mode of original buffer.
+</defvar>
+
+
+<defvar name="mime::preview/original-window-configuration">
+<p>
+window-configuration just before made this preview-buffer.
+</defvar>
+
+
+<defun name="mime-preview/point-pcinfo">
+<args> point <opts> pcl
+<p>
+In a region of preview-buffer managed by preview-content-info
+<var>pcl</var>, it returns preview-content-info corresponded by
+<var>point</var>.
+<p>
+If <var>cinfo</var> is omitted,
+<code>mime::preview/content-list</code> is used.
+</defun>
+
+
+<h1> Functions to decode MIME message
+<node> API
+<p>
+tm-view provides some available functions to decode and navigate MIME
+message to each <a file="tm-en" node="MUA">MUA</a>s.
+<p>
+There are 2 kinds of functions, one is for MIME preview, another one
+is to decode RFC 1522 <dref file="tm-en">encoded-word</dref>.
+
+
+<h2> Function to preview MIME message
+<node> API about MIME preview
+<p>
+
+<define type="Command" name="mime/viewer-mode">
+<opts> mother ctl encoding ibuf obuf mother-keymap
+<p>
+Parse <var>ibuf</var> as a MIME message, and create preview-buffer
+into <var>obuf</var> to display to user, then enter <a
+node="mime/viewer-mode"><code>mime/viewer-mode</code></a>.
+<p>
+If <var>ibuf</var> is omitted, current buffer is used.
+<p>
+<var>mother</var> is used to specify original raw-article-buffer. It
+may be useful when a raw-article-buffer is assembled from
+message/partial messages.
+<p>
+<var>ctl</var> is used to specify <dref file="tm-en">Content-Type
+field</dref> information. Its format is output format of
+<code>mime/Content-Type</code>. When <var>ctl</var> is specified,
+tm-view uses it instead of Content-Type field of the
+raw-article-buffer.
+<p>
+<var>encoding</var> is used to specify field-body of
+Content-Transfer-Encoding field. When is is specified, tm-view uses
+it instead of Content-Type field of the raw-article-buffer.
+<p>
+If <var>mother-keymap</var> is specified, keymap of
+<code>mime/viewer-mode</code> includes it.
+</define>
+
+
+<h2> encoded-word decoder
+<node> encoded-word decoding
+<p>
+tm-view has functions to decode RFC 1522 <dref
+file="tm-en">encoded-word</dref>.
+
+
+<define type="Command" name="mime/decode-message-header">
+<p>
+It decodes encoded-words in message header of current buffer.
+<p>
+If an encoded-word is broken or invalid, or it has non supported <a
+file="tm-en" node="MIME charset">MIME charset</a>, it is not decoded.
+</define>
+
+
+<define type="Command" name="mime-eword/decode-region">
+<args> start end <opts> unfolding must-unfold
+<p>
+It decodes encoded-words in region <var>start</var> to <var>end</var>.
+<p>
+If an encoded-word is broken or invalid, or it has non supported <a
+file="tm-en" node="MIME charset">MIME charset</a>, it is not decoded.
+<p>
+If <var>unfolding</var> is non-nil, it unfolds folded fields.
+<p>
+If <var>must-fold</var> is non-nil and decoded result of an
+encoded-word has folding or raw CR or LF, it unfolds or delete raw CR
+or LF.
+</define>
+
+
+<defun name="mime-eword/decode-string">
+<args> string <opts> must-unfold
+<p>
+It decodes encoded-words in <var>string</var> and returns decoded
+string.
+<p>
+If an encoded-word is broken or invalid, or it has non supported <a
+file="tm-en" node="MIME charset">MIME charset</a>, it is not decoded.
+<p>
+If <var>string</var> is folded, it unfolds <var>string</var> before
+decoding.
+<p>
+If <var>must-fold</var> is non-nil and decoded result of an
+encoded-word has folding or raw CR or LF, it unfolds or delete raw CR
+or LF.
+</defun>
+
+
+<h1> Concept Index
+<node> Concept Index
+
+<cindex>
+
+
+<h1> Function Index
+<node> Function Index
+
+<findex>
+
+
+<h1> Variable Index
+<node> Variable Index
+
+<vindex>
+
+</body>
--- /dev/null
+\input texinfo.tex
+@setfilename tm-view-en.info
+@settitle{tm-view 7.77 Reference Manual (English Version)}
+@titlepage
+@title tm-view 7.77 Reference Manual (English Version)
+@author MORIOKA Tomohiko <morioka@@jaist.ac.jp>
+@subtitle 1996/10/11
+@end titlepage
+@node Top, Introduction, (dir), (dir)
+@top tm-view 7.77 Reference Manual (English Version)
+
+@ifinfo
+
+This file documents tm-view, a MIME Viewer for GNU Emacs.
+@end ifinfo
+
+@menu
+* Introduction:: What is tm-view?
+* MIME display:: Structure of display in mime/viewer-mode
+* mime/viewer-mode:: Navigation in mime/viewer-mode
+* method:: Mechanism of decoding
+* Two buffers for an article:: raw-article-buffer and preview-buffer
+* API:: Functions to decode MIME message
+* Concept Index::
+* Function Index::
+* Variable Index::
+@end menu
+
+@node Introduction, MIME display, Top, Top
+@chapter What is tm-view?
+
+The tm-view is a general MIME viewer running on GNU Emacs.@refill
+
+tm-view provides the major-mode called @code{mime/viewer-mode}
+(@ref{mime/viewer-mode}) to read MIME message for MUA. MUA
+(@ref{(tm-en)MUA}) implementer can use it to add MIME function.@refill
+
+tm-view is a user interface kernel to view and navigate MIME message.
+tm-view drives some programs to navigate each content-type
+(@ref{(tm-en)content-type})s, they are called
+@cindex{method}@strong{method} (@ref{method}). tm-view calls some
+programs to display each contents and headers in preview buffer, they
+are called @cindex{filter}@strong{filter} (@ref{Two buffers for an
+article}). Method and filters are tm-view application program. They
+expand tm-view to treat various kinds of MIME types.
+
+
+@node MIME display, mime/viewer-mode, Introduction, Top
+@chapter Structure of display in mime/viewer-mode
+
+In mime/viewer-mode (@ref{mime/viewer-mode}), following are displayed
+for each parts:@refill
+
+@example
+ [content-button]
+ (content-header)
+
+ (content-body)
+ (content-separator)
+@end example
+
+You can change design or stop to display if you specify for each
+conditions, such as content-types.@refill
+
+Example:
+
+@example
+From: morioka@@jaist.ac.jp (MORIOKA Tomohiko)
+Subject: Re: Question
+Newsgroups: zxr.message.mime
+Date: 22 Oct 93 11:02:44
+Mime-Version: 1.0
+Organization: Japan Advanced Institute of Science and Technology,
+ Ishikawa, Japan
+
+[1 (text/plain)]
+ How to compose MIME message in MIME-Edit mode.
+
+ Press `C-c C-x ?' then help message will be displayed:
+
+C-c C-x C-t insert a text message.
+C-c C-x TAB insert a (binary) file.
+C-c C-x C-e insert a reference to external body.
+C-c C-x C-v insert a voice message.
+C-c C-x C-y insert a mail or news message.
+C-c C-x RET insert a mail message.
+C-c C-x C-s insert a signature file at end.
+C-c C-x t insert a new MIME tag.
+C-c C-x a enclose as multipart/alternative.
+C-c C-x p enclose as multipart/parallel.
+C-c C-x m enclose as multipart/mixed.
+C-c C-x d enclose as multipart/digest.
+C-c C-x s enclose as PGP signed.
+C-c C-x e enclose as PGP encrypted.
+C-c C-x C-k insert PGP public key.
+C-c C-x C-p preview editing MIME message.
+...
+
+So press `C-c C-x C-i' and specify file name you want to include.
+
+ MIME encoding for binary file is normally Base64.
+
+[2 (image/gif)]
+
+[3 (text/plain)]
+
+ In this way, it is finish a message attaching a picture.
+
+======================== A cup of Russian tea ========================
+============ * not by jam, not by marmalade, by honey * ============
+============ MORIOKA Tomohiko ============
+=============== Internet E-mail: <morioka@@jaist.ac.jp> ===============
+@end example
+
+
+
+@menu
+* content-button::
+* content-header::
+* content-body::
+* content-separator::
+@end menu
+
+@node content-button, content-header, MIME display, MIME display
+@section content-button
+
+content-subject displays abstract for the part. It is placed in top of
+the part.@refill
+
+In default, it is displayed following design:
+
+@example
+ [1.3 test (text/plain)]
+@end example
+
+
+First number field represents position of a content in the part. It is
+called @cindex{content-number}@strong{content-number}. It can be
+considered as the chapter number in the message.@refill
+
+Second string part represents title. It is created by following:
+
+@enumerate
+@item
+name paramater or x-name parameter in Content-Type field
+(@ref{(tm-en)Content-Type field})
+@item
+Content-Description field (@ref{(tm-en)Content-Description field}) or
+Subject field
+@item
+ filename of uuencode
+@end enumerate
+
+
+If they are not exists, space is displayed.@refill
+
+Third parenthesis part represents content-type/subtype of the part. If
+it is non-MIME part, @code{nil} is displayed.@refill
+
+Content-button is used like icon when content-header
+(@ref{content-header}) and content-body (@ref{content-body}) are hidden.
+For example:
+
+@example
+ [2 (image/gif)]
+@end example
+
+@noindent
+if you press @kbd{v} key, GIF image is displayed.
+
+If mouse operations are available, you can press content-button by mouse
+button-2 (center button of 3 button-mouse) to play, similarly to press
+@kbd{v} key. (cf. @ref{mime/viewer-mode}) @refill
+
+By the way, it is annoying to display content-button if content-header
+is displayed. So tm-view provides a mechanism to specify conditions
+to display content-button.
+
+
+@defvar mime-viewer/content-button-ignored-ctype-list
+
+List of content-types.@refill
+
+If content-type of a part is a member of this list, its content-button
+is not displayed.
+@end defvar
+
+
+
+@node content-header, content-body, content-button, MIME display
+@section content-header
+
+A content header displays the header portion of a part in the
+preview-buffer. However it is annoying to display header for every
+parts, so tm-view provides a mechanism to specify its condition.@refill
+
+When the function @code{mime-viewer/header-visible-p} returns @code{t}
+for reversed-content-number of a part, content-header is
+displayed.@refill
+
+This judge function returns @code{t} when a part is root or content-type
+of its parent is a member of the variable
+@code{mime-viewer/childrens-header-showing-Content-Type-list}.@refill
+
+If you want to change this condition, please redefine it. Notice that
+it refers variable
+@code{mime-viewer/childrens-header-showing-Content-Type-list}, however
+if you redefine function @code{mime-viewer/header-visible-p}, it may not
+work. So if you want to redefine it, it should be refer variable
+@code{mime-viewer/childrens-header-showing-Content-Type-list}.@refill
+
+When content-header is displayed, content-header are formated by the
+program called by
+@cindex{content-header-filter}@strong{content-header-filter}.
+Content-header-filter is searched from variable
+@code{mime-viewer/content-header-filter-alist}. Its key is major-mode
+of the raw-article-buffer (@ref{raw-article-buffer}). If not found,
+function @code{mime-viewer/default-content-header-filter} is
+called.@refill
+
+
+@defvar mime-viewer/childrens-header-showing-Content-Type-list
+
+List of content-types. If content-type of parent of a part is a member
+of this variable, its content-header is displayed. Default value is
+@code{'("message/rfc822" "message/news")}.@refill
+
+This variable is referred by the function
+@code{mime-viewer/header-visible-p}.
+@end defvar
+
+
+
+@defun mime-viewer/header-visible-p rcnum cinfo &optional ctype
+
+Returns @code{t} if a part which reversed-content-number is @var{rcnum}
+in content-info @var{cinfo} is displayed.@refill
+
+If you know content-type, you can specify by @var{ctype}.
+@end defun
+
+
+
+@defvar mime-viewer/content-header-filter-alist
+
+Association-list whose key is major-mode of a raw-article-buffer, value
+is content-header-filter.
+@end defvar
+
+
+
+@defun mime-viewer/default-content-header-filter
+
+It is called when content-header-filter is not found in variable
+@code{mime-viewer/content-header-filter-alist}.@refill
+
+It refers @code{mime-viewer/ignored-field-regexp}.
+@end defun
+
+
+
+@defvar mime-viewer/ignored-field-list
+
+List of regular expression to represent invisible fields even if
+content-header is displayed.@refill
+
+Variable @code{mime-viewer/ignored-field-regexp} is created from
+it.@refill
+
+Please use function @code{tm:add-fields} or @code{tm:delete-fields} to
+set it.
+@end defvar
+
+
+
+@node content-body, content-separator, content-header, MIME display
+@section content-body
+
+@cindex{content-body}@strong{content-body} represents content of the
+part.@refill
+
+tm-view does not display raw content body. For example, if a content
+has binary, it is hidden. If a content has text/enriched, it is
+formated. Namely content body is hidden or formated.@refill
+
+Function @code{mime-viewer/body-visible-p} is a judge function whether
+content-body of a content is displayed. If it returns @code{nil},
+content-body is hidden. In default, it returns non-@code{nil} when
+content-type of a part is a member of variable
+@code{mime-viewer/default-showing-Content-Type-list}.@refill
+
+When content-body of a content is displayed, content-body is formated by
+@cindex{content-filter}@strong{content-filter}. Content-filter is
+searched from variable @code{mime-viewer/content-filter-alist}. At this
+time, major-mode of the raw-article-buffer (@ref{raw-article-buffer}) is
+used as the key.
+
+If it is not found, function
+@code{mime-viewer/default-content-filter} is called.
+
+
+@defvar mime-viewer/default-showing-Content-Type-list
+
+List of content-type. If content-type of a part is a member of this
+variable, its body is displayed.
+@end defvar
+
+
+
+@defun mime-viewer/body-visible-p rcnum cinfo &optional ctype
+
+Return non-@code{nil}, if content-type of a part is displayed.
+@var{rcnum} is reversed-content-number of a part. @var{cinfo} is
+content-info of the message. If you know content-type of a part, you
+can specify it as argument @var{ctype}.
+@end defun
+
+
+
+@defvar mime-viewer/content-filter-alist
+
+Association-list whose key is major-mode of a raw-article-buffer, value
+is content-filter.
+@end defvar
+
+
+
+@defun mime-viewer/default-content-filter rcnum cinfo ctype params subj
+
+It is called when content-body of a part should be displayed and
+content-filter is not found in
+@code{mime-viewer/content-filter-alist}.@refill
+
+In default, it does nothing.
+@end defun
+
+
+
+@node content-separator, , content-body, MIME display
+@section content-separator
+
+@cindex{content-separator}@strong{content-separator} is displayed to
+represent boundary of contents.@refill
+
+Content-separator is displayed by function
+@code{mime-viewer/default-content-separator}. In default, it displays
+line-break when content-header and content-body are not
+displayed.@refill
+
+If you want to change this condition, please redefine this function.
+
+
+@defun mime-viewer/default-content-separator rcnum cinfo ctype params subj
+
+Display content-separator. @var{cnum} is content-number of a content.
+@var{cinfo} is content-info of the message. @var{ctype} is content-type
+of a content. @var{params} is Content-Type field parameters of a
+content. @var{subj} is subject.@refill
+
+In default, it displays line-break when content-header and content-body
+are not displayed.
+@end defun
+
+
+
+@node mime/viewer-mode, method, MIME display, Top
+@chapter Navigation in mime/viewer-mode
+
+@code{mime/viewer-mode} has following functions:@refill
+
+@table @kbd
+@item @key{u}
+goes to the upper content (returns to the Summary mode if the cursor
+is sitting on the top content (*1))
+
+@item @key{p}
+goes to the previous content
+
+@item @key{n}
+goes to the next content
+
+@item @key{SPC}
+scrolls up
+
+@item @key{M-SPC}
+scrolls down
+
+@item @key{DEL}
+scrolls down
+
+@item @key{RET}
+goes to the next line
+
+@item @key{M-RET}
+goes to the previous line
+
+@item @key{<}
+goes to the beginning of message
+
+@item @key{>}
+goes to the end of message
+
+@item @key{v}
+playbacks a part (*2)
+
+@item @key{e}
+extracts a file from a part (*2)
+
+@item @key{C-c C-p}
+prints a part (*2)
+
+@item @key{f}
+displays X-Face in the message
+
+@item @key{mouse-button-2}
+drives mouse button in preview-buffer.
+
+For content-button, it playbacks a part (*2)@refill
+
+For URL-button, it drives WWW browser@refill
+
+@end table
+
+@noindent
+@strong{[Notice]}
+@quotation
+
+(*1) Not return to the Summary mode unless tm-view has been setup using
+tm-mh-e, tm-vm, gnus-mime, tm-gnus, tm-rmail etc.@refill
+
+(*2) Actual playback/extract/print will be performed by a method.
+@end quotation
+
+
+
+@node method, Two buffers for an article, mime/viewer-mode, Top
+@chapter Mechanism of decoding
+
+In @code{mime/viewer-mode}, you can do play (@kbd{v}), extract
+(@kbd{e}), or print (@kbd{C-c C-p}) for each parts. These operations
+are called @cindex{decoding operation(s) (for a part)}@strong{decoding
+operation(s) (for a part)}. And kind of decoding operations are called
+@cindex{decoding-mode}@strong{decoding-mode}.@refill
+
+When decoding operation is driven, tm-view calls a procedure matched for
+the condition, such as content-type (@ref{(tm-en)content-type}) of the
+part or its environment. This procedure is called
+@cindex{method}@strong{method}.@refill
+
+There are two kinds of methods. One is Emacs Lisp function, called
+@cindex{internal method}@strong{internal method}. Another one is
+external program, called @cindex{external method}@strong{external
+method}.@refill
+
+Internal method operates in Emacs, so it can do carefully.@refill
+
+External method is called as asynchronous process, so Emacs does not
+wait while method is running. So it is good for big data, such as
+audio, image or video.
+
+
+@menu
+* decoding-condition:: Setting decoding condition for parts
+* environment variables:: Environment variables
+@end menu
+
+@node decoding-condition, environment variables, method, method
+@section Setting decoding condition for parts
+
+When decoding operation is driven, tm-view calls a method matched for
+the condition searched from the variable
+@code{mime/content-decoding-condition}.@refill
+
+Variable @code{mime/content-decoding-condition} is defined as a list
+with the following syntax:@refill
+
+@lisp
+ (condition_1 condition_2 ...)
+@end lisp
+
+Each condition are association-list with the following syntax:@refill
+
+@lisp
+ ((field-type_1 . value_1)
+ (field-type_2 . value_2)
+ ...)
+@end lisp
+
+For example, if you want to call the external method named tm-plain to
+decode every text/plain (@ref{(tm-en)text/plain}) type parts, you can
+define the condition like:@refill
+
+@lisp
+ ((type . "text/plain")
+ (method "tm-plain" nil 'file 'type 'encoding 'mode 'name))
+@end lisp
+
+This condition definition will match all parts whose content-type
+(@ref{(tm-en)content-type}) are text/plain. Here is an another
+example:@refill
+
+@lisp
+ ((type . "text/plain")
+ (method "tm-plain" nil 'file 'type 'encoding 'mode 'name)
+ (mode . "play"))
+@end lisp
+
+This will match the part whose type is text/plain and the mode is
+play.@refill
+
+Here is an another example:@refill
+
+@lisp
+ ((method "metamail" t "-m" "tm" "-x" "-d" "-z" "-e" 'file)
+ (mode . "play"))
+@end lisp
+
+This will match all parts which have a mode of play.@refill
+
+The conditions defined in a variable
+@code{mime/content-decoding-condition} are examined from top to
+bottom. The first matching condition becomes valid and the method
+specified in that condition definition will be executed.
+
+
+@menu
+* method value:: Format of method value
+* Example of decoding-condition::
+@end menu
+
+@node method value, Example of decoding-condition, decoding-condition, decoding-condition
+@subsection Format of method value
+
+You can specify the method field of the decoding-condition definition in
+two different ways,@refill
+
+@lisp
+ (method . SYMBOL)
+@end lisp
+
+@noindent
+or
+
+@lisp
+ (method STRING FLAG arg1 arg2 ...)
+@end lisp
+
+@noindent
+can be accepted.
+
+When a symbol is specified in the method field, a function whose name is
+SYMBOL will be called as an internal method.@refill
+
+When a list is specified in the method field, it will be called as an
+external method.@refill
+
+The list below shows the meaning of the parameters when the external
+method is specified in the method field.@refill
+
+@table @samp
+@item STRING
+name of an external method
+
+@item FLAG
+If @code{t}, both the content-header and the content-body
+are passed to an external method.
+
+If @code{nil}, only the content-body is passed to an external
+method.@refill
+
+@item ARGUMENTs
+list of arguments passed to an external method
+
+@end table
+
+An argument passed to an external method can be in one of the following
+formats:@refill
+
+@table @samp
+@item STRING
+string itself
+
+@item 'SYMBOL
+value gotten using SYMBOL as a key from decoding-condition
+
+@item 'STRING
+value gotten using STRING as a key from decoding-condition
+
+@end table
+
+@code{'SYMBOL} can be one of the following:@refill
+
+@table @samp
+@item 'file
+name of a file holding the original content
+
+@item 'type
+content-type/sub-type of Content-Type field
+
+@item 'encoding
+field body of Content-Transfer-Encoding field
+
+@item 'mode
+decoding-mode
+
+@item 'name
+name of a file created by decode operation
+
+@end table
+
+
+@code{'STRING} is used to search a parameter of the Content-Type
+field whose name matches with it, and pass the value of that parameter
+to the external method.
+
+
+@node Example of decoding-condition, , method value, decoding-condition
+@subsection Example of decoding-condition
+
+Following is an example of decoding-condition:
+
+@lisp
+(defvar mime/content-decoding-condition
+ '(((type . "text/plain")
+ (method "tm-plain" nil 'file 'type 'encoding 'mode 'name))
+ ((type . "text/x-latex")
+ (method "tm-latex" nil 'file 'type 'encoding 'mode 'name))
+ ((type . "audio/basic")
+ (method "tm-au" nil 'file 'type 'encoding 'mode 'name))
+ ((type . "image/gif")
+ (method "tm-image" nil 'file 'type 'encoding 'mode 'name))
+ ((type . "image/jpeg")
+ (method "tm-image" nil 'file 'type 'encoding 'mode 'name))
+ ((type . "image/tiff")
+ (method "tm-image" nil 'file 'type 'encoding 'mode 'name))
+ ((type . "image/x-tiff")
+ (method "tm-image" nil 'file 'type 'encoding 'mode 'name))
+ ((type . "image/x-xbm")
+ (method "tm-image" nil 'file 'type 'encoding 'mode 'name))
+ ((type . "image/x-pic")
+ (method "tm-image" nil 'file 'type 'encoding 'mode 'name))
+ ((type . "video/mpeg")`
+ (method "tm-mpeg" nil 'file 'type 'encoding 'mode 'name))
+ ((type . "application/octet-stream")
+ (method "tm-file" nil 'file 'type 'encoding 'mode 'name))
+ ((type . "message/partial")
+ (method . mime/decode-message/partial-region))
+ ((method "metamail" t
+ "-m" "tm" "-x" "-d" "-z" "-e" 'file)(mode . "play"))
+ ))
+@end lisp
+
+
+For example, if you want to use metamail to decode any contents,
+
+@lisp
+(setq mime/content-decoding-condition
+ '(
+ ((method "metamail" t "-m" "tm" "-x" "-d" "-z" "-e" 'file))
+ ))
+@end lisp
+
+@noindent
+will work.
+
+Variable @code{mime/content-decoding-condition} provides you of very
+flexible way to define the conditions of decoding. It can be simple if
+you only need the a few decoding methods, while it can be very
+complicated if you want to use the separate decoding method for each
+type/mode combination.@refill
+
+Following function may be useful to set decoding-condition. It is a
+function of @file{tl-atype.el}.
+
+
+@defun set-atype symbol alist
+
+Add condition @var{alist} to @var{symbol}.
+
+@noindent
+@strong{[Example]}
+@quotation
+
+@lisp
+(set-atype 'mime/content-decoding-condition
+ '((type . "message/external-body")
+ ("access-type" . "anon-ftp")
+ (method . mime/decode-message/external-ftp)
+ ))
+@end lisp
+@end quotation
+@end defun
+
+
+
+@node environment variables, , decoding-condition, method
+@section Environment variables
+
+Standard methods of tm-view reference some environment variables. You
+can specify them to customize.
+
+@table @var
+@item TM_TMP_DIR
+Directory for temporary files or extracted files. If it is omitted,
+@file{/tmp/} is used.
+
+@item VIDEO_DITHER
+Dither for mpeg_play. If it is omitted, `gray' is used.
+
+@item TM_WWW_BROWSER
+WWW browser name. If it is omitted, `netscape' is used.
+
+@end table
+
+
+
+@node Two buffers for an article, API, method, Top
+@chapter raw-article-buffer and preview-buffer
+
+tm-view managements two buffers, one is for raw message called
+@cindex{raw-article-buffer}@strong{raw-article-buffer}, another one is
+to preview for user called
+@cindex{preview-buffer}@strong{preview-buffer}. major-mode of
+raw-article-buffer is same as major-mode for article of original MUA,
+major-mode of preview-buffer is @code{mime/viewer-mode}
+(@ref{mime/viewer-mode}).@refill
+
+When called @code{mime/viewer-mode}, tm-view analyzes
+raw-article-buffer, and sets its result to the variable
+@code{mime::article/content-info}.@refill
+
+After that, tm-view create a preview-buffer corresponded to the
+raw-article-buffer. As this time, tm-view modifies header and body of
+each parts of the message by specified conditions. Filter program for
+header is called @cindex{header-filter}@strong{header-filter}
+(@ref{content-header}), filter program for body is called
+@cindex{content-filter}@strong{content-filter} (@ref{content-body}), and
+they are called @cindex{filter}@strong{filter}.@refill
+
+When preview-buffer is made, buffer local variable of preview-buffer
+@code{mime::preview/content-list} is made to register structure of
+preview-buffer. tm-view manages message by
+@code{mime::article/content-info} in raw-article-buffer and
+@code{mime::preview/content-list} in preview-buffer.@refill
+
+@noindent
+@strong{[Notice]}
+@quotation
+In this document, I call ``content-type'' as content-type/subtype of
+Content-Type field.
+@end quotation
+
+
+
+@menu
+* raw-article-buffer:: buffer local variables of raw-article-buffer
+* preview-buffer:: Buffer local variables of preview-buffer
+@end menu
+
+@node raw-article-buffer, preview-buffer, Two buffers for an article, Two buffers for an article
+@section buffer local variables of raw-article-buffer
+
+@deffn{Structure} mime::content-info rcnum point-min point-max type parameters encoding children
+
+structure to represent MIME content in raw-article-buffer. It is called
+by @cindex{content-info}@strong{content-info}.@refill
+
+Please use reference function @code{mime::content-info/SLOT-NAME} to
+reference slot of content-info. Their argument is only
+content-info.@refill
+
+Following is a list of slots of the structure:
+
+@table @var
+@item rcnum
+``reversed content-number'' (list)
+
+@item point-min
+beginning point of region in raw-article-buffer
+
+@item point-max
+end point of region in raw-article-buffer
+
+@item type
+content-type/sub-type (string or nil)
+
+@item parameters
+parameter of Content-Type field (association list)
+
+@item encoding
+Content-Transfer-Encoding (string or nil)
+
+@item children
+parts included in this part (list of content-infos)
+
+@end table
+
+If a part includes other parts in its contents, such as multipart or
+message/rfc822, content-infos of other parts are included in
+@var{children}, so content-info become a tree.
+@end deffn
+
+
+@defvar mime::article/content-info
+
+result of MIME parsing of raw-article-buffer (content-info)
+@end defvar
+
+
+@defvar mime::article/preview-buffer
+
+preview-buffer corresponded by this buffer
+@end defvar
+
+
+@defun mime-article/point-content-number point &optional cinfo
+
+In a region managed by content-info @var{cinfo}, it returns
+content-number corresponded by @var{point}.@refill
+
+If @var{cinfo} is omitted, @code{mime::article/content-info} is used as
+default value.
+@end defun
+
+
+@defun mime-article/rcnum-to-cinfo rcnum &optional cinfo
+
+In a region managed by content-info @var{cinfo}, it returns content-info
+corresponded by reversed-content-number @var{rcnum}.@refill
+
+If @var{cinfo} is omitted, @code{mime::article/content-info} is used as
+default value.
+@end defun
+
+
+@defun mime-article/cnum-to-cinfo rcnum &optional cinfo
+
+In a region managed by content-info @var{cinfo}, it returns content-info
+corresponded by content-number @var{rcnum}.@refill
+
+If @var{cinfo} is omitted, @code{mime::article/content-info} is used as
+default value.
+@end defun
+
+
+@defun mime/flatten-content-info &optional cinfo
+
+It returns flatten list of content-info from content-info @var{cinfo}
+tree.@refill
+
+If @var{cinfo} is omitted, @code{mime::article/content-info} is used as
+default value.
+@end defun
+
+
+
+@node preview-buffer, , raw-article-buffer, Two buffers for an article
+@section Buffer local variables of preview-buffer
+
+@defvar mime::preview/mother-buffer
+
+Mother buffer of this preview-buffer.
+@end defvar
+
+
+@deffn{Structure} mime::preview-content-info point-min point-max buffer content-info
+
+structure to represent MIME content in preview-buffer. It is called by
+@cindex{preview-content-info}@strong{preview-content-info}.@refill
+
+Please use reference function
+@code{mime::preview-content-info/SLOT-NAME} to reference slot of
+preview-content-info. Their argument is only
+preview-content-info.@refill
+
+Following is a list of slots of the structure:
+
+@table @var
+@item point-min
+beginning point of region in preview-buffer
+
+@item point-max
+end point of region in preview-buffer
+
+@item buffer
+raw-article-buffer corresponding a part
+
+@item content-info
+content-info corresponding a part
+
+@end table
+@end deffn
+
+
+
+@defvar mime::preview/content-list
+
+List of preview-content-info to represent structure of this
+preview-buffer.
+@end defvar
+
+
+
+@defvar mime::preview/article-buffer
+
+raw-article-buffer corresponded by this preview-buffer.
+@end defvar
+
+
+
+@defvar mime::preview/original-major-mode
+
+major-mode of original buffer.
+@end defvar
+
+
+
+@defvar mime::preview/original-window-configuration
+
+window-configuration just before made this preview-buffer.
+@end defvar
+
+
+
+@defun mime-preview/point-pcinfo point &optional pcl
+
+In a region of preview-buffer managed by preview-content-info @var{pcl},
+it returns preview-content-info corresponded by @var{point}.@refill
+
+If @var{cinfo} is omitted, @code{mime::preview/content-list} is used.
+@end defun
+
+
+
+@node API, Concept Index, Two buffers for an article, Top
+@chapter Functions to decode MIME message
+
+tm-view provides some available functions to decode and navigate MIME
+message to each MUA (@ref{(tm-en)MUA})s.@refill
+
+There are 2 kinds of functions, one is for MIME preview, another one is
+to decode RFC 1522 encoded-word (@ref{(tm-en)encoded-word}).
+
+
+@menu
+* API about MIME preview:: Function to preview MIME message
+* encoded-word decoding:: encoded-word decoder
+@end menu
+
+@node API about MIME preview, encoded-word decoding, API, API
+@section Function to preview MIME message
+
+
+@deffn{Command} mime/viewer-mode &optional mother ctl encoding ibuf obuf mother-keymap
+
+Parse @var{ibuf} as a MIME message, and create preview-buffer into
+@var{obuf} to display to user, then enter @code{mime/viewer-mode}
+(@ref{mime/viewer-mode}).@refill
+
+If @var{ibuf} is omitted, current buffer is used.@refill
+
+@var{mother} is used to specify original raw-article-buffer. It may be
+useful when a raw-article-buffer is assembled from message/partial
+messages.@refill
+
+@var{ctl} is used to specify Content-Type field
+(@ref{(tm-en)Content-Type field}) information. Its format is output
+format of @code{mime/Content-Type}. When @var{ctl} is specified,
+tm-view uses it instead of Content-Type field of the
+raw-article-buffer.@refill
+
+@var{encoding} is used to specify field-body of
+Content-Transfer-Encoding field. When is is specified, tm-view uses it
+instead of Content-Type field of the raw-article-buffer.@refill
+
+If @var{mother-keymap} is specified, keymap of @code{mime/viewer-mode}
+includes it.
+@end deffn
+
+
+
+@node encoded-word decoding, , API about MIME preview, API
+@section encoded-word decoder
+
+tm-view has functions to decode RFC 1522 encoded-word
+(@ref{(tm-en)encoded-word}).
+
+
+@deffn{Command} mime/decode-message-header
+
+It decodes encoded-words in message header of current buffer.@refill
+
+If an encoded-word is broken or invalid, or it has non supported MIME
+charset (@ref{(tm-en)MIME charset}), it is not decoded.
+@end deffn
+
+
+
+@deffn{Command} mime-eword/decode-region start end &optional unfolding must-unfold
+
+It decodes encoded-words in region @var{start} to @var{end}.@refill
+
+If an encoded-word is broken or invalid, or it has non supported MIME
+charset (@ref{(tm-en)MIME charset}), it is not decoded.@refill
+
+If @var{unfolding} is non-nil, it unfolds folded fields.@refill
+
+If @var{must-fold} is non-nil and decoded result of an encoded-word has
+folding or raw CR or LF, it unfolds or delete raw CR or LF.
+@end deffn
+
+
+
+@defun mime-eword/decode-string string &optional must-unfold
+
+It decodes encoded-words in @var{string} and returns decoded
+string.@refill
+
+If an encoded-word is broken or invalid, or it has non supported MIME
+charset (@ref{(tm-en)MIME charset}), it is not decoded.@refill
+
+If @var{string} is folded, it unfolds @var{string} before
+decoding.@refill
+
+If @var{must-fold} is non-nil and decoded result of an encoded-word has
+folding or raw CR or LF, it unfolds or delete raw CR or LF.
+@end defun
+
+
+
+@node Concept Index, Function Index, API, Top
+@chapter Concept Index
+
+@printindex cp
+
+@node Function Index, Variable Index, Concept Index, Top
+@chapter Function Index
+
+@printindex fn
+
+@node Variable Index, , Function Index, Top
+@chapter Variable Index
+
+@printindex vr
+@bye
;; Author: Shuhei KOBAYASHI <shuhei-k@jaist.ac.jp>
;; Artur Pioro <artur@flugor.if.uj.edu.pl>
;; Maintainer: Shuhei KOBAYASHI <shuhei-k@jaist.ac.jp>
-;; Version: $Id: tm-bbdb.el,v 7.19 1996/10/22 05:28:23 shuhei-k Exp $
+;; Version: $Id: tm-bbdb.el,v 7.22 1996/11/30 18:40:09 shuhei-k Exp $
;; Keywords: mail, news, MIME, multimedia, multilingual, BBDB
;; This file is part of tm (Tools for MIME).
;;; Code:
-(require 'bbdb)
-(require 'bbdb-com)
(require 'std11)
(require 'tm-ew-d)
(require 'tm-view)
-
+(require 'bbdb-com) ; (require 'bbdb) implicitly
;;; @ mail-extr
;;;
))))
(defun tm-bbdb/annotate-sender (string)
- "Add a line to the end of the Notes field of the BBDB record
+ "Add a line to the end of the Notes field of the BBDB record
corresponding to the sender of this message."
(interactive
(list (if bbdb-readonly-p
(defun tm-bbdb/pop-up-bbdb-buffer (&optional offer-to-create)
"Make the *BBDB* buffer be displayed along with the MIME preview window(s),
displaying the record corresponding to the sender of the current message."
- (bbdb-pop-up-bbdb-buffer
- (function
- (lambda (w)
- (let ((b (current-buffer)))
- (set-buffer (window-buffer w))
- (prog1 (eq major-mode 'mime/viewer-mode)
- (set-buffer b))))))
- (let ((bbdb-gag-messages t)
- (bbdb-use-pop-up nil)
- (bbdb-electric-p nil))
- (let ((record (tm-bbdb/update-record offer-to-create))
- (bbdb-elided-display (bbdb-pop-up-elided-display))
- (b (current-buffer)))
- (bbdb-display-records (if record (list record) nil))
- (or record
- (delete-windows-on (get-buffer "*BBDB*")))
- (set-buffer b)
- record)))
+ (let ((framepop (eq temp-buffer-show-function 'framepop-display-buffer)))
+ (or framepop
+ (bbdb-pop-up-bbdb-buffer
+ (function
+ (lambda (w)
+ (let ((b (current-buffer)))
+ (set-buffer (window-buffer w))
+ (prog1 (eq major-mode 'mime/viewer-mode)
+ (set-buffer b)))))))
+ (let ((bbdb-gag-messages t)
+ (bbdb-use-pop-up nil)
+ (bbdb-electric-p nil))
+ (let ((record (tm-bbdb/update-record offer-to-create))
+ (bbdb-elided-display (bbdb-pop-up-elided-display))
+ (b (current-buffer)))
+ (if framepop
+ (if record
+ (bbdb-display-records (list record))
+ (framepop-banish))
+ (bbdb-display-records (if record (list record) nil)))
+ (set-buffer b)
+ record))))
(defun tm-bbdb/define-keys ()
(let ((mime/viewer-mode-map (current-local-map)))
(defun signature/set-bbdb-sigtype (sigtype addr)
"Add sigtype information to BBDB."
(let* ((bbdb-notice-hook nil)
- (record (bbdb-annotate-message-sender
+ (record (bbdb-annotate-message-sender
addr t
- (bbdb-invoke-hook-for-value
+ (bbdb-invoke-hook-for-value
bbdb/mail-auto-create-p)
t)))
(if record
(addr (and to
(car (cdr (mail-extract-address-components to)))))
(sigtype (signature/get-bbdb-sigtype addr))
- return
+ return
)
(if addr
(if verbose
;; Copyright (C) 1995,1996 Free Software Foundation, Inc.
;; Author: MORIOKA Tomohiko <morioka@jaist.ac.jp>
-;; Version: $Id: tm-def.el,v 7.65 1996/10/28 08:43:40 morioka Exp $
+;; Version: $Id: tm-def.el,v 7.66 1996/11/26 18:00:45 shuhei-k Exp $
;; Keywords: mail, news, MIME, multimedia, definition
;; This file is part of tm (Tools for MIME).
;;;
(defconst base64-token-regexp "[A-Za-z0-9+/=]")
+(defconst base64-token-padding-regexp "[A-Za-z0-9+/=]")
(defconst mime/B-encoded-text-regexp
- (concat "\\("
+ (concat "\\(\\("
base64-token-regexp
base64-token-regexp
base64-token-regexp
base64-token-regexp
- "\\)+"))
+ "\\)*"
+ base64-token-regexp
+ base64-token-regexp
+ base64-token-padding-regexp
+ base64-token-padding-regexp
+ "\\)"))
+
(defconst mime/B-encoding-and-encoded-text-regexp
(concat "\\(B\\)\\?" mime/B-encoded-text-regexp))
;; MORIOKA Tomohiko <morioka@jaist.ac.jp>
;; Maintainer: MORIOKA Tomohiko <morioka@jaist.ac.jp>
;; Created: 1994/08/21 renamed from mime.el
-;; Version: $Revision: 7.94 $
+;; Version: $Revision: 7.95 $
;; Keywords: mail, news, MIME, multimedia, multilingual
;; This file is part of tm (Tools for MIME).
;;; Commentary:
;; This is an Emacs minor mode for editing Internet multimedia
-;; messages formatted in MIME (RFC 1521 and RFC 1522). All messages in
-;; this mode are composed in the tagged MIME format, that are
-;; described in the following examples. The messages composed in the
-;; tagged MIME format are automatically translated into a MIME
-;; compliant message when exiting the mode.
+;; messages formatted in MIME (RFC 2045, 2046, 2047, 2048 and 2049).
+;; All messages in this mode are composed in the tagged MIME format,
+;; that are described in the following examples. The messages
+;; composed in the tagged MIME format are automatically translated
+;; into a MIME compliant message when exiting the mode.
;; Mule (a multilingual extension to Emacs 18 and 19) has a capability
;; of handling multilingual text in limited ISO-2022 manner that is
;; based on early experiences in Japanese Internet community and
-;; resulted in RFC 1468 (ISO-2022-JP charset for MIME). In order to
+;; resulted in RFC 1468 (ISO-2022-JP charset for MIME). In order to
;; enable multilingual capability in single text message in MIME,
;; charset of multilingual text written in Mule is declared as either
-;; `ISO-2022-JP-2' [RFC 1554] or `ISO-2022-INT-1'. Mule is required
+;; `ISO-2022-JP-2' [RFC 1554] or `ISO-2022-INT-1'. Mule is required
;; for reading the such messages.
;; This MIME composer can work with Mail mode, mh-e letter Mode, and
;;;
(defconst mime-editor/RCS-ID
- "$Id: tm-edit.el,v 7.94 1996/11/16 07:51:41 morioka Exp $")
+ "$Id: tm-edit.el,v 7.95 1996/12/04 04:43:01 morioka Exp $")
(defconst mime-editor/version (get-version-string mime-editor/RCS-ID))
-;;; tm-ew-d.el --- RFC 1522 based MIME encoded-word decoder for GNU Emacs
+;;; tm-ew-d.el --- RFC 2047 based encoded-word decoder for GNU Emacs
;; Copyright (C) 1995,1996 Free Software Foundation, Inc.
;; Original: 1992/07/20 ENAMI Tsugutomo's `mime.el'.
;; Renamed: 1993/06/03 to tiny-mime.el.
;; Renamed: 1995/10/03 from tiny-mime.el. (split off encoder)
-;; Version: $Revision: 7.29 $
-;; Keywords: mail, news, MIME, RFC 1522, multilingual, encoded-word
+;; Version: $Revision: 7.34 $
+;; Keywords: encoded-word, MIME, multilingual, header, mail, news
;; This file is part of tm (Tools for MIME).
;;;
(defconst tm-ew-d/RCS-ID
- "$Id: tm-ew-d.el,v 7.29 1996/10/13 18:44:49 morioka Exp $")
+ "$Id: tm-ew-d.el,v 7.34 1996/12/04 04:49:14 morioka Exp $")
(defconst mime/eword-decoder-version (get-version-string tm-ew-d/RCS-ID))
(mime/unfolding)
)
(goto-char (point-min))
- (while (re-search-forward
- (concat (regexp-quote "?=") "\\s +" (regexp-quote "=?"))
- nil t)
+ (while (re-search-forward "\\?=\\(\n*\\s +\\)+=\\?" nil t)
(replace-match "?==?")
)
(goto-char (point-min))
(let (field beg end)
(while (re-search-forward std11-field-head-regexp nil t)
(setq beg (match-beginning 0)
- end (std11-field-end))
+ end (std11-field-end))
(setq field (buffer-substring beg end))
(if (string-match mime/encoded-word-regexp field)
- (save-restriction
- (narrow-to-region (goto-char beg) end)
- (while (re-search-forward "\n[ \t]+" nil t)
- (replace-match " ")
- )
+ (save-restriction
+ (narrow-to-region (goto-char beg) end)
+ (while (re-search-forward "\n\\([ \t]\\)" nil t)
+ (replace-match
+ (match-string 1))
+ )
(goto-char (point-max))
))
)))
(text
(substring word (match-beginning 3) (match-end 3))
))
- (mime/decode-encoded-text charset encoding text must-unfold)
+ (condition-case err
+ (mime/decode-encoded-text charset encoding text must-unfold)
+ (error nil))
))
word))
(let ((cs (mime-charset-to-coding-system charset)))
(if cs
(let ((dest
- (cond ((string-equal "B" encoding)
- (base64-decode-string string))
- ((string-equal "Q" encoding)
- (q-encoding-decode-string string))
- (t (message "unknown encoding %s" encoding)
+ (cond ((and (string-equal "B" encoding)
+ (string-match mime/B-encoded-text-regexp string))
+ (base64-decode-string string))
+ ((and (string-equal "Q" encoding)
+ (string-match mime/Q-encoded-text-regexp string))
+ (q-encoding-decode-string string))
+ (t (message "Invalid encoded-word %s" encoding)
nil))))
(if dest
(progn
-;;; tm-ew-e.el --- RFC 1522 based MIME encoded-word encoder for GNU Emacs
+;;; tm-ew-e.el --- RFC 2047 based encoded-word encoder for GNU Emacs
;; Copyright (C) 1995,1996 Free Software Foundation, Inc.
;; Author: MORIOKA Tomohiko <morioka@jaist.ac.jp>
-;; Version: $Revision: 7.55 $
-;; Keywords: mail, news, MIME, RFC 1522, multilingual, encoded-word
+;; Version: $Revision: 7.56 $
+;; Keywords: encoded-word, MIME, multilingual, header, mail, news
;; This file is part of tm (Tools for MIME).
;;;
(defconst tm-ew-e/RCS-ID
- "$Id: tm-ew-e.el,v 7.55 1996/10/01 13:36:22 morioka Exp $")
+ "$Id: tm-ew-e.el,v 7.56 1996/12/04 04:48:37 morioka Exp $")
(defconst mime-eword/encoder-version (get-version-string tm-ew-e/RCS-ID))