elisp-vcs/flim-1.14.9/mime-ja.sgml

44 KiB

<!doctype sinfo system>
<head>
<title>FLIM 1.14 MIME $B5!G=@bL@=q
<author>$B<i2, $BCNI' <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 Internet Message $B=hM}$N$?$a$N4pAC library $B$G$"$k FLIM
$B$N MIME $B5!G=$K4X$7$F@bL@$7$^$9!#
</abstract>
 
 
<h1> FLIM $B$C$F2?!)
<node> Introduction
<p>
FLIM $B$O Internet Message $B$NI=8=$dId9f2=$K4X$9$k4pACE*$J5!G=$rDs6!$9$k
$B$?$a$N library $B$G$9!#
 
 
<h1> FLIM $B$N MIME $B5!G=$N;H$$J}
<node> How to use
<p>
FLIM $B$NDs6!$9$k MIME $B5!G=$r;H$&$?$a$K$O
 
<lisp>
(require 'mime)
</lisp>
 
<noindent>$B$rI>2A$7$F$/$@$5$$!#
 
 
<h1> Message $B$H Entity
<node> Entity
<p>
<dref>RFC 2045</dref> $B$K$h$l$P!"!VEntity $B$H$$$&8l$O!"message, $B$b$7$/$O!"
multipart entity $B$N body $BCf$N#1$D$NItJ,$N!"MIME $B$GDj5A$5$l$? header
field $B$HFbMF$r;X$9!W$H$J$C$F$$$^$9!#$3$3$G$O!"MIME $B$GDj5A$5$l$? header
field $B0J30$NA4$F$N header $B$H body $B$r;X$98l$H$7$F
<concept>entity</concept>$B$rMQ$$$k$3$H$K$7$^$9!#
<p>
RFC 2045 $B$NDj5A$O!"MIME message $B$, entity $B$r@a$H$9$kLZ9=B$$G$"$k$3$H$r
$B<($7$F$$$^$9!#$D$^$j!"MIME $B$O message $B$rLZ9=B$$K3HD%$7$?Lu$G$9!#
<p>
FLIM $B$O entity $B$N>pJs$rI=8=$9$k$?$a$K<concept>mime-entity</concept> $B9=
$BB$BN$rMQ$$$^$9!#0J2<$G$OC1$K mime-entity $B$H8F$V$3$H$K$7$^$9!#
 
 
<h2> Entity $B$N@8@.
<node> Entity creation
<p>
<defun name="mime-open-entity">
<opts> type location
<p>
Entity $B$r3+$$$F!"$=$l$rJV$7$^$9!#
<p>
<var>type</var> $B$O representation-type $B$G$9!# <cf node="mm-backend">
<p>
<var>location</var> $B$O entity $B$N0LCV$G$9!#;XDjJ}K!$O
representation-type $B$K0M$C$FJQ$o$j$^$9!#
</defun>
 
<defun name="mime-parse-buffer">
<opts> buffer type
<p>
<var>buffer</var> $B$r message $B$H$7$F9=J82r@O$7!"$=$N7k2L$N mime-entity
$B$r <var>buffer</var> $B$N<code>mime-message-structure</code> $B$K3JG<$9$k!#
<p>
<var>buffer</var> $B$,>JN,$5$l$?>l9g!"8=:_$N buffer $B$r9=J82r@O$9$k!#
<p>
<var>type</var> $B$,;XDj$5$l$?>l9g!"$=$NCM$r@8@.$5$l$k mime-entity $B$NI=
$B>]7?$H$7$FMQ$$$k!#>JN,$5$l$?>l9g$O <var>buffer</var> $B$H$J$k!#<cf
node="mm-backend">
</defun>
 
 
<h2> Entity $B3,AX
<node> Entity hierarchy
<p>
MIME message $B$O entity $B$rC10L$H$9$kLZ9=B$$K$J$C$F$$$^$9!#
<p>
$B$3$NLZ$K$*$$$F:,$H$J$k@a$O message $BA4BN$rI=$9 entity $B$G$9!#$3$3$G$O!"
$B$3$l$r <concept>root-entity</concept> $B$b$7$/$O
<concept>message</concept> $B$H8F$S$^$9!#
<p>
root-entity $B0J30$N entity $B$O?F$r;}$A$^$9!#$^$?!"entity $B$O;R6!$r;}$D$+
$B$bCN$l$^$;$s!#$3$N?F;R4X78$r9M$($k$3$H$G entity $B$NAjBP4X78$r07$&$3$H$,
$B$G$-$^$9!#
<p>
$B0lJ}!"entity $B$N message $B$K$*$1$k0LCV$r9M$($k$3$H$b$G$-$^$9!#
<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=gHV$K=>$C$FHV9f$,IU$1$k$3$H$,$G$-$^$9!#B($A!"
<verb>
 
$B(#(!(!(!($
$B(" nil $B("
$B(&(!(((!(%
$B(#(!(!(!(!(!(!(!(!(!(+(!(!(!(!(!(!(!(!(!($
$B(#(*($ $B(#(*($ $B(#(*($
$B("#0(" $B("#1(" $B("#2("
$B(&(((% $B(&(((% $B(&(((%
$B(" $B(#(!(!(!(!(+(!(!(!(!($ $B("
$B(#(!(*(!($(#(!(*(!($(#(!(*(!($(#(!(*(!($(#(!(*(!($
$B(" $B#0.$B#0("(" $B#1.$B#0("(" $B#1.$B#1("(" $B#1.$B#2("(" $B#2.$B#0("
$B(&(!(!(!(%(&(!(!(!(%(&(!(!(!(%(&(!(!(!(%(&(!(!(!(%
 
</verb>
<p>
<noindent>$B$N$h$&$K?<$5 n $B$N@a$K$OD9$5 n $B$N@0?tNs$N@aHV9f$,?6$l$^$9!#$3$l
$B$r <concept>entity-number</concept> $B$H8F$S$^$9!#entity-number $B$O S $B<0$H
$B$7$F$O <code>(1 2 3)</code> $B$N$h$&$J@0?t$N%j%9%H$H$7$FI=8=$5$l$^$9!#
<p>
mime-entity $B$G$O!"$3$l$HF1MM$N <concept>node-id</concept> $B$rMQ$$$^$9!#
node-id $B$O$A$g$&$I entity-number $B$r5U$K$7$?%j%9%H$G!"entity-number
1.2.3 $B$KBP1~$9$k node-id $B$O <code>(3 2 1)</code> $B$G$9!#
<p>
$BA0=R$N$h$&$K!"MIME message $B$O entity $B$rC10L$H$7$?LZ9=B$$K$J$C$F$$$k$N$G!"
$B$3$N:,$G$"$k message $BA4BN$b mime-entity $B$GI=8=$9$k$3$H$,$G$-!"buffer
local $BJQ?t <code>mime-message-structure</code> $B$K3JG<$9$k$3$H$K$7$^$9!#
<p>
<code>mime-message-structure</code> $B$r5/E@$K entity-number $B$d node-id
$B$G<($5$l$k entity $B$r<h$j=P$9$3$H$,$G$-$^$9!#
 
<defvar name="mime-message-structure">
<p>
$B8=:_$N buffer $B$K$*$1$k message $BA4BN$N mime-entity $B9=B$BN$r3JG<$9$k
buffer local $BJQ?t!#
</defvar>
 
<defun name="mime-entity-children">
<args> entity
<p>
<var>entity</var> $B$K4^$^$l$k entity $B$N list $B$rJV$9!#
</defun>
 
<defun name="mime-entity-parent">
<args> entity <opts> message
<p>
<var>entity</var> $B$N?F$N entity $B$rJV$9!#
<p>
<var>message</var> $B$,;XDj$5$l$?>l9g!"$3$l$r:,$H8+Jo$9!#
</defun>
 
<defun name="mime-root-entity-p">
<args> entity
<p>
<var>entity</var> $B$,:,!JB($A!"message $BA4BN!K$G$"$k>l9g$K!"
$BHs-<code>nil</code> $B$rJV$9!#
</defun>
 
<defun name="mime-entity-node-id">
<args> entity
<p>
<var>entity</var> $B$N node-id $B$rJV$9!#
</defun>
 
<defun name="mime-entity-number">
<args> entity
<p>
<var>entity</var> $B$N entity-number $B$rJV$9!#
</defun>
 
 
<h2> Entity $B$N8!:w
<node> Entity Search
<p>
<defun name="mime-find-entity-from-number">
<args> entity-number <opts> message
<p>
<var>message</var> $B$+$i!"<var>enity-number</var> $B$N entity $B$rJV$7$^$9!#
<p>
<var>message</var> $B$,;XDj$5$l$F$$$J$$>l9g$O!"
<code>mime-message-structrue</code> $B$,;H$o$l$^$9!#
</defun>
 
<defun name="mime-find-entity-from-node-id">
<args> entity-node-id <opts> message
<p>
<var>message</var> $B$+$i!"<var>entity-node-id</var> $B$N entity $B$rJV$7$^
$B$9!#
<p>
<var>message</var> $B$,;XDj$5$l$F$$$J$$>l9g$O!"
<code>mime-message-structure</code> $B$,;H$o$l$^$9!#
</defun>
 
<defun name="mime-find-entity-from-content-id">
<args> cid <opts> message
<p>
<var>message</var> $B$+$i!"<var>cid</var> $B$N entity $B$rJV$7$^$9!#
<p>
<var>message</var> $B$,;XDj$5$l$F$$$J$$>l9g$O!"
<code>mime-message-structure</code> $B$,;H$o$l$^$9!#
</defun>
 
 
<h2> Entity $B$NB0@-
<node> Entity Attributes
<p>
<defun name="mime-entity-content-type">
<args> entity
<p>
<var>entity</var> $B$N content-type $B$rJV$9!#<cf
node="mime-content-type">
</defun>
 
<defun name="mime-entity-content-disposition">
<args> entity
<p>
<var>entity</var> $B$N content-disposition $B$rJV$9!#<cf
node="mime-content-disposition">
</defun>
 
<defun name="mime-entity-filename">
<args> entity
<p>
<var>entity</var> $B$N file $BL>$rJV$9!#
</defun>
 
<defun name="mime-entity-encoding">
<args> entity <opts> default-encoding
<p>
<var>entity</var> $B$N content-transfer-encoding $B$rJV$9!#<cf
node="Content-Transfer-Encoding">
<p>
$B$b$7!"<var>entity</var> $B$K Content-Transfer-Encoding $BMs$,B8:_$7$J$$>l
$B9g$O!"<var>default-encoding</var> $B$rJV$9!#$3$l$,;XDj$5$l$J$$>l9g$O!"
<code>"7bit"</code> $B$rMQ$$$k!#
</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 nil $B$GL5$$CM
$B$rJV$9!#
</defun>
 
 
<h2> Entity header $B$N>pJs
<node> Entity-header
<p>
<defun name="mime-fetch-field">
<args> field-name <opts> entity
<p>
<var>entity</var> $B$N header $BCf$N <var>field-name</var> $BMs$N body $B$rJV$9!#
<p>
$B7k2L$NJ8;zNs$O network $BI=8=$N$^$^$G$"$k!#
<p>
<var>entity</var> $B$,>JN,$5$l$?>l9g$O!"
<code>mime-message-structure</code> $B$NCM$rMQ$$$k!#
<p>
<var>field-name</var> $BMs$,B8:_$7$J$$>l9g$O <code>nil</code> $B$rJV$9!#
</defun>
 
<defun name="mime-read-field">
<args> field-name <opts> entity
<p>
<var>entity</var> $B$N header $BCf$N <var>field-name</var> $BMs$r9=J82r@O$7$?
$B7k2L$rJV$9!#
<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$O$=$N7A<0$K=>$C$? list $B$rJV$9!#
<p>
$B7k2LCf$NJ8;zNs$O Emacs $B$NFbItI=8=$KJQ49$5$l$k!#
<p>
<var>entity</var> $B$,>JN,$5$l$?>l9g$O!"
<code>mime-message-structure</code> $B$NCM$rMQ$$$k!#
<p>
<var>field-name</var> $BMs$,B8:_$7$J$$>l9g$O nil $B$rJV$9!#
</defun>
 
 
<h2> Entity $B$NJ8;zI=8=
<node> entity formatting
<p>
<defun name="mime-insert-header">
<args> entity <opts> invisible-fields visible-fields
<p>
$B8=:_0LCV$K <var>entity</var> $B$NI|9f$7$? header $B$rA^F~$9$k!#
<p>
<var>invisible-fields</var> $B$H <var>visible-fields</var> $B$O@55,I=8=$N
list $B$G!"$=$l$>$l!"I=<($7$?$/$J$$ field $BL>$HI=<($7$?$$MsL>$rI=8=$7$?$b$N
$B$G$"$k!#
<p>
<var>invisible-fields</var> $B$NMWAG$N$I$l$+$K match $B$7!"$+$D!"
<var>visible-fields</var> $B$NMWAG$N$I$l$K$b match $B$7$J$$Ms$OI=<($5$l$J
$B$$!#
<p>
<dref>encoded-word</dref> $B$OI|9f$5$l$k!#!X@8$NHs us-ascii $BJ8;z!Y$O
<code>default-mime-charset</code> $B$H$7$F2r<a$5$l$k!#
</defun>
 
<defun name="mime-insert-text-content">
<args> entity
<p>
point $B$NA0$K <var>entity</var> $B$r text entity $B$H$7$FA^F~$7$^$9!#
<p>
<var>entity</var> $B$NFbMF$O <dref>MIME charset</dref> $B$H$7$FI|9f2=$5$l
$B$^$9!#<var>entity</var> $B$N Content-Type field $B$K charset paramter $B$,L5
$B$$$H!"<code>default-mime-charset</code> $B$,=i4|CM$H$7$F;H$o$l$^$9!#
</defun>
 
<defvar name="default-mime-charset">
<p>
$BE,@Z$J <dref>MIME charset</dref> $B$,8+$D$+$i$J$+$C$?>l9g$KMQ$$$i$l$k
MIME charset.
<p>
$BK\Mh$O APEL $B$NJQ?t$G$"$k!#
</defvar>
 
 
<h2> Entity $B$NFbMF
<node> Entity-content
<p>
<defun name="mime-entity-content">
<args> entity
<p>
<var>entity</var> $B$NFbMF$N byte $BNs$rJV$9!#
</defun>
 
<defun name="mime-insert-entity-content">
<args> entity
<p>
point $B$N0LCV$K <var>entity</var> $B$NFbMF$rA^F~$7$^$9!#
</defun>
 
<defun name="mime-write-entity-content">
<args> entity filename
<p>
<var>entity</var> $B$NFbMF$r <var>filename</var> $B$K=q$-9~$_$^$9!#
</defun>
 
 
<h2> Entity $B$N%M%C%H%o!<%/I=8=
<node> Entity-network-representation
<p>
<defun name="mime-insert-entity">
<args> entity
<p>
<var>entity</var> $B$N header $B$H body $B$r point $B$N$H$3$m$KA^F~$7$^$9!#
</defun>
 
<defun name="mime-write-entity">
<args> entity filename
<p>
<var>entity</var> $B$NI=8=$r <var>filename</var> $B$K=q$-9~$_$^$9!#
</defun>
 
<defun name="mime-write-entity-body">
<args> entity filename
<p>
<var>entity</var> $B$N body $B$r <var>filename</var> $B$K=q$-9~$_$^$9!#
</defun>
 
 
<h2> Entity $B$N buffer $B$K$h$kI=8=
<node> Entity buffer
<p>
<defun name="mime-entity-buffer">
<args> entity
<p>
<var>entity</var> $B$,B8:_$9$k buffer $B$rJV$9!#
</defun>
 
<defun name="mime-entity-point-min">
<args> entity
<p>
<var>entity</var> $B$,B8:_$9$k buffer $B$K$*$1$k!"<var>entity</var> $B$,@j$a$k
$BNN0h$N@hF,0LCV$rJV$9!#
</defun>
 
<defun name="mime-entity-point-max">
<args> entity
<p>
<var>entity</var> $B$,B8:_$9$k buffer $B$K$*$1$k!"<var>entity</var> $B$,@j$a$k
$BNN0h$NKvHx0LCV$rJV$9!#
</defun>
 
<defun name="mime-entity-header-start">
<args> entity
<p>
<var>entity</var> $B$,B8:_$9$k buffer $B$K$*$1$k!"header $B$,@j$a$kNN0h$N@hF,
$B0LCV$rJV$9!#
</defun>
 
<defun name="mime-entity-header-end">
<args> entity
<p>
<var>entity</var> $B$,B8:_$9$k buffer $B$K$*$1$k!"header $B$,@j$a$kNN0h$NKvHx
$B0LCV$rJV$9!#
</defun>
 
<defun name="mime-entity-body-start">
<args> entity
<p>
<var>entity</var> $B$,B8:_$9$k buffer $B$K$*$1$k!"body $B$,@j$a$kNN0h$N@hF,0L
$BCV$rJV$9!#
</defun>
 
<defun name="mime-entity-body-end">
<args> entity
<p>
<var>entity</var> $B$,B8:_$9$k buffer $B$K$*$1$k!"body $B$,@j$a$kNN0h$NKvHx0L
$BCV$rJV$9!#
</defun>
 
 
<h2> Entity $B$NI=8=$H<B8=
<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$5$^$6$^$J$b$N$,MxMQ$G$-$k$h$&$K@_7W$5$l$F$$$^$9!#
<p>
$B$3$3$G!"entity $B$,$I$&$$$&<oN`$NI=8=$r9T$C$F$$$k$+$r<($9$N$,
<concept>representation-type</concept> $B$G!"entity $B$r@8@.$9$k;~$K$O$3$l$r
$B;XDj$7$^$9!#<cf node="Entity Creation">
<p>
$BA0@a$^$G$K=R$Y$FMh$? entity $B$KBP$9$k=hM}$O!"entity $B$KBP$7$F$=$N=hM}$r0M
$BMj$9$k$3$H$K$h$C$F<B8=$5$l$F$$$^$9!#Entity $B$O<+J,$N
representation-type $B$rCN$C$F$*$j!"$=$N representation-type $B$K1~$8$F<B:]
$B$N=hM}$r9T$&4X?t$r8F$S=P$7$^$9!#$3$N$h$&$J4X?t$r <concept>entity $B=hM}
method</concept> $B$H8F$S$^$9!#$^$?!"representation-type $BKh$K$3$N$h$&$J4X
$B?t$r$^$H$a$?$b$N$r <concept>mm-backend</concept> $B$H8F$S$^$9!#
<p>
mm-backend $B$O representation-type $B$NL>A0$N@hF,$K <code>mm</code> $B$H$$$&
$B@\F,<-$rIU$1$?4X?tL>$+$i$J$k module $B$G!"$=$N module $BL>$OF1MM$K
representation-type $B$NL>A0$N@hF,$K <code>mm</code> $B$rIU$1$?$b$N$K$J$C$F
$B$$$^$9!#$3$N module $B$O representation-type $B$N entity $B$,:G=i$K@8@.$5$l$k
$B;~$K<+F0E*$K require $B$5$l$^$9!#
 
 
<h3> Entity $B$X$NJX$j
<node> Request for entity
<p>
<defun name="mime-entity-send">
<args> entity message <rest> args
<p>
<var>entity</var> $B$K <var>message</var> $B$rAw$k!#
<p>
<var>args</var> $B$O <var>message</var> $B$N0z?t$G$"$k!#
</defun>
 
 
<h3> mm-backend $B$N:n$jJ}
<node> mm-backend module
<p>
<defmacro name="mm-define-backend">
<args> type
<opts> parents
<p>
<var>type</var> $B$r mm-backend $B$H$7$FDj5A$7$^$9!#
<p>
<var>PARENTS</var> $B$,;XDj$5$l$F$$$k>l9g$O!"<var>type</var> $B$O prents
$B$r7Q>5$7$^$9!#$=$l$>$l$N parent $B$O representation-type $B$G$"$kI,MW$,$"
$B$j$^$9!#
<p>
$BNc:
<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 (nth 1 (car <var>args</var>)) backend $B$N method $B4X
$B?t$H$7$FDj5A$7$^$9!#
<p>
<var>args</var> $B$O lambda $B$N0z?t%j%9%H$N$h$&$J$b$N$G$9$,!"(car
<var>args</var>) $B$O;XDj$5$l$? parameter $B$G$"$kI,MW$,$"$j$^$9!#(car
(car <var>args</var>)) $B$OJQ?t$NL>A0$G!"(nth 1 (car <var>args</var>))
$B$O backend $B$NL>A0 (representation-type) $B$G$9!#
<p>
$BNc:
<p>
<lisp>
(mm-define-method entity-cooked-p ((entity chao)) nil)
</lisp>
</defmacro>
 
 
<h1> Content-Type $BMs$N>pJs
<node> Content-Type
<p>
<concept>Content-Type $BMs</concept> $B$O <dref>media-type</dref> $B$d MIME
charset $B$H$$$C$? <dref>entity</dref> $B$NFbMF$N<oN`$dI=8=7A<0$J$I$r5-=R
$B$9$k$?$a$N$b$N$G!"<dref>RFC 2045</dref> $B$GDj5A$5$l$F$$$^$9!#
 
<memo>
<p>
$BNr;KE*$K$O RFC 1049 $B$G Content-Type $BMs$,Ds0F$5$l$F$$$k!#C"$7!"MIME $B$N
media-type $B$N$h$&$J type $B$H subtype $B$N6hJL$O$J$/!"MIME charset $B$N$h$&
$B$JJ8;zId9f$N<oN`$rI=8=$9$k$3$H$b$G$-$J$$!#
</memo>
 
<p>
FLIM $B$O Content-Type $BMs$r9=J82r@O$9$k4X?t$H Content-Type $BMs$N2r@O7k2L$r
$B3JG<$9$k9=B$BN <concept>mime-content-type</concept> $B$rDs6!$7$^$9!#
 
 
<h2> Content-Type $BMs$N7A<0
<node> Content-Type field
<p>
Content-Type $BMs$N7A<0$O0J2<$N$h$&$KDj5A$5$l$F$$$^$9!'
 
<quote>
``Content-Type'' ``:'' <concept>type</concept> ``/''
<concept>subtype</concept> *( ``;'' <concept>parameter</concept> )
</quote>
<p>
$BNc$($P!"
 
<quote>
<verb>
Content-Type: image/jpeg
</verb>
</quote>
 
<noindent>
$B$d
 
<quote>
<verb>
Content-Type: text/plain; charset=iso-2022-jp
</verb>
</quote>
 
<noindent>
$B$J$I$N$h$&$KMQ$$$i$l$^$9!#
<p>
$B$3$3$G!"`type' $B$H `subtype' $B$O entity $B$N7A<0$r<($9$b$N$G!"N><T$rAm>N$7
$B$F!"`media-type' $B$H8F$V$3$H$K$7$^$9!#>e5-$NNc$K$*$1$k `image/jpeg' $B$d
`text/plain' $B$O media-type $B$N#1$D$G$9!#
 
<memo>
<p>
Content-Type $BMs$N$J$$ entity $B$O
 
<quote>
<verb>
Content-Type: text/plain; charset=us-ascii
</verb>
</quote>
 
<noindent>
$B$H$7$F2r<a$5$l$k!#<cf node="us-ascii">
</memo>
 
 
<h2> mime-content-type $B9=B$BN
<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!#
<p>
$B$3$N9=B$BN$r;2>H$9$k$K$O <code>mime-content-type-$BMWAGL></code> $B$H$$$&L>
$BA0$N;2>H4X?t$rMQ$$$k!#
<p>
$B$3$N9=B$BN$NMWAG$O0J2<$NDL$j$G$"$k!'
 
<vl>
<dt>primary-type<dd>media-type $B$N<g7? (symbol).
</dd>
<dt>subtype<dd>media-type $B$NI{7? (symbol).
</dd>
<dt>parameters<dd>Content-Type $BMs$N parameter ($BO"A[ list).
</dd>
</vl>
</define>
 
<defun name="make-mime-content-type">
<args> type subtype
<opts> parameters
<p>content-type $B$N@8@.;R!#
</defun>
 
<defun name="mime-content-type-parameter">
<args> content-type parameter
<p>
<var>content-type</var> $B$N <var>parameter</var> $B$NCM$rJV$9!#
</defun>
 
 
<h2> Content-Type $BMs$N2r@O4o
<node> Content-Type parser
<p>
<defun name="mime-parse-Content-Type">
<args> string
<p>
<var>string</var> $B$r content-type $B$H$7$F2r@O$7$?7k2L$rJV$9!#
</defun>
 
<defun name="mime-read-Content-Type">
<p>
$B8=:_$N buffer $B$N Content-Type $BMs$rFI$_<h$j!"2r@O$7$?7k2L$rJV$9!#
<p>
Content-Type $BMs$,B8:_$7$J$$>l9g$O nil $B$rJV$9!#
</defun>
 
 
<h2> Content-Type $B$K4X$9$kM-MQ$J4X?t
<node> Content-Type utility
<p>
<defun name="mime-type/subtype-string">
<args> type <opts> subtype
<p>
<var>type</var> $B$H <var>subtype</var> $B$+$i type/subtype $B7A<0$NJ8;zNs$rJV
$B$9!#
</defun>
 
 
<h1> Content-Disposition $BMs$N>pJs
<node> Content-Disposition
<p>
<concept>Content-Disposition $BMs</concept> $B$O entity $B$NI=<($d file $BL>$J$I
$B$NB0@-$K$J$I$K4X$9$k>pJs$r5-=R$9$k$?$a$N$b$N$G$9!#
 
<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 Content-Disposition $BMs$r9=J82r@O$9$k4X?t$H Content-Disposition
$BMs$N2r@O7k2L$r3JG<$9$k9=B$BN
<concept>mime-content-disposition</concept> $B$rDs6!$7$^$9!#
 
 
<h2> mime-content-disposition $B9=B$BN
<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!#
<p>
$B$3$N9=B$BN$r;2>H$9$k$K$O <code>mime-content-disposition-$BMWAGL></code> $B$H
$B$$$&L>A0$N;2>H4X?t$rMQ$$$k!#
<p>
$B$3$N9=B$BN$NMWAG$O0J2<$NDL$j$G$"$k!'
 
<vl>
<dt>disposition-type<dd>disposition-type (symbol).
</dd>
<dt>parameters<dd>Content-Disposition $BMs$N parameter ($BO"A[ list).
</dd>
</vl>
</define>
 
<defun name="mime-content-disposition-parameter">
<args> content-disposition parameter
<p>
<var>content-disposition</var> $B$N <var>parameter</var> $B$NCM$rJV$9!#
</defun>
 
<defun name="mime-content-disposition-filename">
<args> content-disposition
<p>
<var>content-disposition</var> $B$N filename $B$NCM$rJV$9!#
</defun>
 
 
<h2> Content-Disposition $BMs$N2r@O4o
<node> Content-Disposition parser
<p>
<defun name="mime-parse-Content-Disposition">
<args> string
<p>
<var>string</var> $B$r content-disposition $B$H$7$F2r@O$7$?7k2L$rJV$9!#
</defun>
 
<defun name="mime-read-Content-Disposition">
<p>
$B8=:_$N buffer $B$N Content-Disposition $BMs$rFI$_<h$j!"2r@O$7$?7k2L$rJV$9!#
<p>
Content-Disposition $BMs$,B8:_$7$J$$>l9g$O nil $B$rJV$9!#
</defun>
 
 
<h1> $BId9f2=K!
<node> Content-Transfer-Encoding
<p>
<concept>Content-Transfer-Encoding $BMs</concept> $B$O entity $B$NId9f2=K!$r5-
$B=R$9$k$?$a$N$b$N$G$9!#
<p>
FLIM $B$G$O Content-Transfer-Encoding $BMs$r9=J82r@O$9$k4X?t$rDs6!$7$^$9!#$3
$B$l$i$N4X?t$O Content-Transfer-Encoding $BMs$N>pJs$OJ8;zNs$GI=8=$7$^$9!#
<p>
$B$^$?!"Content-Transfer-Encoding $B$K4p$E$$$FId9f2=!&I|9f2=$r9T$&4X?t$bDs
$B6!$5$l$^$9!#
 
 
<h2> Content-Transfer-Encoding $BMs$N2r@O4o
<node> Content-Transfer-Encoding parser
<p>
<defun name="mime-parse-Content-Transfer-Encoding">
<args> string
<p>
<var>string</var> $B$r content-transfer-encoding $B$H$7$F2r@O$7$?7k2L$rJV$9!#
</defun>
 
<defun name="mime-read-Content-Transfer-Encoding">
<opts>default-encoding
<p>
$B8=:_$N buffer $B$N Content-Transfer-Encoding $BMs$rFI$_<h$j!"2r@O$7$?7k2L$r
$BJV$9!#
<p>
Content-Transfer-Encoding $BMs$,B8:_$7$J$$>l9g$O
<var>default-encoding</var> $B$rJV$9!#
</defun>
 
 
<h2> $BId9f2=!&I|9f2=
<node> encoder/decoder
<p>
<defun name="mime-encode-region">
<args> start end encoding
<p>
$B8=:_$N buffer $B$N <var>start</var> $B$+$i <var>end</var> $B$^$G$N region $B$r
<var>encoding</var> $B$r;H$C$FId9f2=$7$^$9!#
</defun>
 
<defun name="mime-decode-region">
<args> start end encoding
<p>
$B8=:_$N buffer $B$N <var>start</var> $B$+$i <var>end</var> $B$^$G$N region $B$r
<var>encoding</var> $B$r;H$C$FI|9f2=$7$^$9!#
</defun>
 
 
<defun name="mime-decode-string">
<args> string encoding
<p>
<var>string</var> $B$r <var>encoding</var> $B$H$7$FI|9f$7$?7k2L$rJV$9!#
</defun>
 
 
<defun name="mime-insert-encoded-file">
<args> filename encoding
<p>
<var>ENCODING</var> format $B$GId9f2=$5$l$? file <var>FILENAME</var> $B$r
$BA^F~$9$k!#
</defun>
 
<defun name="mime-write-decoded-region">
<args> start end filename encoding
<p>
<var>encoding</var> $B$GId9f2=$5$l$?8=:_$N region $B$rI|9f2=$7$F
<var>filename</var>$B$K=q$-9~$_$^$9!#
<p>
<var>start<var> $B$H <var>end</var> $B$O buffer $B$N0LCV$G$9!#
</defun>
 
 
<h2> $BB>$N utility
<node> Encoding information
<p>
<defun name="mime-encoding-list">
<opts> SERVICE
<p>
Content-Transfer-Encoding $B$N list $B$rJV$7$^$9!#
<p>
<var>service</var> $B$,;XDj$5$l$F$$$k$H!"$=$l$KBP$9$k
Content-Transfer-Encoding $B$rJV$7$^$9!#
</defun>
 
<defun name="mime-encoding-alist">
<opts> SERVICE
<p>
$BJd40$N$?$a$N Content-Transfer-Encoding $B$NI=$rJV$7$^$9!#
<p>
<var>service</var> $B$,;XDj$5$l$F$$$k>l9g$O$=$l$KBP$9$k
Content-Transfer-Encoding $B$N list $B$rJV$7$^$9!#
</defun>
 
 
<h2> $BId9f2=/$BI|9f2= module $B$N=q$-J}
<node> mel-backend
<p>
<defmacro name="mel-define-method">
<args> name args <rest> body
<p>
<var>name</var> $B$r (nth 1 (car (last <var>args</var>))) backend $B$N
method $B4X?t$H$7$FDj5A$7$^$9!#
<p>
<var>args</var> $B$O lambda $B$N0z?t list $B$H;w$F$$$^$9$,!"(car (last
<var>args</var>)) $B$O;XDj$5$l$? parameter $B$G$"$kI,MW$,$"$j$^$9!#(car
(car (last <var>args</var>))) $B$OJQ?t$NL>A0$G!"(nth 1 (car (last
<var>args</var>))) $B$O backend $B$NL>A0 (encoding) $B$G$9!#
<p>
$BNc:
<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 <var>function</var> $B$K@_Dj$7$^$9!#
<p>
<var>spec</var> $B$N:G=i$NMWAG$O service $B$G$9!#
<p>
<var>args</var> $B$N;D$j$O lambda $B$N0z?t list $B;w$F$$$^$9$,!"(car (last
<var>args</var>)) $B$O;XDj$5$l$? parameter $B$G$"$kI,MW$,$"$j$^$9!#(car
(car (last <var>args</var>))) $B$OJQ?t$NL>A0$G!"(nth 1 (car (last
<var>args</var>))) $B$O backend $B$NL>A0 (encoding) $B$G$9!#
<p>
$BNc:
<p>
<lisp>
(mel-define-method-function (mime-encode-string string (nil "base64"))
'encode-base64-string)
</lisp>
</defmacro>
 
 
<h2> $BId9f2=/$BI|9f2= service $B$rDI2C$9$kJ}K!
<node> generic function for mel-backend
<p>
<defmacro name="mel-define-service">
<args> name
<opts> args doc-string
<p>
<var>name</var> $B$r Content-Transfer-Encoding $B$N service $B$H$7$FDj5A$7$^
$B$9!#
<p>
<var>args</var> $B$,;XDj$5$l$F$$$k$H!"<var>name</var> $B$O service $B$N
generic function $B$H$7$FDj5A$5$l$^$9!#
<p>
$BNc:
<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 network $BI=8=
<node> encoded-word
<p>
encoded-word $B$O header $B$GHs <dref>ASCII</dref> $BJ8;z$rI=8=$9$k$?$a$N7A
$B<0$G!"<concept>RFC 2047</concept> $B$GDj5A$5$l$F$$$^$9!#
<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$,!"encoded-word $B$rMQ$$$:$KHs
<dref>ASCII</dref> $BJ8;z$r header $B$KF~$l$?5-;v$bB8:_$7$^$9!#
<p>
FLIM $B$O$3$l$i$rId9f2=!&I|9f2=$9$k5!G=$rDs6!$7$^$9!#
 
 
<h2> Header $B$NId9f2=!&I|9f2=
<node> Header encoder/decoder
<p>
<defun name="eword-decode-header">
<opts> code-conversion separator
<p>
Header $BCf$N encoded-word $B$rI|9f$9$k!#
<p>
$B$b$7 <var>code-conversion</var> $B$, <code>nil</code> $B$J$i!"encoded-word
$B$@$1$,I|9f$5$l$k!#$b$7!"<var>code-conversion</var> $B$, <dref>MIME
charset</dref> $B$J$i!"Hs ASCII bit patterns $B$O$=$N MIME charset $B$H$7$F
$BI|9f$5$l$k!#$3$l0J30$N>l9g!"Hs ASCII bit patterns $B$O
<code>default-mime-charset</code>. $B$H$7$FI|9f$5$l$k!#<cf node="entity
formatting">
<p>
$B$b$7 <var>separator</var> $B$, <code>nil</code> $B$G$J$1$l$P!"$=$NCM$,
header separator $B$H$7$FMQ$$$i$l$k!#
</defun>
 
<defun name="eword-encode-header">
<opts> code-conversion
<p>
Header $B$r network $BI=8=$KId9f2=$9$k!#
<p>
$B3F field $B$O <code>mime-field-encoding-method-alist</code> $B$G;XDj$5$l
$B$?J}<0$GId9f2=$5$l$k!#
</defun>
 
<defvar name="mime-field-encoding-method-alist">
<p>
Field $B$rId9f2=$9$kJ}K!$r;XDj$9$kO"A[ list$B!#3F element $B$O (FIELD
. METHOD) $B$NMM$K$J$C$F$$$k!#
<p>
METHOD $B$, <code>mime</code> $B$G$"$l$P!"FIELD $B$O MIME format $B$KId9f2=$5
$B$l$k (encoded-word)$B!#
<p>
METHOD $B$, <code>nil</code> $B$G$"$l$P!"FIELD $B$OId9f2=$5$l$J$$!#
<p>
METHOD $B$, MIME charset $B$G$"$l$P!"FIELD $B$O%M%C%H%o!<%/%3!<%I$KJQ49$7$J
$B$1$l$P$J$i$J$$$H$-$K charset $B$KId9f2=$5$l$k!#
<p>
$B$=$&$G$J$1$l$P!"FIELD $B$O%M%C%H%o!<%/%3!<%I$KJQ49$7$J$1$l$P$J$i$J$$$H$-
$B$K $BJQ?t <code>default-mime-charset</code> $B$GId9f2=$5$l$k
</defvar>
 
 
<h1> $B0lHL@_Dj
<node> custom
<p>
<define type="group" name="mime">
<p>
MIME $B4XO"5!G=$K4X$9$k group.
<p>
<code>mail</code> $B$H <code>news</code> $B$KB0$9$k!#
</define>
 
 
<h1> $BIUO?
<node> Appendix
 
<h2> $BMQ8l
<node> Glossary
 
<h3> 7bit
<node> 7bit
<p>
$B$3$3$G$O 0 $B$+$i 127 $B$N@0?t$r;X$9!#
<p>
0 $B$+$i 127 $B$N@0?t$NNs$GI=8=$G$-$k$h$&$J data $B$r ``7bit $B$N data'' $B$H8F
$B$V!#
<p>
$B$^$?!"0 $B$+$i 31 $B$*$h$S 127 $B$GI=8=$5$l$k@)8fJ8;z$H 32 $B$GI=8=$5$l$k6uGr
$B$H 33 $B$+$i 126 $B$GI=8=$5$l$k?^7AJ8;z$+$i$J$kJ8;zNs$N$3$H$r ``7bit $B$NJ8
$B;zNs'' $B$H8F$V!J$3$l$O <dref>ISO 2022</dref> $B$N!V7 $BC10L7O!W$HF1MM!K!#
<p>
$BEAE}E*$J Internet $B$N <dref>MTA</dref> $B$O 7bit $B$N data $B$rE>Aw$G$-$k$N$G!"
7bit $B$N data $B$O <dref>Quoted-Printable</dref> $B$d <dref>Base64</dref>
$B$H$$$C$?JQ49$r9T$o$J$/$F$b$=$N$^$^E>Aw$G$-$k!#
<p>
$B$7$+$7!"7bit $B$G$"$l$P$I$s$J data $B$G$bNI$$$H$O$$$($J$$!#$J$<$J$i!"#19T
$B$ND9$5$,$"$^$j$KD9$$$H!"MTA $B$O$=$N message $B$rE>Aw$9$k$3$H$,$G$-$J$$$+
$B$i$G$"$k!#$A$J$_$K!"<dref>RFC 821</dref> $B$O#19T$O2~9TJ8;z$r=|$$$F 998
byte $B0JFb$G$"$k$3$H$r5a$a$F$$$k!#$h$C$F!"$3$l0J>e$N9T$,4^$^$l$k2DG=@-
$B$N$"$k data, $BNc$($P!"Postscript $B$N data $B$J$I$O Quoted-Printable $BEy$G
encode$B$9$kI,MQ$,$"$k!#
 
 
<h3> 8bit
<node> 8bit
<p>
$B$3$3$G$O 0 $B$+$i 255 $B$N@0?t$r;X$9!#
<p>
0 $B$+$i 255 $B$N@0?t$NNs$GI=8=$G$-$k$h$&$J data $B$r ``8bit $B$N data'' $B$H8F
$B$V!#
<p>
$B$^$?!"0 $B$+$i 31, 127 $B$*$h$S 128 $B$+$i 159 $B$GI=8=$5$l$k@)8fJ8;z$H 32 $B$G
$BI=8=$5$l$k6uGr$H 33 $B$+$i 126 $B$H 160 $B$+$i 255 $B$GI=8=$5$l$k?^7AJ8;z$+$i
$B$J$kJ8;zNs$N$3$H$r ``8bit $B$NJ8;zNs'' $B$H8F$V!J$3$l$O <dref>ISO
2022</dref> $B$N!V8 $BC10L7O!W$HF1MM!K!#
<p>
<dref>iso-8859-1</dref> $B$d <dref>euc-kr</dref> $B$H$$$C$?Id9f2=J8;z=89g
$B$O 8bit $B$NJ8;zNs$G$"$k!#
<p>
$BEAE}E*$J Internet $B$N <dref>MTA</dref> $B$O <dref>7bit</dref> $B$N data $B$7
$B$+E>Aw$G$-$J$$$N$G!"$=$&$7$? MTA $B$r7PM3$9$k>l9g!"
<dref>Quoted-Printable</dref> $B$d <dref>Base64</dref> $B$H$$$C$?JQ49$r9T
$B$o$J$/$F$O$J$i$J$$!#
<p>
$B$7$+$7!":G6a$G$O 8bit $B$NJ8;zNs$r$=$N$^$^DL$9$3$H$,$G$-$k MTA $B$bEP>l$7
$B$F$-$?$N$G!"$=$N$^$^Aw$k$3$H$,$G$-$k>l9g$bA}$($F$-$?!#
<p>
$B$7$+$7!"8bit $B$G$"$l$P$I$s$J data $B$G$bNI$$$H$O$$$($J$$!#$J$<$J$i!"#19T
$B$ND9$5$,$"$^$j$KD9$$$H!"MTA $B$O$=$N message $B$rE>Aw$9$k$3$H$,$G$-$J$$$+
$B$i$G$"$k!#$A$J$_$K!"<dref>RFC 821</dref> $B$O#19T$O2~9TJ8;z$r=|$$$F 998
byte $B0JFb$G$"$k$3$H$r5a$a$F$$$k!#$h$C$F!"$3$l0J>e$N9T$,4^$^$l$k2DG=@-
$B$N$"$k data, $BNc$($P!"Postscript $B$N data $B$J$I$O Quoted-Printable $BEy$G
encode$B$9$kI,MQ$,$"$k!#
<p>
$B$^$?!"$3$&$7$?M}M3$+$i!"#19T$, 999 byte $B0J>e$N9T$,B8:_$9$k2DG=@-$N$"$k
data $B$O <a node="binary"><concept>binary</concept></a> $B$H8F$V$3$H$K$9
$B$k!#
<p>
$B$A$J$_$K!"7bit $B$GI=8=$G$-$k data $B$O 8bit $B$G$bI=8=$G$-$k!#$h$C$F!"
``8bit'' $B$H8@$C$?>l9g!"#19T$, 998 byte $B0J2<$NG$0U$N data $B$r;X$9$3$H$,
$B$"$k!#
 
 
<h3> ASCII
<node> ASCII
<p>
$B%"%a%j%+O"K.$G;H$o$l$kJ8;z$rId9f2=$7$?<dref>$BId9f2=J8;z=89g</dref>$B!#
A-Z, a-z $B$N Latin $BJ8;z$H?t;z!"4v$D$+$N5-9f$+$i$J$k!#ISO 646 $B$N0l$D$G!"
$B8=:_$O9q:]4p=`HG (IRV) $B$K$J$C$F$$$k!#
 
<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 <dref>MIME</dref> $B$K$*$1$k <a
node="binary">binary data</a> $B$N network $B$G$NJQ49K!$N#1$D!#
<p>
$B!X64 $B?J?t!Y$H$$$&0UL#$G!"3 byte $B$N data $B$r 0 $B$+$i 63 $B$N?t$rI=$9
<dref>ASCII</dref> 4 $BJ8;z$KJQ49$9$kJ}K!!#!J$b$7!"4 $BJ8;z$K$J$i$J$1$l$P
<concept>pad</concept> $B$H8F$P$l$k5M$aJ*$r$7$FD9$5$rD4@0$9$k!K
<p>
$B$3$N 65 $B<oN`$NJ8;z$O ASCII $B$H EBCDIC $B$N6&DLItJ,$+$iA*$P$l$F$*$j!"
Internet $B0J30$N network $B$r7PM3$9$k>l9g$G$b0BA4$KE>Aw$G$-$k$h$&$K@_7W$5
$B$l$F$$$k!#
 
 
<h3> binary
<node> binary
<p>
$BG$0U$N byte $BNs$r <concept>binary</concept> $B$H8F$V!#
<p>
<dref>8bit</dref> $B$H0[$J$k$N$O data $B$K9T$N9=B$$r2>Dj$7$J$$$3$H$G$"$k!#
<p>
$B$^$?!"9T$N9=B$$,$"$C$F$b!"999 byte $B0J>e$+$i$J$k9T$,$"$k>l9g$b binary
$B$H8F$V$3$H$K$9$k!#
<p>
$B$A$J$_$K!"<dref>7bit</dref> $B$d 8bit $B$GI=8=$G$-$k data $B$O binary $B$G$bI=
$B8=$G$-$k!#$h$C$F!"<concept>binary data</concept> $B$H8@$C$?>l9g!"G$0U$N
data $B$r;X$9$3$H$,$"$k!#
 
 
<h3> Coded character set$B!JId9f2=J8;z=89g!K, Character code$B!JJ8;zId9f!K
<node> Coded character set
<p>
$BJ8;z$H byte $BNs$H#1BP#1$KBP1~IU$1$k[#Kf$G$J$$5,B'$N=89g!#
 
 
<h3> media-type
<node> media-type
<p>
<dref>MIME</dref> $B$K$*$1$k <dref>entity</dref> $B$N<oN`!#
<concept>primary-type</concept> $B$H <concept>subtype</concept> $B$+$i$J$k!#
<dref>RFC 2046</dref> $B$GDj5A$5$l$F$$$k!#
<p>
primary-type $B$OI8=`$G$O
 
<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 application/octet-stream, audio/basic,
image/jpeg, <dref>multipart/mixed</dref>, <dref>text/plain</dref>,
video/mpeg $B$J$I$N$5$^$6$^$J subtype $B$,Dj5A$5$l$F$$$k!#
 
<memo title="$BCm0U">
<p>
$B$3$3$G$O!"text/plain $B$J$I$N type/subtype $B$NAH$r$7$P$7$P
<concept>primary-type/subtype</concept> $B$H=q$/!#
</memo>
 
<p>
media-type $B$O!"RFC 2046 $B$GDj5A$5$l$F$$$k$b$N$K2C$($F!"EPO?$9$k$3$H$b$G
$B$-$k!#8=:_!"EPO?$5$l$F$$$k$b$N$O <a
href="ftp://ftp.isi.edu/in-notes/iana/assignments/media-types">MEDIA
TYPES</a> $B$G;2>H$G$-$k!#
<p>
$B$^$?!"type $B$b$7$/$O subtype $B$K!"A0$K `x-' $B$rIU$1$?
<concept>x-token</concept> $B$rMQ$$$k$3$H$K$h$j!"EPO?$5$l$F$$$J$$$b$N$r
$B;dE*$KMQ$$$k$3$H$b$G$-$k!#$7$+$7!"EvA3$N$3$H$J$,$i!"$3$&$7$?;dE*$J
media-type $B$ONJ2r$rF@$?<T$N4V$G$7$+2r<a$G$-$J$$$N$GMxMQ$K$OCm0U$9$k$3
$B$H!#
<p>
<cf node="Content-Type">
 
 
<h3> message
<node> message
<p>
$B$3$3$G$O mail $B$H news $B5-;v$NAm>N$H$7$FMQ$$$k!#
 
 
<h3> MIME
<node> MIME
<p>
<concept>Multipurpose Internet Mail Extensions</concept> $B$NN,$G!"
Internet $B$N mail $B$d news $B$G <a node="us-ascii">us-ascii plain text</a>
$B0J30$NJ8;z$r;H$&$?$a$N <dref>RFC 822</dref> $B$KBP$9$k3HD%!#
<p>
RFC 2045 $B$OKAF,$G<!$N$h$&$K=R$Y$F$$$k!'
<p>
STD 11, RFC 822 $B$O!"US-ASCII message header $B$K4X$7$FHs>o$K>\:Y$K5,Dj$7
$B$? message $BI=8= protocol $B$rDj5A$7$F$$$k!#$7$+$7!"$=$l$OC1$K flat $B$J
US-ASCII text $B$N$_$KN1$^$j!"message $B$NFbMF$d message body $B$K4X$9$k5,Dj
$B$O$J$5$l$F$$$J$$!#Multipurpose Internet Mail Extensions, $B$"$k$$$O MIME
$B$HAm>N$5$l$k!"$3$N0lO"$NJ8=q$O!"0J2<$N;v$r2DG=$H$9$k$?$a$K message $B$N
$B7A<0$r:FDj5A$7$?!'
 
<ol>
<li>$BJ8=q message body $B$K$*$1$k US-ASCII $B0J30$NJ8;z=89g
</li>
<li>$BHsJ8=q message body
</li>
<li>$BJ#?t$NItJ,$+$i$J$k message body
</li>
<li>US-ASCII $B0J30$NJ8;z=89g$+$i$J$kJ8=q header $B>pJs
</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!#
 
 
<h3> MIME charset
<node> MIME charset
<p>
<dref>Content-Type</dref> $BMs$d <dref>encoded-word</dref> $B$N charset
parameter $B$GMQ$$$i$l$kEPO?$5$l$?<a node="Coded character set">$BId9f2=J8
$B;z=89g</a>$B!#
<p>
<dref>RFC 2045</dref> $B$GDj5A$5$l$F$$$k!#
<p>
iso-2022-jp $B$d euc-kr $B$O$=$N#1$D!#
 
 
<h3> MTA
<node> MTA
<p>
<concept>Message Transfer Agent</concept> $B$NN,$G!"qmail $B$d sendmail $B$J
$B$I$N mail $BG[Aw program $B$H inn $B$J$I$N news server $B$NAm>N!#
<p>
<cf node="MUA">
 
 
<h3> MUA
<node> MUA
<p>
<concept>Message User Agent</concept> $B$NN,$G!"mail reader $B$H news
reader $B$NAm>N!#
<p>
<cf node="MTA">
 
 
<h3> Quoted-Printable
<node> Quoted-Printable
<p>
<dref>RFC 2045</dref> $B$GDj5A$5$l$F$$$k <dref>MIME</dref> $B$K$*$1$k
<dref>binary data</dref> $B$N network $B$G$NJQ49K!$N#1$D!#
<p>
`=' $B$d@)8fJ8;z$d 128 $B0J>e$NJ8;z$J$I$O `=AF' $B$N$h$&$K `=' $B$N8e$KB3$/ 16
$B?J?t$GI=8=$9$k!#$3$N$?$a!"<dref>ASCII</dref> $BJ8;zCf?4$N data $B$G$O
<dref>Base64</dref> $B$KHf$Y$k$H2DFI@-$,9b$/$J$k2DG=@-$,$"$k!#
<p>
$B$7$+$7$J$,$i!"EBCDIC $B$K$OB8:_$7$J$$J8;z$rMxMQ$9$k>l9g!"EBCDIC $B$rMxMQ$7
$B$F$$$k network $B$G$O0BA4$KE>Aw$9$k$3$H$,$G$-$:!"Base64 $B$KHf$Y$F0BA4@-$O
$BDc$$!#
 
 
<h3> RFC 822
<node> RFC 822
<p>
Internet mail $B$N<g$K <concept>message header</concept> $B$K4X$9$k7A<0$K
$B4X$9$kI8=`$rDj$a$F$$$k RFC.
 
<memo>
<p>
news message $B$b$3$l$K=`$8$F$$$k$N$G!"<concept>Internet mail</concept>
$B$H=q$/$h$j$b!"<concept>Internet message</concept> $B$H=q$$$?J}$,NI$$$+$b
$B$7$l$J$$!#
</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 message $B$N7A<0$rDj$a$? RFC. <dref>RFC 822</dref> $B$N
subset $B$K$J$C$F$$$k!#Internet $B$NI8=`$G$O$J$$$,!"USENET $B0J30$N netnews
$B$G$b$3$l$K=`$8$F$$$k$b$N$,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$$<a node="Coded character set">$BJ8;zId9f
</a>$B$N$_$GI=8=$5$l$k text $B>pJs!#<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 <dref>MIME
charset</dref> $B$N#1$D!#
<p>
<dref>ASCII</dref> $B$N$_$+$i$J$j ISO 2022 $B$K$h$kId9f3HD%$O5v$5$l$J$$!#
<p>
Internet message $B$K$*$1$kI8=`$N<a node="Coded character set">$BId9f2=J8
$B;z=89g</a>$B$G$"$j!"L@<(E*$K MIME charset $B$,<($5$l$J$$>l9g$O86B'$H$7$F
<concept>us-ascii</concept> $B$,;H$o$l$k!#
<p>
$B$^$?!"<dref>RFC 822</dref> $B$K$*$1$k <concept>ASCII</concept>
$B$O us-ascii $B$G$"$k!#
 
 
<h2> bug $BJs9p$N;EJ}
<node> Bug report
<p>
FLIM $B$N%P%0$r8+$D$1$?$i!"0J2<$N address $B$K mail $B$rAw$C$F$/$@$5$$!'
 
<ul>
<li> $B1Q8l <mail>emacs-mime-en@m17n.org</mail>
<li> $BF|K\8l <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 bug $B$O!"
$B?7$7$$HG$G$O<#$C$F$$$k$+$b$7$l$^$;$s!#$^$:!":G?7HG$G3NG'$7$F$_$^$7$g$&!#
<p>
$B$=$l$+$i!"E,@Z$JJs9p$r$7$^$7$g$&!#C1$K!V$&$^$/F0$+$J$$!W$H8@$o$l$F$b$I
$B$&$$$&>u67$J$N$+$O$5$C$Q$jH=$j$^$;$s!#:GDc8B!"OS, emacs, APEL, FLIM,
SEMI, $B;H$C$F$$$k MUA $B$N<oN`$*$h$SHG!"@_Dj$r=q$/I,MW$,$"$j$^$9!#$^$?!"
error $B$,5/$C$F$$$k>l9g$O backtrace $B$rAw$k$3$H$b=EMW$G$9!#<cf
file="emacs" node="Bugs">
<p>
$B$^$?!"bug $B$OBgDqJ#?t$N?M$,Ax6x$9$k$b$N$G$9!J$=$&$G$J$1$l$P!"bug $B$G$O$J
$B$$2DG=@-$,$"$j$^$9!K!#$@$+$i!":n<T$KD>@\ mail $B$rAw$k$H:n<T$OF1$8 mail
$B$r2?DL$b=q$/1)L\$K$J$j$^$9!#$@$+$i!"I,$: bug $BJs9p$O>e5-$N address $B$KAw$C
$B$F$/$@$5$$!#
 
<p>
EMACS-MIME ML $B$G$O FLIM $B$N%P%0>pJs$N8r49$d:G?7HG$NG[I[!"FLIM $B$N2~NI$K
$B4X$9$k5DO@$r9T$J$C$F$$$^$9!#EMACS-MIME ML $B$K;22C$7$?$$J}$O
 
<ul>
<li> $B1Q8l <mail>emacs-mime-en-ctl@m17n.org</mail>
<li> $BF|K\8l <mail>emacs-mime-ja-ctl@m17n.org</mail>
</ul>
 
<noindent>
$B$K6u$N mail $B$rAw$C$F2<$5$$!#
 
 
<h2> CVS $B$K$h$k3+H/
<node> CVS
<p>
FLIM $B$N file $B$O CVS $B$r;H$C$F4IM}$5$l$F$$$^$9!#$3$N$?$a!"0J2<$NJ}K!$G:G
$B?7$N FLIM $B$rF~<j$9$k$3$H$,$G$-$^$9!'
 
<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
 
<ul>
<li> <mail>cvs@cvs.m17n.org</mail>
</ul>
 
<noindent>
$B$^$G!"%"%+%&%s%HL>$H ssh $B$N8x3+80$rAw$C$F$/$@$5$$!#ssh $B7PM3$G$O!"
cvsroot $B$O :ext:cvs@cvs.m17n.org:/cvs/root $B$H$J$j$^$9!#
 
 
<h2> $BNr;K
<node> History
<p>
FLIM $B$N code $B$N:G8E$NItJ,$O $B1]JB $B;LCR $B;a$,=q$$$? <file>mime.el</file>
$B$K5/8;$7$^$9!#$3$N>.$5$J program $B$O Nemacs $B$GF0:n$9$k iso-2022-jp $B$N
B-encoding $B@lMQ$N encoded-word $B$NI|9f2=%W%m%0%i%`$G$7$?!#
<p>
$B$=$N8e!"<i2, $BCNI' $B$O <file>mime.el</file> $B$r85$K
<file>tiny-mime.el</file> $B$H$$$&%W%m%0%i%`$r=q$-$^$9!#$3$l$O!"Nemacs
$B$H Mule $B$GF0:n$9$k encoded-word $B$NId9f2=!&I|9f2=%W%m%0%i%`$G$7$?!#
<file>tiny-mime.el</file> $B$O B-encoding $B$@$1$G$J$/ Q-encoding $B$b
support $B$7!"$^$?!"MULE $B$G07$&$3$H$,$G$-$k$5$^$6$^$J <dref>MIME
charset</dref> $B$rF1;~$K;H$&$3$H$,$G$-$^$7$?!#$3$N;~!"Nemacs $B$H Mule $B$N
$BAPJ}$r support $B$9$k$?$a$KMQ$$$i$l$?%F%/%K%C%/$O8e$K emu package $B$K$^$H
$B$a$i$l$^$9!#
<p>
$B$3$N:"!"<i2, $BCNI' $B$O <file>tiny-mime.el</file> $B$r$5$^$6$^$J MUA $B$G;H$&
$B$?$a$N@_Dj=8$bG[I[$7$F$$$^$7$?$,!"$=$l$i$O8e$K
<file>tiny-mime.el</file> $B$H$H$b$K#1$D$N package $B$K$^$H$a$i$l!"tm $B$H$$
$B$&L>A0$GG[I[$5$l$^$9!#
<p>
$B<i2, $BCNI' $B$O$d$,$F!"MIME message $B$r1\Mw$9$k$?$a$N%W%m%0%i%`$G$"$k
<file>tm-body.el</file> $B$r=q$-$^$9!#$3$l$O!"$9$0$K
<file>tm-view.el</file> $B$H$$$&L>A0$KJQ$o$j$^$7$?$,!"$d$,$F!"$3$l$,
<file>tiny-mime.el</file> $B$KBe$o$C$F!"tm $B$NCf3K$H$J$j$^$9!#
<p>
<file>tm-view.el</file> $B$OEvA3!"Content-Transfer-Encoding $B$r07$&I,MW$,
$B$"$j$^$9!#$3$NL\E*$N$?$a$K!"MEL $B$,@0Hw$5$l$O$8$a$^$7$?!#Base64 $B$K4X$7
$B$F$O <file>tiny-mime.el</file> $B$N code $B$,0\$5$l!"$^$?!"?7$?$K
Quoted-Printable $B$N code $B$,DI2C$5$l$^$7$?!#$3$l$i$,
<file>mel-b.el</file> $B$H <file>mel-q.el</file> $B$K$J$j$^$7$?!#
<p>
$B$^$?!"8e$K!"<i2, $BCNI' $B$K$h$C$F uuencode $BMQ$N <file>mel-u.el</file> $B$,
$BDI2C$5$l!"$=$N8e$K!">.NS $B=$J? $B;a$K$h$C$F x-gzip64 $BMQ$N
<file>mel-g.el</file> $B$,DI2C$5$l$^$7$?!#
<p>
tm $B$G$O8e$K!"<i2, $BCNI' $B$K$h$C$F <file>tiny-mime.el</file> $B$N:F<BAu$,9T
$B$o$l!"$3$N2aDx$G!"STD 11 $B$N parser $B$,=q$+$l$^$7$?!#$3$l$O!"8=:_$N
<file>std11.el</file> $B$KEv$?$j$^$9!#$^$?!"$3$N2aDx$G
<file>tiny-mime.el</file> $B$OI|9f2=$r9T$& <file>tm-ew-d.el</file> $B$HId
$B9f2=$r9T$& <file>tm-ew-e.el</file> $B$KJ,$1$i$l$^$7$?!#$3$NN><T$,8=:_$N
<file>eword-decode.el</file> $B$H <file>eword-encode.el</file> $B$N@hAD$K
$BEv$?$j$^$9!#
<p>
$B8e$K!"<i2, $BCNI' $B$i$K$h$C$F tm $B$NA4LL=q$-49$(:n6H$,9T$o$l!"$3$N2aDx$G!"
tm $B$O APEL, MEL, SEMI, EMH, RMAIL-MIME, Gnus-MIME $B$J$I$KJ,$1$i$l$^$7$?!#
$B$3$N$&$A$N MEL $B$, FLIM $B$ND>@\$N@hAD$KEv$?$j$^$9!#
<p>
$B8e$K!"APEL $B$+$i <file>std11.el</file> $B$,0\$5$l!"$^$?!"
<file>mailcap.el</file>, <file>eword-decode.el</file> $B$*$h$S
<file>eword-encode.el</file> $B$, SEMI $B$+$i0\$5$l!"package $B$NL>A0$, FLIM
$B$H$J$j$^$9!#
<p>
$B$3$ND>A0$+$iEDCf $BE/ $B;a$,$h$j RFC $B$KCi<B$J<BAu$r=q$-;O$a!"$3$l$O!"8=:_!"
FLIM $B$N;^$G$"$k ``FLIM-FLAM'' $B$H$J$C$F$$$^$9!#
 
 
<h1> $B35G0:w0z
<node> Concept Index
 
<cindex>
 
 
<h1> $B4X?t:w0z
<node> Function Index
 
<findex>
 
 
<h1> $BJQ?t:w0z
<node> Variable Index
 
<vindex>
 
</body>