<!doctype sinfo system>
<head>
<title>FLIM 1.14 MIME $B5!G=@bL@=q(B
<author>$B<i2,(B $BCNI'(B <mail>morioka@jaist.ac.jp</mail>
<date>1999-01-27

<toc>
</head>

<body>

<abstract>
<p>
This file documents MIME features of FLIM, a fundamental library to
process Internet Messages for GNU Emacsen.
<p>
GNU Emacsen $BMQ$N(B Internet Message $B=hM}$N$?$a$N4pAC(B library $B$G$"$k(B FLIM 
$B$N(B MIME $B5!G=$K4X$7$F@bL@$7$^$9!#(B
</abstract>


<h1> FLIM $B$C$F2?!)(B
<node> Introduction
<p>
FLIM $B$O(B Internet Message $B$NI=8=$dId9f2=$K4X$9$k4pACE*$J5!G=$rDs6!$9$k(B
$B$?$a$N(B library $B$G$9!#(B


<h1> FLIM $B$N(B MIME $B5!G=$N;H$$J}(B
<node> How to use
<p>
FLIM $B$NDs6!$9$k(B MIME $B5!G=$r;H$&$?$a$K$O(B

<lisp>
(require 'mime)
</lisp>

<noindent>$B$rI>2A$7$F$/$@$5$$!#(B


<h1> Message $B$H(B Entity
<node> Entity
<p>
<dref>RFC 2045</dref> $B$K$h$l$P!"!V(BEntity $B$H$$$&8l$O!"(Bmessage, $B$b$7$/$O!"(B
multipart entity $B$N(B body $BCf$N#1$D$NItJ,$N!"(BMIME $B$GDj5A$5$l$?(B header
field $B$HFbMF$r;X$9!W$H$J$C$F$$$^$9!#$3$3$G$O!"(BMIME $B$GDj5A$5$l$?(B header
field $B0J30$NA4$F$N(B header $B$H(B body $B$r;X$98l$H$7$F(B 
<concept>entity</concept>$B$rMQ$$$k$3$H$K$7$^$9!#(B
<p>
RFC 2045 $B$NDj5A$O!"(BMIME message $B$,(B entity $B$r@a$H$9$kLZ9=B$$G$"$k$3$H$r(B
$B<($7$F$$$^$9!#$D$^$j!"(BMIME $B$O(B message $B$rLZ9=B$$K3HD%$7$?Lu$G$9!#(B
<p>
FLIM $B$O(B entity $B$N>pJs$rI=8=$9$k$?$a$K(B<concept>mime-entity</concept> $B9=(B
$BB$BN$rMQ$$$^$9!#0J2<$G$OC1$K(B mime-entity $B$H8F$V$3$H$K$7$^$9!#(B


<h2> Entity $B$N@8@.(B
<node> Entity creation
<p>
<defun name="mime-open-entity">
	  <opts> type location
<p>
Entity $B$r3+$$$F!"$=$l$rJV$7$^$9!#(B
<p>
<var>type</var> $B$O(B representation-type $B$G$9!#(B <cf node="mm-backend">
<p>
<var>location</var> $B$O(B entity $B$N0LCV$G$9!#;XDjJ}K!$O(B
representation-type $B$K0M$C$FJQ$o$j$^$9!#(B
</defun>

<defun name="mime-parse-buffer">
	  <opts> buffer type
<p>
<var>buffer</var> $B$r(B message $B$H$7$F9=J82r@O$7!"$=$N7k2L$N(B mime-entity 
$B$r(B <var>buffer</var> $B$N(B<code>mime-message-structure</code> $B$K3JG<$9$k!#(B
<p>
<var>buffer</var> $B$,>JN,$5$l$?>l9g!"8=:_$N(B buffer $B$r9=J82r@O$9$k!#(B
<p>
<var>type</var> $B$,;XDj$5$l$?>l9g!"$=$NCM$r@8@.$5$l$k(B mime-entity $B$NI=(B
$B>]7?$H$7$FMQ$$$k!#>JN,$5$l$?>l9g$O(B <var>buffer</var> $B$H$J$k!#(B<cf
node="mm-backend">
</defun>


<h2> Entity $B3,AX(B
<node> Entity hierarchy
<p>
MIME message $B$O(B entity $B$rC10L$H$9$kLZ9=B$$K$J$C$F$$$^$9!#(B
<p>
$B$3$NLZ$K$*$$$F:,$H$J$k@a$O(B message $BA4BN$rI=$9(B entity $B$G$9!#$3$3$G$O!"(B
$B$3$l$r(B <concept>root-entity</concept> $B$b$7$/$O(B
<concept>message</concept> $B$H8F$S$^$9!#(B
<p>
root-entity $B0J30$N(B entity $B$O?F$r;}$A$^$9!#$^$?!"(Bentity $B$O;R6!$r;}$D$+(B
$B$bCN$l$^$;$s!#$3$N?F;R4X78$r9M$($k$3$H$G(B entity $B$NAjBP4X78$r07$&$3$H$,(B
$B$G$-$^$9!#(B
<p>
$B0lJ}!"(Bentity $B$N(B message $B$K$*$1$k0LCV$r9M$($k$3$H$b$G$-$^$9!#(B
<p>
entity $B$O$3$NLZ$K$*$1$k@a$H$J$j$^$9$,!"$3$NLZ$K$O?<$5$HF1$8?<$5$NCf$N(B
$B=gHV$K=>$C$FHV9f$,IU$1$k$3$H$,$G$-$^$9!#B($A!"(B
<verb>

                              $B(#(!(!(!($(B
                              $B("(B  nil $B("(B
                              $B(&(!(((!(%(B
              $B(#(!(!(!(!(!(!(!(!(!(+(!(!(!(!(!(!(!(!(!($(B
            $B(#(*($(B              $B(#(*($(B              $B(#(*($(B
            $B("#0("(B              $B("#1("(B              $B("#2("(B
            $B(&(((%(B              $B(&(((%(B              $B(&(((%(B
              $B("(B        $B(#(!(!(!(!(+(!(!(!(!($(B        $B("(B
          $B(#(!(*(!($(#(!(*(!($(#(!(*(!($(#(!(*(!($(#(!(*(!($(B
          $B("(B $B#0(B.$B#0("("(B $B#1(B.$B#0("("(B $B#1(B.$B#1("("(B $B#1(B.$B#2("("(B $B#2(B.$B#0("(B
          $B(&(!(!(!(%(&(!(!(!(%(&(!(!(!(%(&(!(!(!(%(&(!(!(!(%(B

</verb>
<p>
<noindent>$B$N$h$&$K?<$5(B n $B$N@a$K$OD9$5(B n $B$N@0?tNs$N@aHV9f$,?6$l$^$9!#$3$l(B
$B$r(B <concept>entity-number</concept> $B$H8F$S$^$9!#(Bentity-number $B$O(B S $B<0$H(B
$B$7$F$O(B <code>(1 2 3)</code> $B$N$h$&$J@0?t$N%j%9%H$H$7$FI=8=$5$l$^$9!#(B
<p>
mime-entity $B$G$O!"$3$l$HF1MM$N(B <concept>node-id</concept> $B$rMQ$$$^$9!#(B
node-id $B$O$A$g$&$I(B entity-number $B$r5U$K$7$?%j%9%H$G!"(Bentity-number
1.2.3 $B$KBP1~$9$k(B node-id $B$O(B <code>(3 2 1)</code> $B$G$9!#(B
<p>
$BA0=R$N$h$&$K!"(BMIME message $B$O(B entity $B$rC10L$H$7$?LZ9=B$$K$J$C$F$$$k$N$G!"(B
$B$3$N:,$G$"$k(B message $BA4BN$b(B mime-entity $B$GI=8=$9$k$3$H$,$G$-!"(Bbuffer
local $BJQ?t(B <code>mime-message-structure</code> $B$K3JG<$9$k$3$H$K$7$^$9!#(B
<p>
<code>mime-message-structure</code> $B$r5/E@$K(B entity-number $B$d(B node-id 
$B$G<($5$l$k(B entity $B$r<h$j=P$9$3$H$,$G$-$^$9!#(B

<defvar name="mime-message-structure">
<p>
$B8=:_$N(B buffer $B$K$*$1$k(B message $BA4BN$N(B mime-entity $B9=B$BN$r3JG<$9$k(B
buffer local $BJQ?t!#(B
</defvar>

<defun name="mime-entity-children">
	  <args> entity
<p>
<var>entity</var> $B$K4^$^$l$k(B entity $B$N(B list $B$rJV$9!#(B
</defun>

<defun name="mime-entity-parent">
	  <args> entity <opts> message
<p>
<var>entity</var> $B$N?F$N(B entity $B$rJV$9!#(B
<p>
<var>message</var> $B$,;XDj$5$l$?>l9g!"$3$l$r:,$H8+Jo$9!#(B
</defun>

<defun name="mime-root-entity-p">
	  <args> entity
<p>
<var>entity</var> $B$,:,!JB($A!"(Bmessage $BA4BN!K$G$"$k>l9g$K!"(B
$BHs(B-<code>nil</code> $B$rJV$9!#(B
</defun>

<defun name="mime-entity-node-id">
	  <args> entity
<p>
<var>entity</var> $B$N(B node-id $B$rJV$9!#(B
</defun>

<defun name="mime-entity-number">
	  <args> entity
<p>
<var>entity</var> $B$N(B entity-number $B$rJV$9!#(B
</defun>


<h2> Entity $B$N8!:w(B
<node> Entity Search
<p>
<defun name="mime-find-entity-from-number">
	    <args> entity-number <opts> message
<p>
<var>message</var> $B$+$i!"(B<var>enity-number</var> $B$N(B entity $B$rJV$7$^$9!#(B
<p>
<var>message</var> $B$,;XDj$5$l$F$$$J$$>l9g$O!"(B
<code>mime-message-structrue</code> $B$,;H$o$l$^$9!#(B
</defun>

<defun name="mime-find-entity-from-node-id">
	    <args> entity-node-id <opts> message
<p>
<var>message</var> $B$+$i!"(B<var>entity-node-id</var> $B$N(B entity $B$rJV$7$^(B
$B$9!#(B
<p>
<var>message</var> $B$,;XDj$5$l$F$$$J$$>l9g$O!"(B
<code>mime-message-structure</code> $B$,;H$o$l$^$9!#(B
</defun>

<defun name="mime-find-entity-from-content-id">
	    <args> cid <opts> message
<p>
<var>message</var> $B$+$i!"(B<var>cid</var> $B$N(B entity $B$rJV$7$^$9!#(B
<p>
<var>message</var> $B$,;XDj$5$l$F$$$J$$>l9g$O!"(B
<code>mime-message-structure</code> $B$,;H$o$l$^$9!#(B
</defun>


<h2> Entity $B$NB0@-(B
<node> Entity Attributes
<p>
<defun name="mime-entity-content-type">
	    <args> entity
<p>
<var>entity</var> $B$N(B content-type $B$rJV$9!#(B<cf
node="mime-content-type">
</defun>

<defun name="mime-entity-content-disposition">
	    <args> entity
<p>
<var>entity</var> $B$N(B content-disposition $B$rJV$9!#(B<cf
node="mime-content-disposition">
</defun>

<defun name="mime-entity-filename">
	    <args> entity
<p>
<var>entity</var> $B$N(B file $BL>$rJV$9!#(B
</defun>

<defun name="mime-entity-encoding">
	    <args> entity <opts> default-encoding
<p>
<var>entity</var> $B$N(B content-transfer-encoding $B$rJV$9!#(B<cf
node="Content-Transfer-Encoding">
<p>
$B$b$7!"(B<var>entity</var> $B$K(B Content-Transfer-Encoding $BMs$,B8:_$7$J$$>l(B
$B9g$O!"(B<var>default-encoding</var> $B$rJV$9!#$3$l$,;XDj$5$l$J$$>l9g$O!"(B
<code>"7bit"</code> $B$rMQ$$$k!#(B
</defun>

<defun name="mime-entity-cooked-p">
	    <args> entity
<p>
<var>entity</var> $B$NFbMF$,4{$K%3!<%IJQ49$5$l$F$$$k>l9g$O(B nil $B$GL5$$CM(B
$B$rJV$9!#(B
</defun>


<h2> Entity header $B$N>pJs(B
<node> Entity-header
<p>
<defun name="mime-fetch-field">
	    <args> field-name <opts> entity
<p>
<var>entity</var> $B$N(B header $BCf$N(B <var>field-name</var> $BMs$N(B body $B$rJV$9!#(B
<p>
$B7k2L$NJ8;zNs$O(B network $BI=8=$N$^$^$G$"$k!#(B
<p>
<var>entity</var> $B$,>JN,$5$l$?>l9g$O!"(B
<code>mime-message-structure</code> $B$NCM$rMQ$$$k!#(B
<p>
<var>field-name</var> $BMs$,B8:_$7$J$$>l9g$O(B <code>nil</code> $B$rJV$9!#(B
</defun>

<defun name="mime-read-field">
	    <args> field-name <opts> entity
<p>
<var>entity</var> $B$N(B header $BCf$N(B <var>field-name</var> $BMs$r9=J82r@O$7$?(B
$B7k2L$rJV$9!#(B
<p>
$B7k2L$N7A<0$OMsKh$K0[$J$k!#Hs9=B$2=Ms$N>l9g$OJ8;zNs$rJV$7!"9=B$2=Ms$N>l9g(B
$B$O$=$N7A<0$K=>$C$?(B list $B$rJV$9!#(B
<p>
$B7k2LCf$NJ8;zNs$O(B Emacs $B$NFbItI=8=$KJQ49$5$l$k!#(B
<p>
<var>entity</var> $B$,>JN,$5$l$?>l9g$O!"(B
<code>mime-message-structure</code> $B$NCM$rMQ$$$k!#(B
<p>
<var>field-name</var> $BMs$,B8:_$7$J$$>l9g$O(B nil $B$rJV$9!#(B
</defun>


<h2> Entity $B$NJ8;zI=8=(B
<node> entity formatting
<p>
<defun name="mime-insert-header">
	    <args> entity <opts> invisible-fields visible-fields
<p>
$B8=:_0LCV$K(B <var>entity</var> $B$NI|9f$7$?(B header $B$rA^F~$9$k!#(B
<p>
<var>invisible-fields</var> $B$H(B <var>visible-fields</var> $B$O@55,I=8=$N(B
list $B$G!"$=$l$>$l!"I=<($7$?$/$J$$(B field $BL>$HI=<($7$?$$MsL>$rI=8=$7$?$b$N(B
$B$G$"$k!#(B
<p>
<var>invisible-fields</var> $B$NMWAG$N$I$l$+$K(B match $B$7!"$+$D!"(B
<var>visible-fields</var> $B$NMWAG$N$I$l$K$b(B match $B$7$J$$Ms$OI=<($5$l$J(B
$B$$!#(B
<p>
<dref>encoded-word</dref> $B$OI|9f$5$l$k!#!X@8$NHs(B us-ascii $BJ8;z!Y$O(B 
<code>default-mime-charset</code> $B$H$7$F2r<a$5$l$k!#(B
</defun>

<defun name="mime-insert-text-content">
	    <args> entity
<p>
point $B$NA0$K(B <var>entity</var> $B$r(B text entity $B$H$7$FA^F~$7$^$9!#(B
<p>
<var>entity</var> $B$NFbMF$O(B <dref>MIME charset</dref> $B$H$7$FI|9f2=$5$l(B
$B$^$9!#(B<var>entity</var> $B$N(B Content-Type field $B$K(B charset paramter $B$,L5(B
$B$$$H!"(B<code>default-mime-charset</code> $B$,=i4|CM$H$7$F;H$o$l$^$9!#(B
</defun>

<defvar name="default-mime-charset">
<p>
$BE,@Z$J(B <dref>MIME charset</dref> $B$,8+$D$+$i$J$+$C$?>l9g$KMQ$$$i$l$k(B
MIME charset.
<p>
$BK\Mh$O(B APEL $B$NJQ?t$G$"$k!#(B
</defvar>


<h2> Entity $B$NFbMF(B
<node> Entity-content
<p>
<defun name="mime-entity-content">
	    <args> entity
<p>
<var>entity</var> $B$NFbMF$N(B byte $BNs$rJV$9!#(B
</defun>

<defun name="mime-insert-entity-content">
	    <args> entity
<p>
point $B$N0LCV$K(B <var>entity</var> $B$NFbMF$rA^F~$7$^$9!#(B
</defun>

<defun name="mime-write-entity-content">
	    <args> entity filename
<p>
<var>entity</var> $B$NFbMF$r(B <var>filename</var> $B$K=q$-9~$_$^$9!#(B
</defun>


<h2> Entity $B$N%M%C%H%o!<%/I=8=(B
<node> Entity-network-representation
<p>
<defun name="mime-insert-entity">
	    <args> entity
<p>
<var>entity</var> $B$N(B header $B$H(B body $B$r(B point $B$N$H$3$m$KA^F~$7$^$9!#(B
</defun>

<defun name="mime-write-entity">
	    <args> entity filename
<p>
<var>entity</var> $B$NI=8=$r(B <var>filename</var> $B$K=q$-9~$_$^$9!#(B
</defun>

<defun name="mime-write-entity-body">
	    <args> entity filename
<p>
<var>entity</var> $B$N(B body $B$r(B <var>filename</var> $B$K=q$-9~$_$^$9!#(B
</defun>


<h2> Entity $B$N(B buffer $B$K$h$kI=8=(B
<node> Entity buffer
<p>
<defun name="mime-entity-buffer">
	    <args> entity
<p>
<var>entity</var> $B$,B8:_$9$k(B buffer $B$rJV$9!#(B
</defun>

<defun name="mime-entity-point-min">
	    <args> entity
<p>
<var>entity</var> $B$,B8:_$9$k(B buffer $B$K$*$1$k!"(B<var>entity</var> $B$,@j$a$k(B
$BNN0h$N@hF,0LCV$rJV$9!#(B
</defun>

<defun name="mime-entity-point-max">
	    <args> entity
<p>
<var>entity</var> $B$,B8:_$9$k(B buffer $B$K$*$1$k!"(B<var>entity</var> $B$,@j$a$k(B
$BNN0h$NKvHx0LCV$rJV$9!#(B
</defun>

<defun name="mime-entity-header-start">
	    <args> entity
<p>
<var>entity</var> $B$,B8:_$9$k(B buffer $B$K$*$1$k!"(Bheader $B$,@j$a$kNN0h$N@hF,(B
$B0LCV$rJV$9!#(B
</defun>

<defun name="mime-entity-header-end">
	    <args> entity
<p>
<var>entity</var> $B$,B8:_$9$k(B buffer $B$K$*$1$k!"(Bheader $B$,@j$a$kNN0h$NKvHx(B
$B0LCV$rJV$9!#(B
</defun>

<defun name="mime-entity-body-start">
	    <args> entity
<p>
<var>entity</var> $B$,B8:_$9$k(B buffer $B$K$*$1$k!"(Bbody $B$,@j$a$kNN0h$N@hF,0L(B
$BCV$rJV$9!#(B
</defun>

<defun name="mime-entity-body-end">
	    <args> entity
<p>
<var>entity</var> $B$,B8:_$9$k(B buffer $B$K$*$1$k!"(Bbody $B$,@j$a$kNN0h$NKvHx0L(B
$BCV$rJV$9!#(B
</defun>


<h2> Entity $B$NI=8=$H<B8=(B
<node> mm-backend
<p>
Entity $B$OCj>]2=$5$l$?%G!<%?I=8=$G!"<B:]$N%G!<%?I=8=$H$7$F$OMQES$K1~$8$F(B
$B$5$^$6$^$J$b$N$,MxMQ$G$-$k$h$&$K@_7W$5$l$F$$$^$9!#(B
<p>
$B$3$3$G!"(Bentity $B$,$I$&$$$&<oN`$NI=8=$r9T$C$F$$$k$+$r<($9$N$,(B
<concept>representation-type</concept> $B$G!"(Bentity $B$r@8@.$9$k;~$K$O$3$l$r(B
$B;XDj$7$^$9!#(B<cf node="Entity Creation">
<p>
$BA0@a$^$G$K=R$Y$FMh$?(B entity $B$KBP$9$k=hM}$O!"(Bentity $B$KBP$7$F$=$N=hM}$r0M(B
$BMj$9$k$3$H$K$h$C$F<B8=$5$l$F$$$^$9!#(BEntity $B$O<+J,$N(B 
representation-type $B$rCN$C$F$*$j!"$=$N(B representation-type $B$K1~$8$F<B:](B
$B$N=hM}$r9T$&4X?t$r8F$S=P$7$^$9!#$3$N$h$&$J4X?t$r(B <concept>entity $B=hM}(B
method</concept> $B$H8F$S$^$9!#$^$?!"(Brepresentation-type $BKh$K$3$N$h$&$J4X(B
$B?t$r$^$H$a$?$b$N$r(B <concept>mm-backend</concept> $B$H8F$S$^$9!#(B
<p>
mm-backend $B$O(B representation-type $B$NL>A0$N@hF,$K(B <code>mm</code> $B$H$$$&(B
$B@\F,<-$rIU$1$?4X?tL>$+$i$J$k(B module $B$G!"$=$N(B module $BL>$OF1MM$K(B
representation-type $B$NL>A0$N@hF,$K(B <code>mm</code> $B$rIU$1$?$b$N$K$J$C$F(B
$B$$$^$9!#$3$N(B module $B$O(B representation-type $B$N(B entity $B$,:G=i$K@8@.$5$l$k(B
$B;~$K<+F0E*$K(B require $B$5$l$^$9!#(B


<h3> Entity $B$X$NJX$j(B
<node> Request for entity
<p>
<defun name="mime-entity-send">
	      <args> entity message <rest> args
<p>
<var>entity</var> $B$K(B <var>message</var> $B$rAw$k!#(B
<p>
<var>args</var> $B$O(B <var>message</var> $B$N0z?t$G$"$k!#(B
</defun>


<h3> mm-backend $B$N:n$jJ}(B
<node> mm-backend module
<p>
<defmacro name="mm-define-backend">
<args> type
<opts> parents
<p>
<var>type</var> $B$r(B mm-backend $B$H$7$FDj5A$7$^$9!#(B
<p>
<var>PARENTS</var> $B$,;XDj$5$l$F$$$k>l9g$O!"(B<var>type</var> $B$O(B prents
$B$r7Q>5$7$^$9!#$=$l$>$l$N(B parent $B$O(B representation-type $B$G$"$kI,MW$,$"(B
$B$j$^$9!#(B
<p>
$BNc(B:
<p>
<lisp>
(mm-define-backend chao (generic))
</lisp>
</defmacro>

<defmacro name="mm-define-method">
<args> name args <rest> body
<p>
<var>name</var> $B$r(B (nth 1 (car <var>args</var>)) backend $B$N(B method $B4X(B
$B?t$H$7$FDj5A$7$^$9!#(B
<p>
<var>args</var> $B$O(B lambda $B$N0z?t%j%9%H$N$h$&$J$b$N$G$9$,!"(B(car
<var>args</var>) $B$O;XDj$5$l$?(B parameter $B$G$"$kI,MW$,$"$j$^$9!#(B(car
(car <var>args</var>)) $B$OJQ?t$NL>A0$G!"(B(nth 1 (car <var>args</var>))
$B$O(B backend $B$NL>A0(B (representation-type) $B$G$9!#(B
<p>
$BNc(B:
<p>
<lisp>
(mm-define-method entity-cooked-p ((entity chao)) nil)
</lisp>
</defmacro>


<h1> Content-Type $BMs$N>pJs(B
<node> Content-Type
<p>
<concept>Content-Type $BMs(B</concept> $B$O(B <dref>media-type</dref> $B$d(B MIME
charset $B$H$$$C$?(B <dref>entity</dref> $B$NFbMF$N<oN`$dI=8=7A<0$J$I$r5-=R(B
$B$9$k$?$a$N$b$N$G!"(B<dref>RFC 2045</dref> $B$GDj5A$5$l$F$$$^$9!#(B

<memo>
<p>
$BNr;KE*$K$O(B RFC 1049 $B$G(B Content-Type $BMs$,Ds0F$5$l$F$$$k!#C"$7!"(BMIME $B$N(B
media-type $B$N$h$&$J(B type $B$H(B subtype $B$N6hJL$O$J$/!"(BMIME charset $B$N$h$&(B
$B$JJ8;zId9f$N<oN`$rI=8=$9$k$3$H$b$G$-$J$$!#(B
</memo>

<p>
FLIM $B$O(B Content-Type $BMs$r9=J82r@O$9$k4X?t$H(B Content-Type $BMs$N2r@O7k2L$r(B
$B3JG<$9$k9=B$BN(B <concept>mime-content-type</concept> $B$rDs6!$7$^$9!#(B


<h2> Content-Type $BMs$N7A<0(B
<node> Content-Type field
<p>
Content-Type $BMs$N7A<0$O0J2<$N$h$&$KDj5A$5$l$F$$$^$9!'(B

<quote>
``Content-Type'' ``:'' <concept>type</concept> ``/''
<concept>subtype</concept> *( ``;'' <concept>parameter</concept> )
</quote>
<p>
$BNc$($P!"(B

<quote>
<verb>
Content-Type: image/jpeg
</verb>
</quote>

<noindent>
$B$d(B

<quote>
<verb>
Content-Type: text/plain; charset=iso-2022-jp
</verb>
</quote>

<noindent>
$B$J$I$N$h$&$KMQ$$$i$l$^$9!#(B
<p>
$B$3$3$G!"(B`type' $B$H(B `subtype' $B$O(B entity $B$N7A<0$r<($9$b$N$G!"N><T$rAm>N$7(B
$B$F!"(B`media-type' $B$H8F$V$3$H$K$7$^$9!#>e5-$NNc$K$*$1$k(B `image/jpeg' $B$d(B
`text/plain' $B$O(B media-type $B$N#1$D$G$9!#(B

<memo>
<p>
Content-Type $BMs$N$J$$(B entity $B$O(B

<quote>
<verb>
Content-Type: text/plain; charset=us-ascii
</verb>
</quote>

<noindent>
$B$H$7$F2r<a$5$l$k!#(B<cf node="us-ascii">
</memo>


<h2> mime-content-type $B9=B$BN(B
<node> mime-content-type
<p>
<define type="Structure" name="mime-content-type">
<p>
Content-Type $BMs$N>pJs$r3JG<$9$k$?$a$N9=B$BN!#(B
<p>
$B$3$N9=B$BN$r;2>H$9$k$K$O(B <code>mime-content-type-$BMWAGL>(B</code> $B$H$$$&L>(B
$BA0$N;2>H4X?t$rMQ$$$k!#(B
<p>
$B$3$N9=B$BN$NMWAG$O0J2<$NDL$j$G$"$k!'(B

<vl>
<dt>primary-type<dd>media-type $B$N<g7?(B (symbol).
</dd>
<dt>subtype<dd>media-type $B$NI{7?(B (symbol).
</dd>
<dt>parameters<dd>Content-Type $BMs$N(B parameter ($BO"A[(B list).
</dd>
</vl>
</define>

<defun name="make-mime-content-type">
	  <args> type subtype
	  <opts> parameters
<p>content-type $B$N@8@.;R!#(B
</defun>

<defun name="mime-content-type-parameter">
<args> content-type parameter
<p>
<var>content-type</var> $B$N(B <var>parameter</var> $B$NCM$rJV$9!#(B
</defun>


<h2> Content-Type $BMs$N2r@O4o(B
<node> Content-Type parser
<p>
<defun name="mime-parse-Content-Type">
	  <args> string
<p>
<var>string</var> $B$r(B content-type $B$H$7$F2r@O$7$?7k2L$rJV$9!#(B
</defun>

<defun name="mime-read-Content-Type">
<p>
$B8=:_$N(B buffer $B$N(B Content-Type $BMs$rFI$_<h$j!"2r@O$7$?7k2L$rJV$9!#(B
<p>
Content-Type $BMs$,B8:_$7$J$$>l9g$O(B nil $B$rJV$9!#(B
</defun>


<h2> Content-Type $B$K4X$9$kM-MQ$J4X?t(B
<node> Content-Type utility
<p>
<defun name="mime-type/subtype-string">
	  <args> type <opts> subtype
<p>
<var>type</var> $B$H(B <var>subtype</var> $B$+$i(B type/subtype $B7A<0$NJ8;zNs$rJV(B
$B$9!#(B
</defun>


<h1> Content-Disposition $BMs$N>pJs(B
<node> Content-Disposition
<p>
<concept>Content-Disposition $BMs(B</concept> $B$O(B entity $B$NI=<($d(B file $BL>$J$I(B
$B$NB0@-$K$J$I$K4X$9$k>pJs$r5-=R$9$k$?$a$N$b$N$G$9!#(B

<rfc number="2183" type="Standards Track"
	      author="S. Dorner, K. Moore and R. Troost"
	      title="Communicating Presentation Information in
	      Internet Messages: The Content-Disposition Header"
	      date="August 1997">
<p>
FLIM $B$O(B Content-Disposition $BMs$r9=J82r@O$9$k4X?t$H(B Content-Disposition 
$BMs$N2r@O7k2L$r3JG<$9$k9=B$BN(B 
<concept>mime-content-disposition</concept> $B$rDs6!$7$^$9!#(B


<h2> mime-content-disposition $B9=B$BN(B
<node> mime-content-disposition
<p>
<define type="Structure" name="mime-content-disposition">
<p>
Content-Disposition $BMs$N2r@O7k2L$r<}$a$k$?$a$N9=B$BN!#(B
<p>
$B$3$N9=B$BN$r;2>H$9$k$K$O(B <code>mime-content-disposition-$BMWAGL>(B</code> $B$H(B
$B$$$&L>A0$N;2>H4X?t$rMQ$$$k!#(B
<p>
$B$3$N9=B$BN$NMWAG$O0J2<$NDL$j$G$"$k!'(B

<vl>
<dt>disposition-type<dd>disposition-type (symbol).
</dd>
<dt>parameters<dd>Content-Disposition $BMs$N(B parameter ($BO"A[(B list).
</dd>
</vl>
</define>

<defun name="mime-content-disposition-parameter">
<args> content-disposition parameter
<p>
<var>content-disposition</var> $B$N(B <var>parameter</var> $B$NCM$rJV$9!#(B
</defun>

<defun name="mime-content-disposition-filename">
<args> content-disposition
<p>
<var>content-disposition</var> $B$N(B filename $B$NCM$rJV$9!#(B
</defun>


<h2> Content-Disposition $BMs$N2r@O4o(B
<node> Content-Disposition parser
<p>
<defun name="mime-parse-Content-Disposition">
	    <args> string
<p>
<var>string</var> $B$r(B content-disposition $B$H$7$F2r@O$7$?7k2L$rJV$9!#(B
</defun>

<defun name="mime-read-Content-Disposition">
<p>
$B8=:_$N(B buffer $B$N(B Content-Disposition $BMs$rFI$_<h$j!"2r@O$7$?7k2L$rJV$9!#(B
<p>
Content-Disposition $BMs$,B8:_$7$J$$>l9g$O(B nil $B$rJV$9!#(B
</defun>


<h1> $BId9f2=K!(B
<node> Content-Transfer-Encoding
<p>
<concept>Content-Transfer-Encoding $BMs(B</concept> $B$O(B entity $B$NId9f2=K!$r5-(B
$B=R$9$k$?$a$N$b$N$G$9!#(B
<p>
FLIM $B$G$O(B Content-Transfer-Encoding $BMs$r9=J82r@O$9$k4X?t$rDs6!$7$^$9!#$3(B
$B$l$i$N4X?t$O(B Content-Transfer-Encoding $BMs$N>pJs$OJ8;zNs$GI=8=$7$^$9!#(B
<p>
$B$^$?!"(BContent-Transfer-Encoding $B$K4p$E$$$FId9f2=!&I|9f2=$r9T$&4X?t$bDs(B
$B6!$5$l$^$9!#(B


<h2> Content-Transfer-Encoding $BMs$N2r@O4o(B
<node> Content-Transfer-Encoding parser
<p>
<defun name="mime-parse-Content-Transfer-Encoding">
	  <args> string
<p>
<var>string</var> $B$r(B content-transfer-encoding $B$H$7$F2r@O$7$?7k2L$rJV$9!#(B
</defun>

<defun name="mime-read-Content-Transfer-Encoding">
	  <opts>default-encoding
<p>
$B8=:_$N(B buffer $B$N(B Content-Transfer-Encoding $BMs$rFI$_<h$j!"2r@O$7$?7k2L$r(B
$BJV$9!#(B
<p>
Content-Transfer-Encoding $BMs$,B8:_$7$J$$>l9g$O(B
<var>default-encoding</var> $B$rJV$9!#(B
</defun>


<h2> $BId9f2=!&I|9f2=(B
<node> encoder/decoder
<p>
<defun name="mime-encode-region">
	    <args> start end encoding
<p>
$B8=:_$N(B buffer $B$N(B <var>start</var> $B$+$i(B <var>end</var> $B$^$G$N(B region $B$r(B
<var>encoding</var> $B$r;H$C$FId9f2=$7$^$9!#(B
</defun>

<defun name="mime-decode-region">
	    <args> start end encoding
<p>
$B8=:_$N(B buffer $B$N(B <var>start</var> $B$+$i(B <var>end</var> $B$^$G$N(B region $B$r(B
<var>encoding</var> $B$r;H$C$FI|9f2=$7$^$9!#(B
</defun>


<defun name="mime-decode-string">
	    <args> string encoding
<p>
<var>string</var> $B$r(B <var>encoding</var> $B$H$7$FI|9f$7$?7k2L$rJV$9!#(B
</defun>


<defun name="mime-insert-encoded-file">
	    <args> filename encoding
<p>
<var>ENCODING</var> format $B$GId9f2=$5$l$?(B file <var>FILENAME</var> $B$r(B
$BA^F~$9$k!#(B
</defun>

<defun name="mime-write-decoded-region">
	      <args> start end filename encoding
<p>
<var>encoding</var> $B$GId9f2=$5$l$?8=:_$N(B region $B$rI|9f2=$7$F(B
<var>filename</var>$B$K=q$-9~$_$^$9!#(B
<p>
<var>start<var> $B$H(B <var>end</var> $B$O(B buffer $B$N0LCV$G$9!#(B
</defun>


<h2> $BB>$N(B utility
<node> Encoding information
<p>
<defun name="mime-encoding-list">
	    <opts> SERVICE
<p>
Content-Transfer-Encoding $B$N(B list $B$rJV$7$^$9!#(B
<p>
<var>service</var> $B$,;XDj$5$l$F$$$k$H!"$=$l$KBP$9$k(B
Content-Transfer-Encoding $B$rJV$7$^$9!#(B
</defun>

<defun name="mime-encoding-alist">
	    <opts> SERVICE
<p>
$BJd40$N$?$a$N(B Content-Transfer-Encoding $B$NI=$rJV$7$^$9!#(B
<p>
<var>service</var> $B$,;XDj$5$l$F$$$k>l9g$O$=$l$KBP$9$k(B
Content-Transfer-Encoding $B$N(B list $B$rJV$7$^$9!#(B
</defun>


<h2> $BId9f2=(B/$BI|9f2=(B module $B$N=q$-J}(B
<node> mel-backend
<p>
<defmacro name="mel-define-method">
<args> name args <rest> body
<p>
<var>name</var> $B$r(B (nth 1 (car (last <var>args</var>))) backend $B$N(B
method $B4X?t$H$7$FDj5A$7$^$9!#(B
<p>
<var>args</var> $B$O(B lambda $B$N0z?t(B list $B$H;w$F$$$^$9$,!"(B(car (last
<var>args</var>)) $B$O;XDj$5$l$?(B parameter $B$G$"$kI,MW$,$"$j$^$9!#(B(car
(car (last <var>args</var>))) $B$OJQ?t$NL>A0$G!"(B(nth 1 (car (last
<var>args</var>))) $B$O(B backend $B$NL>A0(B (encoding) $B$G$9!#(B
<p>
$BNc(B:
<p>
<lisp>
(mel-define-method mime-write-decoded-region (start end filename
						    (nil "base64"))
  "Decode and write current region encoded by base64 into FILENAME.
START and END are buffer positions."
  (interactive
   (list (region-beginning) (region-end)
	 (read-file-name "Write decoded region to file: ")))
  (let ((str (buffer-substring start end)))
    (with-temp-buffer
      (insert (decode-base64-string str))
      (write-region-as-binary (point-min) (point-max) filename)
      )))
</lisp>
</defmacro>

<defmacro name="mel-define-method-function">
<args> spec function
<p>
<var>spec</var> $B$N4X?tDj5A$r(B <var>function</var> $B$K@_Dj$7$^$9!#(B
<p>
<var>spec</var> $B$N:G=i$NMWAG$O(B service $B$G$9!#(B
<p>
<var>args</var> $B$N;D$j$O(B lambda $B$N0z?t(B list $B;w$F$$$^$9$,!"(B(car (last
<var>args</var>)) $B$O;XDj$5$l$?(B parameter $B$G$"$kI,MW$,$"$j$^$9!#(B(car
(car (last <var>args</var>))) $B$OJQ?t$NL>A0$G!"(B(nth 1 (car (last
<var>args</var>))) $B$O(B backend $B$NL>A0(B (encoding) $B$G$9!#(B
<p>
$BNc(B:
<p>
<lisp>
(mel-define-method-function (mime-encode-string string (nil "base64"))
			    'encode-base64-string)
</lisp>
</defmacro>


<h2> $BId9f2=(B/$BI|9f2=(B service $B$rDI2C$9$kJ}K!(B
<node> generic function for mel-backend
<p>
<defmacro name="mel-define-service">
<args> name
<opts> args doc-string
<p>
<var>name</var> $B$r(B Content-Transfer-Encoding $B$N(B service $B$H$7$FDj5A$7$^(B
$B$9!#(B
<p>
<var>args</var> $B$,;XDj$5$l$F$$$k$H!"(B<var>name</var> $B$O(B service $B$N(B
generic function $B$H$7$FDj5A$5$l$^$9!#(B
<p>
$BNc(B:
<p>
<lisp>
(mel-define-service encoded-text-encode-string (string encoding)
  "Encode STRING as encoded-text using ENCODING.
ENCODING must be string.")
</lisp>
</defmacro>


<h1> Header $B$N(B network $BI=8=(B
<node> encoded-word
<p>
encoded-word $B$O(B header $B$GHs(B <dref>ASCII</dref> $BJ8;z$rI=8=$9$k$?$a$N7A(B
$B<0$G!"(B<concept>RFC 2047</concept> $B$GDj5A$5$l$F$$$^$9!#(B
<p>
<rfc number="2047" type="Standards Track" author="K. Moore"
	      title="MIME (Multipurpose Internet Mail Extensions) Part
	      Three: Message Header Extensions for Non-ASCII Text"
	      date="November 1996" obsolete="1521,1522,1590">
<p>
$B$^$?!"9T57$N0-$$$3$H$@$H8@$($^$9$,!"(Bencoded-word $B$rMQ$$$:$KHs(B 
<dref>ASCII</dref> $BJ8;z$r(B header $B$KF~$l$?5-;v$bB8:_$7$^$9!#(B
<p>
FLIM $B$O$3$l$i$rId9f2=!&I|9f2=$9$k5!G=$rDs6!$7$^$9!#(B


<h2> Header $B$NId9f2=!&I|9f2=(B
<node> Header encoder/decoder
<p>
<defun name="eword-decode-header">
	    <opts> code-conversion separator
<p>
Header $BCf$N(B encoded-word $B$rI|9f$9$k!#(B
<p>
$B$b$7(B <var>code-conversion</var> $B$,(B <code>nil</code> $B$J$i!"(Bencoded-word 
$B$@$1$,I|9f$5$l$k!#$b$7!"(B<var>code-conversion</var> $B$,(B <dref>MIME
charset</dref> $B$J$i!"Hs(B ASCII bit patterns $B$O$=$N(B MIME charset $B$H$7$F(B
$BI|9f$5$l$k!#$3$l0J30$N>l9g!"Hs(B ASCII bit patterns $B$O(B
<code>default-mime-charset</code>. $B$H$7$FI|9f$5$l$k!#(B<cf node="entity
formatting">
<p>
$B$b$7(B <var>separator</var> $B$,(B <code>nil</code> $B$G$J$1$l$P!"$=$NCM$,(B
header separator $B$H$7$FMQ$$$i$l$k!#(B
</defun>

<defun name="eword-encode-header">
	    <opts> code-conversion
<p>
Header $B$r(B network $BI=8=$KId9f2=$9$k!#(B
<p>
$B3F(B field $B$O(B <code>mime-field-encoding-method-alist</code> $B$G;XDj$5$l(B
$B$?J}<0$GId9f2=$5$l$k!#(B
</defun>

<defvar name="mime-field-encoding-method-alist">
<p>
Field $B$rId9f2=$9$kJ}K!$r;XDj$9$kO"A[(B list$B!#3F(B element $B$O(B (FIELD
. METHOD) $B$NMM$K$J$C$F$$$k!#(B
<p>
METHOD $B$,(B <code>mime</code> $B$G$"$l$P!"(BFIELD $B$O(B MIME format $B$KId9f2=$5(B
$B$l$k(B (encoded-word)$B!#(B
<p>
METHOD $B$,(B <code>nil</code> $B$G$"$l$P!"(BFIELD $B$OId9f2=$5$l$J$$!#(B
<p>
METHOD $B$,(B MIME charset $B$G$"$l$P!"(BFIELD $B$O%M%C%H%o!<%/%3!<%I$KJQ49$7$J(B
$B$1$l$P$J$i$J$$$H$-$K(B charset $B$KId9f2=$5$l$k!#(B
<p>
$B$=$&$G$J$1$l$P!"(BFIELD $B$O%M%C%H%o!<%/%3!<%I$KJQ49$7$J$1$l$P$J$i$J$$$H$-(B
$B$K(B $BJQ?t(B <code>default-mime-charset</code> $B$GId9f2=$5$l$k(B
</defvar>


<h1> $B0lHL@_Dj(B
<node> custom
<p>
<define type="group" name="mime">
<p>
MIME $B4XO"5!G=$K4X$9$k(B group.
<p>
<code>mail</code> $B$H(B <code>news</code> $B$KB0$9$k!#(B
</define>


<h1> $BIUO?(B
<node> Appendix

<h2> $BMQ8l(B
<node> Glossary

<h3> 7bit
<node> 7bit
<p>
$B$3$3$G$O(B 0 $B$+$i(B 127 $B$N@0?t$r;X$9!#(B
<p>
0 $B$+$i(B 127 $B$N@0?t$NNs$GI=8=$G$-$k$h$&$J(B data $B$r(B ``7bit $B$N(B data'' $B$H8F(B
$B$V!#(B
<p>
$B$^$?!"(B0 $B$+$i(B 31 $B$*$h$S(B 127 $B$GI=8=$5$l$k@)8fJ8;z$H(B 32 $B$GI=8=$5$l$k6uGr(B
$B$H(B 33 $B$+$i(B 126 $B$GI=8=$5$l$k?^7AJ8;z$+$i$J$kJ8;zNs$N$3$H$r(B ``7bit $B$NJ8(B
$B;zNs(B'' $B$H8F$V!J$3$l$O(B <dref>ISO 2022</dref> $B$N!V(B7 $BC10L7O!W$HF1MM!K!#(B
<p>
$BEAE}E*$J(B Internet $B$N(B <dref>MTA</dref> $B$O(B 7bit $B$N(B data $B$rE>Aw$G$-$k$N$G!"(B
7bit $B$N(B data $B$O(B <dref>Quoted-Printable</dref> $B$d(B <dref>Base64</dref> 
$B$H$$$C$?JQ49$r9T$o$J$/$F$b$=$N$^$^E>Aw$G$-$k!#(B
<p>
$B$7$+$7!"(B7bit $B$G$"$l$P$I$s$J(B data $B$G$bNI$$$H$O$$$($J$$!#$J$<$J$i!"#19T(B
$B$ND9$5$,$"$^$j$KD9$$$H!"(BMTA $B$O$=$N(B message $B$rE>Aw$9$k$3$H$,$G$-$J$$$+(B
$B$i$G$"$k!#$A$J$_$K!"(B<dref>RFC 821</dref> $B$O#19T$O2~9TJ8;z$r=|$$$F(B 998
byte $B0JFb$G$"$k$3$H$r5a$a$F$$$k!#$h$C$F!"$3$l0J>e$N9T$,4^$^$l$k2DG=@-(B
$B$N$"$k(B data, $BNc$($P!"(BPostscript $B$N(B data $B$J$I$O(B Quoted-Printable $BEy$G(B 
encode$B$9$kI,MQ$,$"$k!#(B


<h3> 8bit
<node> 8bit
<p>
$B$3$3$G$O(B 0 $B$+$i(B 255 $B$N@0?t$r;X$9!#(B
<p>
0 $B$+$i(B 255 $B$N@0?t$NNs$GI=8=$G$-$k$h$&$J(B data $B$r(B ``8bit $B$N(B data'' $B$H8F(B
$B$V!#(B
<p>
$B$^$?!"(B0 $B$+$i(B 31, 127 $B$*$h$S(B 128 $B$+$i(B 159 $B$GI=8=$5$l$k@)8fJ8;z$H(B 32 $B$G(B
$BI=8=$5$l$k6uGr$H(B 33 $B$+$i(B 126 $B$H(B 160 $B$+$i(B 255 $B$GI=8=$5$l$k?^7AJ8;z$+$i(B
$B$J$kJ8;zNs$N$3$H$r(B ``8bit $B$NJ8;zNs(B'' $B$H8F$V!J$3$l$O(B <dref>ISO
2022</dref> $B$N!V(B8 $BC10L7O!W$HF1MM!K!#(B
<p>
<dref>iso-8859-1</dref> $B$d(B <dref>euc-kr</dref> $B$H$$$C$?Id9f2=J8;z=89g(B
$B$O(B 8bit $B$NJ8;zNs$G$"$k!#(B
<p>
$BEAE}E*$J(B Internet $B$N(B <dref>MTA</dref> $B$O(B <dref>7bit</dref> $B$N(B data $B$7(B
$B$+E>Aw$G$-$J$$$N$G!"$=$&$7$?(B MTA $B$r7PM3$9$k>l9g!"(B
<dref>Quoted-Printable</dref> $B$d(B <dref>Base64</dref> $B$H$$$C$?JQ49$r9T(B
$B$o$J$/$F$O$J$i$J$$!#(B
<p>
$B$7$+$7!":G6a$G$O(B 8bit $B$NJ8;zNs$r$=$N$^$^DL$9$3$H$,$G$-$k(B MTA $B$bEP>l$7(B
$B$F$-$?$N$G!"$=$N$^$^Aw$k$3$H$,$G$-$k>l9g$bA}$($F$-$?!#(B
<p>
$B$7$+$7!"(B8bit $B$G$"$l$P$I$s$J(B data $B$G$bNI$$$H$O$$$($J$$!#$J$<$J$i!"#19T(B
$B$ND9$5$,$"$^$j$KD9$$$H!"(BMTA $B$O$=$N(B message $B$rE>Aw$9$k$3$H$,$G$-$J$$$+(B
$B$i$G$"$k!#$A$J$_$K!"(B<dref>RFC 821</dref> $B$O#19T$O2~9TJ8;z$r=|$$$F(B 998
byte $B0JFb$G$"$k$3$H$r5a$a$F$$$k!#$h$C$F!"$3$l0J>e$N9T$,4^$^$l$k2DG=@-(B
$B$N$"$k(B data, $BNc$($P!"(BPostscript $B$N(B data $B$J$I$O(B Quoted-Printable $BEy$G(B 
encode$B$9$kI,MQ$,$"$k!#(B
<p>
$B$^$?!"$3$&$7$?M}M3$+$i!"#19T$,(B 999 byte $B0J>e$N9T$,B8:_$9$k2DG=@-$N$"$k(B
data $B$O(B <a node="binary"><concept>binary</concept></a> $B$H8F$V$3$H$K$9(B
$B$k!#(B
<p>
$B$A$J$_$K!"(B7bit $B$GI=8=$G$-$k(B data $B$O(B 8bit $B$G$bI=8=$G$-$k!#$h$C$F!"(B
``8bit'' $B$H8@$C$?>l9g!"#19T$,(B 998 byte $B0J2<$NG$0U$N(B data $B$r;X$9$3$H$,(B
$B$"$k!#(B


<h3> ASCII
<node> ASCII
<p>
$B%"%a%j%+O"K.$G;H$o$l$kJ8;z$rId9f2=$7$?(B<dref>$BId9f2=J8;z=89g(B</dref>$B!#(B
A-Z, a-z $B$N(B Latin $BJ8;z$H?t;z!"4v$D$+$N5-9f$+$i$J$k!#(BISO 646 $B$N0l$D$G!"(B
$B8=:_$O9q:]4p=`HG(B (IRV) $B$K$J$C$F$$$k!#(B

<standard abbrev="ASCII" title-en="Coded Character Set -- 7-Bit
	      American Standard Code for Information Interchange"
	      number="ANSI X3.4" year="1986">


<h3> Base64
<node> Base64
<p>
<dref>RFC 2045</dref> $B$GDj5A$5$l$F$$$k(B <dref>MIME</dref> $B$K$*$1$k(B <a
node="binary">binary data</a> $B$N(B network $B$G$NJQ49K!$N#1$D!#(B
<p>
$B!X(B64 $B?J?t!Y$H$$$&0UL#$G!"(B3 byte $B$N(B data $B$r(B 0 $B$+$i(B 63 $B$N?t$rI=$9(B 
<dref>ASCII</dref> 4 $BJ8;z$KJQ49$9$kJ}K!!#!J$b$7!"(B4 $BJ8;z$K$J$i$J$1$l$P(B 
<concept>pad</concept> $B$H8F$P$l$k5M$aJ*$r$7$FD9$5$rD4@0$9$k!K(B
<p>
$B$3$N(B 65 $B<oN`$NJ8;z$O(B ASCII $B$H(B EBCDIC $B$N6&DLItJ,$+$iA*$P$l$F$*$j!"(B
Internet $B0J30$N(B network $B$r7PM3$9$k>l9g$G$b0BA4$KE>Aw$G$-$k$h$&$K@_7W$5(B
$B$l$F$$$k!#(B


<h3> binary
<node> binary
<p>
$BG$0U$N(B byte $BNs$r(B <concept>binary</concept> $B$H8F$V!#(B
<p>
<dref>8bit</dref> $B$H0[$J$k$N$O(B data $B$K9T$N9=B$$r2>Dj$7$J$$$3$H$G$"$k!#(B
<p>
$B$^$?!"9T$N9=B$$,$"$C$F$b!"(B999 byte $B0J>e$+$i$J$k9T$,$"$k>l9g$b(B binary 
$B$H8F$V$3$H$K$9$k!#(B
<p>
$B$A$J$_$K!"(B<dref>7bit</dref> $B$d(B 8bit $B$GI=8=$G$-$k(B data $B$O(B binary $B$G$bI=(B
$B8=$G$-$k!#$h$C$F!"(B<concept>binary data</concept> $B$H8@$C$?>l9g!"G$0U$N(B 
data $B$r;X$9$3$H$,$"$k!#(B


<h3> Coded character set$B!JId9f2=J8;z=89g!K(B, Character code$B!JJ8;zId9f!K(B
<node> Coded character set
<p>
$BJ8;z$H(B byte $BNs$H#1BP#1$KBP1~IU$1$k[#Kf$G$J$$5,B'$N=89g!#(B


<h3> media-type
<node> media-type
<p>
<dref>MIME</dref> $B$K$*$1$k(B <dref>entity</dref> $B$N<oN`!#(B
<concept>primary-type</concept> $B$H(B <concept>subtype</concept> $B$+$i$J$k!#(B
<dref>RFC 2046</dref> $B$GDj5A$5$l$F$$$k!#(B
<p>
primary-type $B$OI8=`$G$O(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>
$B$,Dj5A$5$l!"$=$l$>$l$K$O(B application/octet-stream, audio/basic,
image/jpeg, <dref>multipart/mixed</dref>, <dref>text/plain</dref>,
video/mpeg $B$J$I$N$5$^$6$^$J(B subtype $B$,Dj5A$5$l$F$$$k!#(B

<memo title="$BCm0U(B">
<p>
$B$3$3$G$O!"(Btext/plain $B$J$I$N(B type/subtype $B$NAH$r$7$P$7$P(B 
<concept>primary-type/subtype</concept> $B$H=q$/!#(B
</memo>

<p>
media-type $B$O!"(BRFC 2046 $B$GDj5A$5$l$F$$$k$b$N$K2C$($F!"EPO?$9$k$3$H$b$G(B
$B$-$k!#8=:_!"EPO?$5$l$F$$$k$b$N$O(B <a
href="ftp://ftp.isi.edu/in-notes/iana/assignments/media-types">MEDIA
TYPES</a> $B$G;2>H$G$-$k!#(B
<p>
$B$^$?!"(Btype $B$b$7$/$O(B subtype $B$K!"A0$K(B `x-' $B$rIU$1$?(B 
<concept>x-token</concept> $B$rMQ$$$k$3$H$K$h$j!"EPO?$5$l$F$$$J$$$b$N$r(B
$B;dE*$KMQ$$$k$3$H$b$G$-$k!#$7$+$7!"EvA3$N$3$H$J$,$i!"$3$&$7$?;dE*$J(B 
media-type $B$ONJ2r$rF@$?<T$N4V$G$7$+2r<a$G$-$J$$$N$GMxMQ$K$OCm0U$9$k$3(B
$B$H!#(B
<p>
<cf node="Content-Type">


<h3> message
<node> message
<p>
$B$3$3$G$O(B mail $B$H(B news $B5-;v$NAm>N$H$7$FMQ$$$k!#(B


<h3> MIME
<node> MIME
<p>
<concept>Multipurpose Internet Mail Extensions</concept> $B$NN,$G!"(B
Internet $B$N(B mail $B$d(B news $B$G(B <a node="us-ascii">us-ascii plain text</a> 
$B0J30$NJ8;z$r;H$&$?$a$N(B <dref>RFC 822</dref> $B$KBP$9$k3HD%!#(B
<p>
RFC 2045 $B$OKAF,$G<!$N$h$&$K=R$Y$F$$$k!'(B
<p>
STD 11, RFC 822 $B$O!"(BUS-ASCII message header $B$K4X$7$FHs>o$K>\:Y$K5,Dj$7(B
$B$?(B message $BI=8=(B protocol $B$rDj5A$7$F$$$k!#$7$+$7!"$=$l$OC1$K(B flat $B$J(B 
US-ASCII text $B$N$_$KN1$^$j!"(Bmessage $B$NFbMF$d(B message body $B$K4X$9$k5,Dj(B
$B$O$J$5$l$F$$$J$$!#(BMultipurpose Internet Mail Extensions, $B$"$k$$$O(B MIME 
$B$HAm>N$5$l$k!"$3$N0lO"$NJ8=q$O!"0J2<$N;v$r2DG=$H$9$k$?$a$K(B message $B$N(B
$B7A<0$r:FDj5A$7$?!'(B

<ol>
<li>$BJ8=q(B message body $B$K$*$1$k(B US-ASCII $B0J30$NJ8;z=89g(B
</li>
<li>$BHsJ8=q(B message body
</li>
<li>$BJ#?t$NItJ,$+$i$J$k(B message body
</li>
<li>US-ASCII $B0J30$NJ8;z=89g$+$i$J$kJ8=q(B header $B>pJs(B
</ol>

<p>
<dref>RFC 2045</dref>, <dref>RFC 2046</dref>, <a
node="encoded-word">RFC 2047</a>, <dref>RFC 2048</dref>, <dref>RFC
2049</dref> $B$GDj5A$5$l$F$$$k!#(B


<h3> MIME charset
<node> MIME charset
<p>
<dref>Content-Type</dref> $BMs$d(B <dref>encoded-word</dref> $B$N(B charset
parameter $B$GMQ$$$i$l$kEPO?$5$l$?(B<a node="Coded character set">$BId9f2=J8(B
$B;z=89g(B</a>$B!#(B
<p>
<dref>RFC 2045</dref> $B$GDj5A$5$l$F$$$k!#(B
<p>
iso-2022-jp $B$d(B euc-kr $B$O$=$N#1$D!#(B


<h3> MTA
<node> MTA
<p>
<concept>Message Transfer Agent</concept> $B$NN,$G!"(Bqmail $B$d(B sendmail $B$J(B
$B$I$N(B mail $BG[Aw(B program $B$H(B inn $B$J$I$N(B news server $B$NAm>N!#(B
<p>
<cf node="MUA">


<h3> MUA
<node> MUA
<p>
<concept>Message User Agent</concept> $B$NN,$G!"(Bmail reader $B$H(B news
reader $B$NAm>N!#(B
<p>
<cf node="MTA">


<h3> Quoted-Printable
<node> Quoted-Printable
<p>
<dref>RFC 2045</dref> $B$GDj5A$5$l$F$$$k(B <dref>MIME</dref> $B$K$*$1$k(B 
<dref>binary data</dref> $B$N(B network $B$G$NJQ49K!$N#1$D!#(B
<p>
`=' $B$d@)8fJ8;z$d(B 128 $B0J>e$NJ8;z$J$I$O(B `=AF' $B$N$h$&$K(B `=' $B$N8e$KB3$/(B 16 
$B?J?t$GI=8=$9$k!#$3$N$?$a!"(B<dref>ASCII</dref> $BJ8;zCf?4$N(B data $B$G$O(B 
<dref>Base64</dref> $B$KHf$Y$k$H2DFI@-$,9b$/$J$k2DG=@-$,$"$k!#(B
<p>
$B$7$+$7$J$,$i!"(BEBCDIC $B$K$OB8:_$7$J$$J8;z$rMxMQ$9$k>l9g!"(BEBCDIC $B$rMxMQ$7(B
$B$F$$$k(B network $B$G$O0BA4$KE>Aw$9$k$3$H$,$G$-$:!"(BBase64 $B$KHf$Y$F0BA4@-$O(B
$BDc$$!#(B


<h3> RFC 822
<node> RFC 822
<p>
Internet mail $B$N<g$K(B <concept>message header</concept> $B$K4X$9$k7A<0$K(B
$B4X$9$kI8=`$rDj$a$F$$$k(B RFC.

<memo>
<p>
news message $B$b$3$l$K=`$8$F$$$k$N$G!"(B<concept>Internet mail</concept> 
$B$H=q$/$h$j$b!"(B<concept>Internet message</concept> $B$H=q$$$?J}$,NI$$$+$b(B
$B$7$l$J$$!#(B
</memo>

<rfc number="822" type="STD 11" author="D. Crocker" title="Standard
	      for the Format of ARPA Internet Text Messages"
	      date="August 1982">


<h3> RFC 1036
<node> RFC 1036
<p>
USENET $B$G$N(B message $B$N7A<0$rDj$a$?(B RFC.  <dref>RFC 822</dref> $B$N(B 
subset $B$K$J$C$F$$$k!#(BInternet $B$NI8=`$G$O$J$$$,!"(BUSENET $B0J30$N(B netnews 
$B$G$b$3$l$K=`$8$F$$$k$b$N$,B?$$!#(B

<rfc name="USENET" number="1036" author="M. Horton and R. Adams"
	      title="Standard for Interchange of USENET Messages"
	      date="December 1987" obsolete="850">


<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>
$B=qBN$dAHHG$K4X$9$k>pJs$r;}$?$J$$(B<a node="Coded character set">$BJ8;zId9f(B
</a>$B$N$_$GI=8=$5$l$k(B text $B>pJs!#(B<cf node="text/plain">


<h3> us-ascii
<node> us-ascii
<p>
$B%"%a%j%+O"K.$J$I$G;H$o$l$k1Q8l$J$I$rI=8=$9$k$?$a$N(B <dref>MIME
charset</dref> $B$N#1$D!#(B
<p>
<dref>ASCII</dref> $B$N$_$+$i$J$j(B ISO 2022 $B$K$h$kId9f3HD%$O5v$5$l$J$$!#(B
<p>
Internet message $B$K$*$1$kI8=`$N(B<a node="Coded character set">$BId9f2=J8(B
$B;z=89g(B</a>$B$G$"$j!"L@<(E*$K(B MIME charset $B$,<($5$l$J$$>l9g$O86B'$H$7$F(B 
<concept>us-ascii</concept> $B$,;H$o$l$k!#(B
<p>
$B$^$?!"(B<dref>RFC 822</dref> $B$K$*$1$k(B <concept>ASCII</concept> 
$B$O(B us-ascii $B$G$"$k!#(B


<h2> bug $BJs9p$N;EJ}(B
<node> Bug report
<p>
FLIM $B$N%P%0$r8+$D$1$?$i!"0J2<$N(B address $B$K(B mail $B$rAw$C$F$/$@$5$$!'(B

<ul>
<li> $B1Q8l(B <mail>emacs-mime-en@m17n.org</mail>
<li> $BF|K\8l(B <mail>emacs-mime-ja@m17n.org</mail>
</ul>

<p>
$BC"$7!"$"$^$j$K$b8E$$HG$K4X$9$kJs9p$O4?7^$5$l$^$;$s!#8E$$HG$N(B bug $B$O!"(B
$B?7$7$$HG$G$O<#$C$F$$$k$+$b$7$l$^$;$s!#$^$:!":G?7HG$G3NG'$7$F$_$^$7$g$&!#(B
<p>
$B$=$l$+$i!"E,@Z$JJs9p$r$7$^$7$g$&!#C1$K!V$&$^$/F0$+$J$$!W$H8@$o$l$F$b$I(B
$B$&$$$&>u67$J$N$+$O$5$C$Q$jH=$j$^$;$s!#:GDc8B!"(BOS, emacs, APEL, FLIM,
SEMI, $B;H$C$F$$$k(B MUA $B$N<oN`$*$h$SHG!"@_Dj$r=q$/I,MW$,$"$j$^$9!#$^$?!"(B
error $B$,5/$C$F$$$k>l9g$O(B backtrace $B$rAw$k$3$H$b=EMW$G$9!#(B<cf
file="emacs" node="Bugs">
<p>
$B$^$?!"(Bbug $B$OBgDqJ#?t$N?M$,Ax6x$9$k$b$N$G$9!J$=$&$G$J$1$l$P!"(Bbug $B$G$O$J(B
$B$$2DG=@-$,$"$j$^$9!K!#$@$+$i!":n<T$KD>@\(B mail $B$rAw$k$H:n<T$OF1$8(B mail
$B$r2?DL$b=q$/1)L\$K$J$j$^$9!#$@$+$i!"I,$:(B bug $BJs9p$O>e5-$N(B address $B$KAw$C(B
$B$F$/$@$5$$!#(B

<p>
EMACS-MIME ML $B$G$O(B FLIM $B$N%P%0>pJs$N8r49$d:G?7HG$NG[I[!"(BFLIM $B$N2~NI$K(B
$B4X$9$k5DO@$r9T$J$C$F$$$^$9!#(BEMACS-MIME ML $B$K;22C$7$?$$J}$O(B

<ul>
<li> $B1Q8l(B <mail>emacs-mime-en-ctl@m17n.org</mail>
<li> $BF|K\8l(B <mail>emacs-mime-ja-ctl@m17n.org</mail>
</ul>

<noindent>
$B$K6u$N(B mail $B$rAw$C$F2<$5$$!#(B


<h2> CVS $B$K$h$k3+H/(B
<node> CVS
<p>
FLIM $B$N(B file $B$O(B CVS $B$r;H$C$F4IM}$5$l$F$$$^$9!#$3$N$?$a!"0J2<$NJ}K!$G:G(B
$B?7$N(B FLIM $B$rF~<j$9$k$3$H$,$G$-$^$9!'(B

<verb>
(0) cvs login

    % cvs -d :pserver:anonymous@cvs.m17n.org:/cvs/root login

    CVS password: [CR] # NULL string

(1) checkout

    % cvs -d :pserver:anonymous@cvs.m17n.org:/cvs/root \
	checkout [-r TAG] flim
</verb>

<p>
CVS $B$rMQ$$$?3+H/$K;22C$7$?$$J}$O(B

<ul>
<li> <mail>cvs@cvs.m17n.org</mail>
</ul>

<noindent>
$B$^$G!"%"%+%&%s%HL>$H(B ssh $B$N8x3+80$rAw$C$F$/$@$5$$!#(Bssh $B7PM3$G$O!"(B
cvsroot $B$O(B :ext:cvs@cvs.m17n.org:/cvs/root $B$H$J$j$^$9!#(B


<h2> $BNr;K(B
<node> History
<p>
FLIM $B$N(B code $B$N:G8E$NItJ,$O(B $B1]JB(B $B;LCR(B $B;a$,=q$$$?(B <file>mime.el</file>
$B$K5/8;$7$^$9!#$3$N>.$5$J(B program $B$O(B Nemacs $B$GF0:n$9$k(B iso-2022-jp $B$N(B 
B-encoding $B@lMQ$N(B encoded-word $B$NI|9f2=%W%m%0%i%`$G$7$?!#(B
<p>
$B$=$N8e!"<i2,(B $BCNI'(B $B$O(B <file>mime.el</file> $B$r85$K(B
<file>tiny-mime.el</file> $B$H$$$&%W%m%0%i%`$r=q$-$^$9!#$3$l$O!"(BNemacs 
$B$H(B Mule $B$GF0:n$9$k(B encoded-word $B$NId9f2=!&I|9f2=%W%m%0%i%`$G$7$?!#(B
<file>tiny-mime.el</file> $B$O(B B-encoding $B$@$1$G$J$/(B Q-encoding $B$b(B
support $B$7!"$^$?!"(BMULE $B$G07$&$3$H$,$G$-$k$5$^$6$^$J(B <dref>MIME
charset</dref> $B$rF1;~$K;H$&$3$H$,$G$-$^$7$?!#$3$N;~!"(BNemacs $B$H(B Mule $B$N(B
$BAPJ}$r(B support $B$9$k$?$a$KMQ$$$i$l$?%F%/%K%C%/$O8e$K(B emu package $B$K$^$H(B
$B$a$i$l$^$9!#(B
<p>
$B$3$N:"!"<i2,(B $BCNI'(B $B$O(B <file>tiny-mime.el</file> $B$r$5$^$6$^$J(B MUA $B$G;H$&(B
$B$?$a$N@_Dj=8$bG[I[$7$F$$$^$7$?$,!"$=$l$i$O8e$K(B
<file>tiny-mime.el</file> $B$H$H$b$K#1$D$N(B package $B$K$^$H$a$i$l!"(Btm $B$H$$(B
$B$&L>A0$GG[I[$5$l$^$9!#(B
<p>
$B<i2,(B $BCNI'(B $B$O$d$,$F!"(BMIME message $B$r1\Mw$9$k$?$a$N%W%m%0%i%`$G$"$k(B
<file>tm-body.el</file> $B$r=q$-$^$9!#$3$l$O!"$9$0$K(B
<file>tm-view.el</file> $B$H$$$&L>A0$KJQ$o$j$^$7$?$,!"$d$,$F!"$3$l$,(B
<file>tiny-mime.el</file> $B$KBe$o$C$F!"(Btm $B$NCf3K$H$J$j$^$9!#(B
<p>
<file>tm-view.el</file> $B$OEvA3!"(BContent-Transfer-Encoding $B$r07$&I,MW$,(B
$B$"$j$^$9!#$3$NL\E*$N$?$a$K!"(BMEL $B$,@0Hw$5$l$O$8$a$^$7$?!#(BBase64 $B$K4X$7(B
$B$F$O(B <file>tiny-mime.el</file> $B$N(B code $B$,0\$5$l!"$^$?!"?7$?$K(B
Quoted-Printable $B$N(B code $B$,DI2C$5$l$^$7$?!#$3$l$i$,(B
<file>mel-b.el</file> $B$H(B <file>mel-q.el</file> $B$K$J$j$^$7$?!#(B
<p>
$B$^$?!"8e$K!"<i2,(B $BCNI'(B $B$K$h$C$F(B uuencode $BMQ$N(B <file>mel-u.el</file> $B$,(B
$BDI2C$5$l!"$=$N8e$K!">.NS(B $B=$J?(B $B;a$K$h$C$F(B x-gzip64 $BMQ$N(B
<file>mel-g.el</file> $B$,DI2C$5$l$^$7$?!#(B
<p>
tm $B$G$O8e$K!"<i2,(B $BCNI'(B $B$K$h$C$F(B <file>tiny-mime.el</file> $B$N:F<BAu$,9T(B
$B$o$l!"$3$N2aDx$G!"(BSTD 11 $B$N(B parser $B$,=q$+$l$^$7$?!#$3$l$O!"8=:_$N(B 
<file>std11.el</file> $B$KEv$?$j$^$9!#$^$?!"$3$N2aDx$G(B 
<file>tiny-mime.el</file> $B$OI|9f2=$r9T$&(B <file>tm-ew-d.el</file> $B$HId(B
$B9f2=$r9T$&(B <file>tm-ew-e.el</file> $B$KJ,$1$i$l$^$7$?!#$3$NN><T$,8=:_$N(B 
<file>eword-decode.el</file> $B$H(B <file>eword-encode.el</file> $B$N@hAD$K(B
$BEv$?$j$^$9!#(B
<p>
$B8e$K!"<i2,(B $BCNI'(B $B$i$K$h$C$F(B tm $B$NA4LL=q$-49$(:n6H$,9T$o$l!"$3$N2aDx$G!"(B
tm $B$O(B APEL, MEL, SEMI, EMH, RMAIL-MIME, Gnus-MIME $B$J$I$KJ,$1$i$l$^$7$?!#(B
$B$3$N$&$A$N(B MEL $B$,(B FLIM $B$ND>@\$N@hAD$KEv$?$j$^$9!#(B
<p>
$B8e$K!"(BAPEL $B$+$i(B <file>std11.el</file> $B$,0\$5$l!"$^$?!"(B
<file>mailcap.el</file>, <file>eword-decode.el</file> $B$*$h$S(B 
<file>eword-encode.el</file> $B$,(B SEMI $B$+$i0\$5$l!"(Bpackage $B$NL>A0$,(B FLIM
$B$H$J$j$^$9!#(B
<p>
$B$3$ND>A0$+$iEDCf(B $BE/(B $B;a$,$h$j(B RFC $B$KCi<B$J<BAu$r=q$-;O$a!"$3$l$O!"8=:_!"(B
FLIM $B$N;^$G$"$k(B ``FLIM-FLAM'' $B$H$J$C$F$$$^$9!#(B


<h1> $B35G0:w0z(B
<node> Concept Index

<cindex>


<h1> $B4X?t:w0z(B
<node> Function Index

<findex>


<h1> $BJQ?t:w0z(B
<node> Variable Index

<vindex>

</body>
