1623 lines
49 KiB
Plaintext
1623 lines
49 KiB
Plaintext
\input texinfo.tex
|
||
@c Generated automatically from mime-ja.sgml by sinfo 3.7.
|
||
@setfilename mime-ja.info
|
||
@settitle{FLIM 1.14 MIME $B5!G=@bL@=q(B}
|
||
@titlepage
|
||
@title FLIM 1.14 MIME $B5!G=@bL@=q(B
|
||
@author $B<i2,(B $BCNI'(B <morioka@@jaist.ac.jp>
|
||
@subtitle 1999-01-27
|
||
@end titlepage
|
||
@node Top, Introduction, (dir), (dir)
|
||
@top FLIM 1.14 MIME $B5!G=@bL@=q(B
|
||
|
||
@ifinfo
|
||
|
||
This file documents MIME features of FLIM, a fundamental library to
|
||
process Internet Messages for GNU Emacsen.@refill
|
||
|
||
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
|
||
@end ifinfo
|
||
|
||
@menu
|
||
* Introduction:: FLIM $B$C$F2?!)(B
|
||
* How to use:: FLIM $B$N(B MIME $B5!G=$N;H$$J}(B
|
||
* Entity:: Message $B$H(B Entity
|
||
* Content-Type:: Content-Type $BMs$N>pJs(B
|
||
* Content-Disposition:: Content-Disposition $BMs$N>pJs(B
|
||
* Content-Transfer-Encoding:: $BId9f2=K!(B
|
||
* encoded-word:: Header $B$N(B network $BI=8=(B
|
||
* custom:: $B0lHL@_Dj(B
|
||
* Appendix:: $BIUO?(B
|
||
* Concept Index:: $B35G0:w0z(B
|
||
* Function Index:: $B4X?t:w0z(B
|
||
* Variable Index:: $BJQ?t:w0z(B
|
||
@end menu
|
||
|
||
@node Introduction, How to use, Top, Top
|
||
@chapter FLIM $B$C$F2?!)(B
|
||
|
||
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
|
||
|
||
|
||
@node How to use, Entity, Introduction, Top
|
||
@chapter FLIM $B$N(B MIME $B5!G=$N;H$$J}(B
|
||
|
||
FLIM $B$NDs6!$9$k(B MIME $B5!G=$r;H$&$?$a$K$O(B
|
||
|
||
@lisp
|
||
(require 'mime)
|
||
@end lisp
|
||
|
||
@noindent
|
||
$B$rI>2A$7$F$/$@$5$$!#(B
|
||
|
||
|
||
@node Entity, Content-Type, How to use, Top
|
||
@chapter Message $B$H(B Entity
|
||
@cindex mime-entity
|
||
@cindex entity
|
||
|
||
RFC 2045 (@ref{RFC 2045}) $B$K$h$l$P!"!V(BEntity $B$H$$$&8l$O!"(Bmessage, $B$b$7$/(B
|
||
$B$O!"(Bmultipart 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 @strong{entity}$B$rMQ$$$k(B
|
||
$B$3$H$K$7$^$9!#(B@refill
|
||
|
||
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@refill
|
||
|
||
FLIM $B$O(B entity $B$N>pJs$rI=8=$9$k$?$a$K(B@strong{mime-entity} $B9=(B
|
||
$BB$BN$rMQ$$$^$9!#0J2<$G$OC1$K(B mime-entity $B$H8F$V$3$H$K$7$^$9!#(B
|
||
|
||
|
||
@menu
|
||
* Entity creation:: Entity $B$N@8@.(B
|
||
* Entity hierarchy:: Entity $B3,AX(B
|
||
* Entity Search:: Entity $B$N8!:w(B
|
||
* Entity Attributes:: Entity $B$NB0@-(B
|
||
* Entity-header:: Entity header $B$N>pJs(B
|
||
* entity formatting:: Entity $B$NJ8;zI=8=(B
|
||
* Entity-content:: Entity $B$NFbMF(B
|
||
* Entity-network-representation:: Entity $B$N%M%C%H%o!<%/I=8=(B
|
||
* Entity buffer:: Entity $B$N(B buffer $B$K$h$kI=8=(B
|
||
* mm-backend:: Entity $B$NI=8=$H<B8=(B
|
||
@end menu
|
||
|
||
@node Entity creation, Entity hierarchy, Entity, Entity
|
||
@section Entity $B$N@8@.(B
|
||
|
||
@defun mime-open-entity type location
|
||
|
||
Entity $B$r3+$$$F!"$=$l$rJV$7$^$9!#(B@refill
|
||
|
||
@var{type} $B$O(B representation-type $B$G$9!#(B(cf. @ref{mm-backend}) @refill
|
||
|
||
@var{location} $B$O(B entity $B$N0LCV$G$9!#;XDjJ}K!$O(B
|
||
representation-type $B$K0M$C$FJQ$o$j$^$9!#(B
|
||
@end defun
|
||
|
||
|
||
@defun mime-parse-buffer &optional buffer type
|
||
|
||
@var{buffer} $B$r(B message $B$H$7$F9=J82r@O$7!"$=$N7k2L$N(B mime-entity $B$r(B
|
||
@var{buffer} $B$N(B@code{mime-message-structure} $B$K3JG<$9$k!#(B@refill
|
||
|
||
@var{buffer} $B$,>JN,$5$l$?>l9g!"8=:_$N(B buffer $B$r9=J82r@O$9$k!#(B@refill
|
||
|
||
@var{type} $B$,;XDj$5$l$?>l9g!"$=$NCM$r@8@.$5$l$k(B mime-entity $B$NI=>]7?$H$7(B
|
||
$B$FMQ$$$k!#>JN,$5$l$?>l9g$O(B @var{buffer} $B$H$J$k!#(B(cf. @ref{mm-backend})
|
||
@end defun
|
||
|
||
|
||
|
||
@node Entity hierarchy, Entity Search, Entity creation, Entity
|
||
@section Entity $B3,AX(B
|
||
@cindex node-id
|
||
@cindex entity-number
|
||
@cindex message
|
||
@cindex root-entity
|
||
|
||
MIME message $B$O(B entity $B$rC10L$H$9$kLZ9=B$$K$J$C$F$$$^$9!#(B@refill
|
||
|
||
$B$3$NLZ$K$*$$$F:,$H$J$k@a$O(B message $BA4BN$rI=$9(B entity $B$G$9!#$3$3$G$O!"$3(B
|
||
$B$l$r(B @strong{root-entity} $B$b$7$/$O(B@strong{message} $B$H8F$S$^$9!#(B@refill
|
||
|
||
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$,$G$-(B
|
||
$B$^$9!#(B@refill
|
||
|
||
$B0lJ}!"(Bentity $B$N(B message $B$K$*$1$k0LCV$r9M$($k$3$H$b$G$-$^$9!#(B@refill
|
||
|
||
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
|
||
@example
|
||
|
||
$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
|
||
@end example
|
||
|
||
@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 @strong{entity-number} $B$H8F$S$^$9!#(Bentity-number $B$O(B S $B<0$H(B
|
||
$B$7$F$O(B @code{(1 2 3)} $B$N$h$&$J@0?t$N%j%9%H$H$7$FI=8=$5$l$^$9!#(B
|
||
|
||
mime-entity $B$G$O!"$3$l$HF1MM$N(B @strong{node-id} $B$rMQ$$$^$9!#(Bnode-id $B$O$A$g(B
|
||
$B$&$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)} $B$G$9!#(B@refill
|
||
|
||
$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} $B$K3JG<$9$k$3$H$K$7$^$9!#(B@refill
|
||
|
||
@code{mime-message-structure} $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 mime-message-structure
|
||
|
||
$B8=:_$N(B buffer $B$K$*$1$k(B message $BA4BN$N(B mime-entity $B9=B$BN$r3JG<$9$k(Bbuffer
|
||
local $BJQ?t!#(B
|
||
@end defvar
|
||
|
||
|
||
@defun mime-entity-children entity
|
||
|
||
@var{entity} $B$K4^$^$l$k(B entity $B$N(B list $B$rJV$9!#(B
|
||
@end defun
|
||
|
||
|
||
@defun mime-entity-parent entity &optional message
|
||
|
||
@var{entity} $B$N?F$N(B entity $B$rJV$9!#(B@refill
|
||
|
||
@var{message} $B$,;XDj$5$l$?>l9g!"$3$l$r:,$H8+Jo$9!#(B
|
||
@end defun
|
||
|
||
|
||
@defun mime-root-entity-p entity
|
||
|
||
@var{entity} $B$,:,!JB($A!"(Bmessage $BA4BN!K$G$"$k>l9g$K!"Hs(B-@code{nil} $B$rJV(B
|
||
$B$9!#(B
|
||
@end defun
|
||
|
||
|
||
@defun mime-entity-node-id entity
|
||
|
||
@var{entity} $B$N(B node-id $B$rJV$9!#(B
|
||
@end defun
|
||
|
||
|
||
@defun mime-entity-number entity
|
||
|
||
@var{entity} $B$N(B entity-number $B$rJV$9!#(B
|
||
@end defun
|
||
|
||
|
||
|
||
@node Entity Search, Entity Attributes, Entity hierarchy, Entity
|
||
@section Entity $B$N8!:w(B
|
||
|
||
@defun mime-find-entity-from-number entity-number &optional message
|
||
|
||
@var{message} $B$+$i!"(B@var{enity-number} $B$N(B entity $B$rJV$7$^$9!#(B@refill
|
||
|
||
@var{message} $B$,;XDj$5$l$F$$$J$$>l9g$O!"(B
|
||
@code{mime-message-structrue} $B$,;H$o$l$^$9!#(B
|
||
@end defun
|
||
|
||
|
||
@defun mime-find-entity-from-node-id entity-node-id &optional message
|
||
|
||
@var{message} $B$+$i!"(B@var{entity-node-id} $B$N(B entity $B$rJV$7$^$9!#(B@refill
|
||
|
||
@var{message} $B$,;XDj$5$l$F$$$J$$>l9g$O!"(B
|
||
@code{mime-message-structure} $B$,;H$o$l$^$9!#(B
|
||
@end defun
|
||
|
||
|
||
@defun mime-find-entity-from-content-id cid &optional message
|
||
|
||
@var{message} $B$+$i!"(B@var{cid} $B$N(B entity $B$rJV$7$^$9!#(B@refill
|
||
|
||
@var{message} $B$,;XDj$5$l$F$$$J$$>l9g$O!"(B
|
||
@code{mime-message-structure} $B$,;H$o$l$^$9!#(B
|
||
@end defun
|
||
|
||
|
||
|
||
@node Entity Attributes, Entity-header, Entity Search, Entity
|
||
@section Entity $B$NB0@-(B
|
||
|
||
@defun mime-entity-content-type entity
|
||
|
||
@var{entity} $B$N(B content-type $B$rJV$9!#(B(cf. @ref{mime-content-type})
|
||
@end defun
|
||
|
||
|
||
@defun mime-entity-content-disposition entity
|
||
|
||
@var{entity} $B$N(B content-disposition $B$rJV$9!#(B
|
||
(cf. @ref{mime-content-disposition})
|
||
@end defun
|
||
|
||
|
||
@defun mime-entity-filename entity
|
||
|
||
@var{entity} $B$N(B file $BL>$rJV$9!#(B
|
||
@end defun
|
||
|
||
|
||
@defun mime-entity-encoding entity &optional default-encoding
|
||
|
||
@var{entity} $B$N(B content-transfer-encoding $B$rJV$9!#(B
|
||
(cf. @ref{Content-Transfer-Encoding}) @refill
|
||
|
||
$B$b$7!"(B@var{entity} $B$K(B Content-Transfer-Encoding $BMs$,B8:_$7$J$$>l9g$O!"(B
|
||
@var{default-encoding} $B$rJV$9!#$3$l$,;XDj$5$l$J$$>l9g$O!"(B@code{"7bit"}
|
||
$B$rMQ$$$k!#(B
|
||
@end defun
|
||
|
||
|
||
@defun mime-entity-cooked-p entity
|
||
|
||
@var{entity} $B$NFbMF$,4{$K%3!<%IJQ49$5$l$F$$$k>l9g$O(B nil $B$GL5$$CM(B
|
||
$B$rJV$9!#(B
|
||
@end defun
|
||
|
||
|
||
|
||
@node Entity-header, entity formatting, Entity Attributes, Entity
|
||
@section Entity header $B$N>pJs(B
|
||
|
||
@defun mime-fetch-field field-name &optional entity
|
||
|
||
@var{entity} $B$N(B header $BCf$N(B @var{field-name} $BMs$N(B body $B$rJV$9!#(B@refill
|
||
|
||
$B7k2L$NJ8;zNs$O(B network $BI=8=$N$^$^$G$"$k!#(B@refill
|
||
|
||
@var{entity} $B$,>JN,$5$l$?>l9g$O!"(B@code{mime-message-structure} $B$NCM$rMQ(B
|
||
$B$$$k!#(B@refill
|
||
|
||
@var{field-name} $BMs$,B8:_$7$J$$>l9g$O(B @code{nil} $B$rJV$9!#(B
|
||
@end defun
|
||
|
||
|
||
@defun mime-read-field field-name &optional entity
|
||
|
||
@var{entity} $B$N(B header $BCf$N(B @var{field-name} $BMs$r9=J82r@O$7$?7k2L$rJV$9!#(B
|
||
@refill
|
||
|
||
$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@refill
|
||
|
||
$B7k2LCf$NJ8;zNs$O(B Emacs $B$NFbItI=8=$KJQ49$5$l$k!#(B@refill
|
||
|
||
@var{entity} $B$,>JN,$5$l$?>l9g$O!"(B@code{mime-message-structure} $B$NCM$rMQ(B
|
||
$B$$$k!#(B@refill
|
||
|
||
@var{field-name} $BMs$,B8:_$7$J$$>l9g$O(B nil $B$rJV$9!#(B
|
||
@end defun
|
||
|
||
|
||
|
||
@node entity formatting, Entity-content, Entity-header, Entity
|
||
@section Entity $B$NJ8;zI=8=(B
|
||
|
||
@defun mime-insert-header entity &optional invisible-fields visible-fields
|
||
|
||
$B8=:_0LCV$K(B @var{entity} $B$NI|9f$7$?(B header $B$rA^F~$9$k!#(B@refill
|
||
|
||
@var{invisible-fields} $B$H(B @var{visible-fields} $B$O@55,I=8=$N(Blist $B$G!"$=$l(B
|
||
$B$>$l!"I=<($7$?$/$J$$(B field $BL>$HI=<($7$?$$MsL>$rI=8=$7$?$b$N$G$"$k!#(B
|
||
@refill
|
||
|
||
@var{invisible-fields} $B$NMWAG$N$I$l$+$K(B match $B$7!"$+$D!"(B
|
||
@var{visible-fields} $B$NMWAG$N$I$l$K$b(B match $B$7$J$$Ms$OI=<($5$l$J$$!#(B
|
||
@refill
|
||
|
||
encoded-word (@ref{encoded-word}) $B$OI|9f$5$l$k!#!X@8$NHs(B us-ascii $BJ8;z!Y(B
|
||
$B$O(B @code{default-mime-charset} $B$H$7$F2r<a$5$l$k!#(B
|
||
@end defun
|
||
|
||
|
||
@defun mime-insert-text-content entity
|
||
|
||
point $B$NA0$K(B @var{entity} $B$r(B text entity $B$H$7$FA^F~$7$^$9!#(B@refill
|
||
|
||
@var{entity} $B$NFbMF$O(B @ref{MIME charset} $B$H$7$FI|9f2=$5$l(B
|
||
$B$^$9!#(B@var{entity} $B$N(B Content-Type field $B$K(B charset paramter $B$,L5(B
|
||
$B$$$H!"(B@code{default-mime-charset} $B$,=i4|CM$H$7$F;H$o$l$^$9!#(B
|
||
@end defun
|
||
|
||
|
||
@defvar default-mime-charset
|
||
|
||
$BE,@Z$J(B MIME charset (@ref{MIME charset}) $B$,8+$D$+$i$J$+$C$?>l9g$KMQ$$$i(B
|
||
$B$l$k(BMIME charset.@refill
|
||
|
||
$BK\Mh$O(B APEL $B$NJQ?t$G$"$k!#(B
|
||
@end defvar
|
||
|
||
|
||
|
||
@node Entity-content, Entity-network-representation, entity formatting, Entity
|
||
@section Entity $B$NFbMF(B
|
||
|
||
@defun mime-entity-content entity
|
||
|
||
@var{entity} $B$NFbMF$N(B byte $BNs$rJV$9!#(B
|
||
@end defun
|
||
|
||
|
||
@defun mime-insert-entity-content entity
|
||
|
||
point $B$N0LCV$K(B @var{entity} $B$NFbMF$rA^F~$7$^$9!#(B
|
||
@end defun
|
||
|
||
|
||
@defun mime-write-entity-content entity filename
|
||
|
||
@var{entity} $B$NFbMF$r(B @var{filename} $B$K=q$-9~$_$^$9!#(B
|
||
@end defun
|
||
|
||
|
||
|
||
@node Entity-network-representation, Entity buffer, Entity-content, Entity
|
||
@section Entity $B$N%M%C%H%o!<%/I=8=(B
|
||
|
||
@defun mime-insert-entity entity
|
||
|
||
@var{entity} $B$N(B header $B$H(B body $B$r(B point $B$N$H$3$m$KA^F~$7$^$9!#(B
|
||
@end defun
|
||
|
||
|
||
@defun mime-write-entity entity filename
|
||
|
||
@var{entity} $B$NI=8=$r(B @var{filename} $B$K=q$-9~$_$^$9!#(B
|
||
@end defun
|
||
|
||
|
||
@defun mime-write-entity-body entity filename
|
||
|
||
@var{entity} $B$N(B body $B$r(B @var{filename} $B$K=q$-9~$_$^$9!#(B
|
||
@end defun
|
||
|
||
|
||
|
||
@node Entity buffer, mm-backend, Entity-network-representation, Entity
|
||
@section Entity $B$N(B buffer $B$K$h$kI=8=(B
|
||
|
||
@defun mime-entity-buffer entity
|
||
|
||
@var{entity} $B$,B8:_$9$k(B buffer $B$rJV$9!#(B
|
||
@end defun
|
||
|
||
|
||
@defun mime-entity-point-min entity
|
||
|
||
@var{entity} $B$,B8:_$9$k(B buffer $B$K$*$1$k!"(B@var{entity} $B$,@j$a$kNN0h$N@hF,(B
|
||
$B0LCV$rJV$9!#(B
|
||
@end defun
|
||
|
||
|
||
@defun mime-entity-point-max entity
|
||
|
||
@var{entity} $B$,B8:_$9$k(B buffer $B$K$*$1$k!"(B@var{entity} $B$,@j$a$kNN0h$NKvHx(B
|
||
$B0LCV$rJV$9!#(B
|
||
@end defun
|
||
|
||
|
||
@defun mime-entity-header-start entity
|
||
|
||
@var{entity} $B$,B8:_$9$k(B buffer $B$K$*$1$k!"(Bheader $B$,@j$a$kNN0h$N@hF,0LCV$r(B
|
||
$BJV$9!#(B
|
||
@end defun
|
||
|
||
|
||
@defun mime-entity-header-end entity
|
||
|
||
@var{entity} $B$,B8:_$9$k(B buffer $B$K$*$1$k!"(Bheader $B$,@j$a$kNN0h$NKvHx0LCV$r(B
|
||
$BJV$9!#(B
|
||
@end defun
|
||
|
||
|
||
@defun mime-entity-body-start entity
|
||
|
||
@var{entity} $B$,B8:_$9$k(B buffer $B$K$*$1$k!"(Bbody $B$,@j$a$kNN0h$N@hF,0LCV$rJV(B
|
||
$B$9!#(B
|
||
@end defun
|
||
|
||
|
||
@defun mime-entity-body-end entity
|
||
|
||
@var{entity} $B$,B8:_$9$k(B buffer $B$K$*$1$k!"(Bbody $B$,@j$a$kNN0h$NKvHx0LCV$rJV(B
|
||
$B$9!#(B
|
||
@end defun
|
||
|
||
|
||
|
||
@node mm-backend, , Entity buffer, Entity
|
||
@section Entity $B$NI=8=$H<B8=(B
|
||
@cindex mm-backend
|
||
@cindex entity $B=hM}(B method
|
||
@cindex representation-type
|
||
|
||
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@refill
|
||
|
||
$B$3$3$G!"(Bentity $B$,$I$&$$$&<oN`$NI=8=$r9T$C$F$$$k$+$r<($9$N$,(B
|
||
@strong{representation-type} $B$G!"(Bentity $B$r@8@.$9$k;~$K$O$3$l$r;XDj$7$^$9!#(B
|
||
(cf. @ref{Entity Creation}) @refill
|
||
|
||
$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:]$N=hM}$r9T$&4X?t$r8F(B
|
||
$B$S=P$7$^$9!#$3$N$h$&$J4X?t$r(B @strong{entity $B=hM}(Bmethod} $B$H8F$S$^$9!#$^$?!"(B
|
||
representation-type $BKh$K$3$N$h$&$J4X?t$r$^$H$a$?$b$N$r(B
|
||
@strong{mm-backend} $B$H8F$S$^$9!#(B@refill
|
||
|
||
mm-backend $B$O(B representation-type $B$NL>A0$N@hF,$K(B @code{mm} $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} $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
|
||
|
||
|
||
@menu
|
||
* Request for entity:: Entity $B$X$NJX$j(B
|
||
* mm-backend module:: mm-backend $B$N:n$jJ}(B
|
||
@end menu
|
||
|
||
@node Request for entity, mm-backend module, mm-backend, mm-backend
|
||
@subsection Entity $B$X$NJX$j(B
|
||
|
||
@defun mime-entity-send entity message &rest args
|
||
|
||
@var{entity} $B$K(B @var{message} $B$rAw$k!#(B@refill
|
||
|
||
@var{args} $B$O(B @var{message} $B$N0z?t$G$"$k!#(B
|
||
@end defun
|
||
|
||
|
||
|
||
@node mm-backend module, , Request for entity, mm-backend
|
||
@subsection mm-backend $B$N:n$jJ}(B
|
||
|
||
@defmac mm-define-backend type &optional parents
|
||
|
||
@var{type} $B$r(B mm-backend $B$H$7$FDj5A$7$^$9!#(B@refill
|
||
|
||
@var{PARENTS} $B$,;XDj$5$l$F$$$k>l9g$O!"(B@var{type} $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
|
||
|
||
$BNc(B:@refill
|
||
|
||
@lisp
|
||
(mm-define-backend chao (generic))
|
||
@end lisp
|
||
@end defmac
|
||
|
||
|
||
@defmac mm-define-method name args &rest body
|
||
|
||
@var{name} $B$r(B (nth 1 (car @var{args})) backend $B$N(B method $B4X(B
|
||
$B?t$H$7$FDj5A$7$^$9!#(B@refill
|
||
|
||
@var{args} $B$O(B lambda $B$N0z?t%j%9%H$N$h$&$J$b$N$G$9$,!"(B(car
|
||
@var{args}) $B$O;XDj$5$l$?(B parameter $B$G$"$kI,MW$,$"$j$^$9!#(B(car
|
||
(car @var{args})) $B$OJQ?t$NL>A0$G!"(B(nth 1 (car @var{args}))
|
||
$B$O(B backend $B$NL>A0(B (representation-type) $B$G$9!#(B@refill
|
||
|
||
$BNc(B:@refill
|
||
|
||
@lisp
|
||
(mm-define-method entity-cooked-p ((entity chao)) nil)
|
||
@end lisp
|
||
@end defmac
|
||
|
||
|
||
|
||
@node Content-Type, Content-Disposition, Entity, Top
|
||
@chapter Content-Type $BMs$N>pJs(B
|
||
@cindex mime-content-type
|
||
@cindex Content-Type $BMs(B
|
||
|
||
@strong{Content-Type $BMs(B} $B$O(B media-type (@ref{media-type}) $B$d(B MIME
|
||
charset $B$H$$$C$?(B entity (@ref{entity}) $B$NFbMF$N<oN`$dI=8=7A<0$J$I$r5-=R(B
|
||
$B$9$k$?$a$N$b$N$G!"(BRFC 2045 (@ref{RFC 2045}) $B$GDj5A$5$l$F$$$^$9!#(B
|
||
|
||
@noindent
|
||
@strong{[Memo]}
|
||
@quotation
|
||
|
||
$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$&$J(B
|
||
$BJ8;zId9f$N<oN`$rI=8=$9$k$3$H$b$G$-$J$$!#(B
|
||
@end quotation
|
||
|
||
|
||
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 @strong{mime-content-type} $B$rDs6!$7$^$9!#(B
|
||
|
||
|
||
@menu
|
||
* Content-Type field:: Content-Type $BMs$N7A<0(B
|
||
* mime-content-type:: mime-content-type $B9=B$BN(B
|
||
* Content-Type parser:: Content-Type $BMs$N2r@O4o(B
|
||
* Content-Type utility:: Content-Type $B$K4X$9$kM-MQ$J4X?t(B
|
||
@end menu
|
||
|
||
@node Content-Type field, mime-content-type, Content-Type, Content-Type
|
||
@section Content-Type $BMs$N7A<0(B
|
||
@cindex parameter
|
||
@cindex subtype
|
||
@cindex type
|
||
|
||
Content-Type $BMs$N7A<0$O0J2<$N$h$&$KDj5A$5$l$F$$$^$9!'(B
|
||
|
||
@quotation
|
||
``Content-Type'' ``:'' @strong{type} ``/''
|
||
@strong{subtype} *( ``;'' @strong{parameter} )
|
||
@end quotation
|
||
|
||
$BNc$($P!"(B
|
||
|
||
@quotation
|
||
@example
|
||
Content-Type: image/jpeg
|
||
@end example
|
||
@end quotation
|
||
|
||
@noindent
|
||
$B$d(B
|
||
|
||
@quotation
|
||
@example
|
||
Content-Type: text/plain; charset=iso-2022-jp
|
||
@end example
|
||
@end quotation
|
||
|
||
@noindent
|
||
$B$J$I$N$h$&$KMQ$$$i$l$^$9!#(B
|
||
|
||
$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
|
||
|
||
@noindent
|
||
@strong{[Memo]}
|
||
@quotation
|
||
|
||
Content-Type $BMs$N$J$$(B entity $B$O(B
|
||
|
||
@quotation
|
||
@example
|
||
Content-Type: text/plain; charset=us-ascii
|
||
@end example
|
||
@end quotation
|
||
|
||
@noindent
|
||
$B$H$7$F2r<a$5$l$k!#(B(cf. @ref{us-ascii})
|
||
@end quotation
|
||
|
||
|
||
|
||
@node mime-content-type, Content-Type parser, Content-Type field, Content-Type
|
||
@section mime-content-type $B9=B$BN(B
|
||
|
||
@deffn{Structure} mime-content-type
|
||
|
||
Content-Type $BMs$N>pJs$r3JG<$9$k$?$a$N9=B$BN!#(B@refill
|
||
|
||
$B$3$N9=B$BN$r;2>H$9$k$K$O(B @code{mime-content-type-$BMWAGL>(B} $B$H$$$&L>A0$N;2(B
|
||
$B>H4X?t$rMQ$$$k!#(B@refill
|
||
|
||
$B$3$N9=B$BN$NMWAG$O0J2<$NDL$j$G$"$k!'(B
|
||
|
||
@table @var
|
||
@item primary-type
|
||
media-type $B$N<g7?(B (symbol).
|
||
|
||
@item subtype
|
||
media-type $B$NI{7?(B (symbol).
|
||
|
||
@item parameters
|
||
Content-Type $BMs$N(B parameter ($BO"A[(B list).
|
||
|
||
@end table
|
||
@end deffn
|
||
|
||
|
||
@defun make-mime-content-type type subtype
|
||
&optional parameters
|
||
|
||
content-type $B$N@8@.;R!#(B
|
||
@end defun
|
||
|
||
|
||
@defun mime-content-type-parameter content-type parameter
|
||
|
||
@var{content-type} $B$N(B @var{parameter} $B$NCM$rJV$9!#(B
|
||
@end defun
|
||
|
||
|
||
|
||
@node Content-Type parser, Content-Type utility, mime-content-type, Content-Type
|
||
@section Content-Type $BMs$N2r@O4o(B
|
||
|
||
@defun mime-parse-Content-Type string
|
||
|
||
@var{string} $B$r(B content-type $B$H$7$F2r@O$7$?7k2L$rJV$9!#(B
|
||
@end defun
|
||
|
||
|
||
@defun mime-read-Content-Type
|
||
|
||
$B8=:_$N(B buffer $B$N(B Content-Type $BMs$rFI$_<h$j!"2r@O$7$?7k2L$rJV$9!#(B@refill
|
||
|
||
Content-Type $BMs$,B8:_$7$J$$>l9g$O(B nil $B$rJV$9!#(B
|
||
@end defun
|
||
|
||
|
||
|
||
@node Content-Type utility, , Content-Type parser, Content-Type
|
||
@section Content-Type $B$K4X$9$kM-MQ$J4X?t(B
|
||
|
||
@defun mime-type/subtype-string type &optional subtype
|
||
|
||
@var{type} $B$H(B @var{subtype} $B$+$i(B type/subtype $B7A<0$NJ8;zNs$rJV$9!#(B
|
||
@end defun
|
||
|
||
|
||
|
||
@node Content-Disposition, Content-Transfer-Encoding, Content-Type, Top
|
||
@chapter Content-Disposition $BMs$N>pJs(B
|
||
@cindex mime-content-disposition
|
||
@cindex RFC 2183
|
||
@cindex Standards Track
|
||
@cindex Content-Disposition $BMs(B
|
||
|
||
@strong{Content-Disposition $BMs(B} $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
|
||
|
||
|
||
@noindent
|
||
[RFC 2183]
|
||
@quotation
|
||
S. Dorner, K. Moore and R. Troost, ``Communicating Presentation
|
||
Information in Internet Messages: The Content-Disposition Header'',
|
||
August 1997, Standards Track.
|
||
@end quotation
|
||
|
||
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
|
||
@strong{mime-content-disposition} $B$rDs6!$7$^$9!#(B
|
||
|
||
|
||
@menu
|
||
* mime-content-disposition:: mime-content-disposition $B9=B$BN(B
|
||
* Content-Disposition parser:: Content-Disposition $BMs$N2r@O4o(B
|
||
@end menu
|
||
|
||
@node mime-content-disposition, Content-Disposition parser, Content-Disposition, Content-Disposition
|
||
@section mime-content-disposition $B9=B$BN(B
|
||
|
||
@deffn{Structure} mime-content-disposition
|
||
|
||
Content-Disposition $BMs$N2r@O7k2L$r<}$a$k$?$a$N9=B$BN!#(B@refill
|
||
|
||
$B$3$N9=B$BN$r;2>H$9$k$K$O(B @code{mime-content-disposition-$BMWAGL>(B} $B$H$$$&L>(B
|
||
$BA0$N;2>H4X?t$rMQ$$$k!#(B@refill
|
||
|
||
$B$3$N9=B$BN$NMWAG$O0J2<$NDL$j$G$"$k!'(B
|
||
|
||
@table @var
|
||
@item disposition-type
|
||
disposition-type (symbol).
|
||
|
||
@item parameters
|
||
Content-Disposition $BMs$N(B parameter ($BO"A[(B list).
|
||
|
||
@end table
|
||
@end deffn
|
||
|
||
|
||
@defun mime-content-disposition-parameter content-disposition parameter
|
||
|
||
@var{content-disposition} $B$N(B @var{parameter} $B$NCM$rJV$9!#(B
|
||
@end defun
|
||
|
||
|
||
@defun mime-content-disposition-filename content-disposition
|
||
|
||
@var{content-disposition} $B$N(B filename $B$NCM$rJV$9!#(B
|
||
@end defun
|
||
|
||
|
||
|
||
@node Content-Disposition parser, , mime-content-disposition, Content-Disposition
|
||
@section Content-Disposition $BMs$N2r@O4o(B
|
||
|
||
@defun mime-parse-Content-Disposition string
|
||
|
||
@var{string} $B$r(B content-disposition $B$H$7$F2r@O$7$?7k2L$rJV$9!#(B
|
||
@end defun
|
||
|
||
|
||
@defun mime-read-Content-Disposition
|
||
|
||
$B8=:_$N(B buffer $B$N(B Content-Disposition $BMs$rFI$_<h$j!"2r@O$7$?7k2L$rJV$9!#(B
|
||
@refill
|
||
|
||
Content-Disposition $BMs$,B8:_$7$J$$>l9g$O(B nil $B$rJV$9!#(B
|
||
@end defun
|
||
|
||
|
||
|
||
@node Content-Transfer-Encoding, encoded-word, Content-Disposition, Top
|
||
@chapter $BId9f2=K!(B
|
||
@cindex Content-Transfer-Encoding $BMs(B
|
||
|
||
@strong{Content-Transfer-Encoding $BMs(B} $B$O(B entity $B$NId9f2=K!$r5-=R$9$k$?$a(B
|
||
$B$N$b$N$G$9!#(B@refill
|
||
|
||
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
|
||
@refill
|
||
|
||
$B$^$?!"(BContent-Transfer-Encoding $B$K4p$E$$$FId9f2=!&I|9f2=$r9T$&4X?t$bDs(B
|
||
$B6!$5$l$^$9!#(B
|
||
|
||
|
||
@menu
|
||
* Content-Transfer-Encoding parser:: Content-Transfer-Encoding $BMs$N2r@O4o(B
|
||
* encoder/decoder:: $BId9f2=!&I|9f2=(B
|
||
* Encoding information:: Other utilities
|
||
* mel-backend:: How to write encoder/decoder module
|
||
* generic function for mel-backend:: How to add encoding/decoding service
|
||
@end menu
|
||
|
||
@node Content-Transfer-Encoding parser, encoder/decoder, Content-Transfer-Encoding, Content-Transfer-Encoding
|
||
@section Content-Transfer-Encoding $BMs$N2r@O4o(B
|
||
|
||
@defun mime-parse-Content-Transfer-Encoding string
|
||
|
||
@var{string} $B$r(B content-transfer-encoding $B$H$7$F2r@O$7$?7k2L$rJV$9!#(B
|
||
@end defun
|
||
|
||
|
||
@defun mime-read-Content-Transfer-Encoding &optional default-encoding
|
||
|
||
$B8=:_$N(B buffer $B$N(B Content-Transfer-Encoding $BMs$rFI$_<h$j!"2r@O$7$?7k2L$r(B
|
||
$BJV$9!#(B@refill
|
||
|
||
Content-Transfer-Encoding $BMs$,B8:_$7$J$$>l9g$O(B@var{default-encoding} $B$r(B
|
||
$BJV$9!#(B
|
||
@end defun
|
||
|
||
|
||
|
||
@node encoder/decoder, Encoding information, Content-Transfer-Encoding parser, Content-Transfer-Encoding
|
||
@section $BId9f2=!&I|9f2=(B
|
||
|
||
@defun mime-encode-region start end encoding
|
||
|
||
$B8=:_$N(B buffer $B$N(B @var{start} $B$+$i(B @var{end} $B$^$G$N(B region $B$r(B
|
||
@var{encoding} $B$r;H$C$FId9f2=$7$^$9!#(B
|
||
@end defun
|
||
|
||
|
||
@defun mime-decode-region start end encoding
|
||
|
||
$B8=:_$N(B buffer $B$N(B @var{start} $B$+$i(B @var{end} $B$^$G$N(B region $B$r(B
|
||
@var{encoding} $B$r;H$C$FI|9f2=$7$^$9!#(B
|
||
@end defun
|
||
|
||
|
||
|
||
@defun mime-decode-string string encoding
|
||
|
||
@var{string} $B$r(B @var{encoding} $B$H$7$FI|9f$7$?7k2L$rJV$9!#(B
|
||
@end defun
|
||
|
||
|
||
|
||
@defun mime-insert-encoded-file filename encoding
|
||
|
||
@var{ENCODING} format $B$GId9f2=$5$l$?(B file @var{FILENAME} $B$r(B
|
||
$BA^F~$9$k!#(B
|
||
@end defun
|
||
|
||
|
||
@defun mime-write-decoded-region start end filename encoding
|
||
|
||
@var{encoding} $B$GId9f2=$5$l$?8=:_$N(B region $B$rI|9f2=$7$F(B
|
||
@var{filename}$B$K=q$-9~$_$^$9!#(B
|
||
|
||
<var>start<var> $B$H(B @var{end} $B$O(B buffer $B$N0LCV$G$9!#(B
|
||
@end defun
|
||
|
||
|
||
|
||
@node Encoding information, mel-backend, encoder/decoder, Content-Transfer-Encoding
|
||
@section Other utilities
|
||
|
||
@defun mime-encoding-list &optional SERVICE
|
||
|
||
Content-Transfer-Encoding $B$N(B list $B$rJV$7$^$9!#(B@refill
|
||
|
||
@var{service} $B$,;XDj$5$l$F$$$k$H!"$=$l$KBP$9$k(B
|
||
Content-Transfer-Encoding $B$rJV$7$^$9!#(B
|
||
@end defun
|
||
|
||
|
||
@defun mime-encoding-alist &optional SERVICE
|
||
|
||
$BJd40$N$?$a$N(B Content-Transfer-Encoding $B$NI=$rJV$7$^$9!#(B@refill
|
||
|
||
@var{service} $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
|
||
@end defun
|
||
|
||
|
||
|
||
@node mel-backend, generic function for mel-backend, Encoding information, Content-Transfer-Encoding
|
||
@section How to write encoder/decoder module
|
||
|
||
@defmac mel-define-method name args &rest body
|
||
|
||
@var{name} $B$r(B (nth 1 (car (last @var{args}))) backend $B$N(B
|
||
method $B4X?t$H$7$FDj5A$7$^$9!#(B
|
||
|
||
@var{args} $B$O(B lambda $B$N0z?t(B list $B$H;w$F$$$^$9$,!"(B(car (last
|
||
@var{args})) $B$O;XDj$5$l$?(B parameter $B$G$"$kI,MW$,$"$j$^$9!#(B(car
|
||
(car (last @var{args}))) $B$OJQ?t$NL>A0$G!"(B(nth 1 (car (last
|
||
@var{args}))) $B$O(B backend $B$NL>A0(B (encoding) $B$G$9!#(B@refill
|
||
|
||
$BNc(B:@refill
|
||
|
||
@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)
|
||
)))
|
||
@end lisp
|
||
@end defmac
|
||
|
||
|
||
@defmac mel-define-method-function spec function
|
||
|
||
@var{spec} $B$N4X?tDj5A$r(B @var{function} $B$K@_Dj$7$^$9!#(B@refill
|
||
|
||
@var{spec} $B$N:G=i$NMWAG$O(B service $B$G$9!#(B@refill
|
||
|
||
@var{args} $B$N;D$j$O(B lambda $B$N0z?t(B list $B;w$F$$$^$9$,!"(B(car (last
|
||
@var{args})) $B$O;XDj$5$l$?(B parameter $B$G$"$kI,MW$,$"$j$^$9!#(B(car
|
||
(car (last @var{args}))) $B$OJQ?t$NL>A0$G!"(B(nth 1 (car (last
|
||
@var{args}))) $B$O(B backend $B$NL>A0(B (encoding) $B$G$9!#(B@refill
|
||
|
||
$BNc(B:@refill
|
||
|
||
@lisp
|
||
(mel-define-method-function (mime-encode-string string (nil "base64"))
|
||
'encode-base64-string)
|
||
@end lisp
|
||
@end defmac
|
||
|
||
|
||
|
||
@node generic function for mel-backend, , mel-backend, Content-Transfer-Encoding
|
||
@section $BId9f2=(B/$BI|9f2=(B service $B$rDI2C$9$kJ}K!(B
|
||
|
||
@defmac mel-define-service name &optional args doc-string
|
||
|
||
@var{name} $B$r(B Content-Transfer-Encoding $B$N(B service $B$H$7$FDj5A$7$^(B
|
||
$B$9!#(B@refill
|
||
|
||
@var{args} $B$,;XDj$5$l$F$$$k$H!"(B@var{name} $B$O(B service $B$N(B
|
||
generic function $B$H$7$FDj5A$5$l$^$9!#(B@refill
|
||
|
||
$BNc(B:@refill
|
||
|
||
@lisp
|
||
(mel-define-service encoded-text-encode-string (string encoding)
|
||
"Encode STRING as encoded-text using ENCODING.
|
||
ENCODING must be string.")
|
||
@end lisp
|
||
@end defmac
|
||
|
||
|
||
|
||
@node encoded-word, custom, Content-Transfer-Encoding, Top
|
||
@chapter Header $B$N(B network $BI=8=(B
|
||
@cindex RFC 2047
|
||
@cindex Standards Track
|
||
@cindex RFC 2047
|
||
|
||
encoded-word $B$O(B header $B$GHs(B ASCII (@ref{ASCII}) $BJ8;z$rI=8=$9$k$?$a$N7A<0(B
|
||
$B$G!"(B@strong{RFC 2047} $B$GDj5A$5$l$F$$$^$9!#(B@refill
|
||
|
||
|
||
@noindent
|
||
[RFC 2047]
|
||
@quotation
|
||
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
|
||
|
||
$B$^$?!"9T57$N0-$$$3$H$@$H8@$($^$9$,!"(Bencoded-word $B$rMQ$$$:$KHs(B ASCII
|
||
(@ref{ASCII}) $BJ8;z$r(B header $B$KF~$l$?5-;v$bB8:_$7$^$9!#(B@refill
|
||
|
||
FLIM $B$O$3$l$i$rId9f2=!&I|9f2=$9$k5!G=$rDs6!$7$^$9!#(B
|
||
|
||
|
||
@menu
|
||
* Header encoder/decoder:: Header $B$NId9f2=!&I|9f2=(B
|
||
@end menu
|
||
|
||
@node Header encoder/decoder, , encoded-word, encoded-word
|
||
@section Header $B$NId9f2=!&I|9f2=(B
|
||
|
||
@defun eword-decode-header &optional code-conversion separator
|
||
|
||
Header $BCf$N(B encoded-word $B$rI|9f$9$k!#(B@refill
|
||
|
||
$B$b$7(B @var{code-conversion} $B$,(B @code{nil} $B$J$i!"(Bencoded-word $B$@$1$,I|9f$5(B
|
||
$B$l$k!#$b$7!"(B@var{code-conversion} $B$,(B MIME charset (@ref{MIME charset})
|
||
$B$J$i!"Hs(B ASCII bit patterns $B$O$=$N(B MIME charset $B$H$7$FI|9f$5$l$k!#$3$l0J(B
|
||
$B30$N>l9g!"Hs(B ASCII bit patterns $B$O(B@code{default-mime-charset}. $B$H$7$FI|(B
|
||
$B9f$5$l$k!#(B(cf. @ref{entity formatting}) @refill
|
||
|
||
$B$b$7(B @var{separator} $B$,(B @code{nil} $B$G$J$1$l$P!"$=$NCM$,(Bheader separator
|
||
$B$H$7$FMQ$$$i$l$k!#(B
|
||
@end defun
|
||
|
||
|
||
@defun eword-encode-header &optional code-conversion
|
||
|
||
Header $B$r(B network $BI=8=$KId9f2=$9$k!#(B@refill
|
||
|
||
$B3F(B field $B$O(B @code{mime-field-encoding-method-alist} $B$G;XDj$5$l$?J}<0$G(B
|
||
$BId9f2=$5$l$k!#(B
|
||
@end defun
|
||
|
||
|
||
@defvar mime-field-encoding-method-alist
|
||
|
||
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@refill
|
||
|
||
METHOD $B$,(B @code{mime} $B$G$"$l$P!"(BFIELD $B$O(B MIME format $B$KId9f2=$5(B
|
||
$B$l$k(B (encoded-word)$B!#(B
|
||
|
||
METHOD $B$,(B @code{nil} $B$G$"$l$P!"(BFIELD $B$OId9f2=$5$l$J$$!#(B
|
||
|
||
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@refill
|
||
|
||
$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} $B$GId9f2=$5$l$k(B
|
||
@end defvar
|
||
|
||
|
||
|
||
@node custom, Appendix, encoded-word, Top
|
||
@chapter $B0lHL@_Dj(B
|
||
|
||
@deffn{group} mime
|
||
|
||
MIME $B4XO"5!G=$K4X$9$k(B group.@refill
|
||
|
||
@code{mail} $B$H(B @code{news} $B$KB0$9$k!#(B
|
||
@end deffn
|
||
|
||
|
||
@node Appendix, Concept Index, custom, Top
|
||
@chapter $BIUO?(B
|
||
|
||
|
||
@menu
|
||
* Glossary:: $BMQ8l(B
|
||
* Bug report:: bug $BJs9p$N;EJ}(B
|
||
* CVS:: CVS $B$K$h$k3+H/(B
|
||
* History:: $BNr;K(B
|
||
@end menu
|
||
|
||
@node Glossary, Bug report, Appendix, Appendix
|
||
@section $BMQ8l(B
|
||
|
||
|
||
@menu
|
||
* 7bit::
|
||
* 8bit::
|
||
* ASCII::
|
||
* Base64::
|
||
* binary::
|
||
* Coded character set:: Coded character set$B!JId9f2=J8;z=89g!K(B, Character code$B!JJ8;zId9f!K(B
|
||
* media-type::
|
||
* message::
|
||
* MIME::
|
||
* MIME charset::
|
||
* MTA::
|
||
* MUA::
|
||
* Quoted-Printable::
|
||
* RFC 822::
|
||
* RFC 1036::
|
||
* RFC 2045::
|
||
* RFC 2046::
|
||
* RFC 2048::
|
||
* RFC 2049::
|
||
* plain text::
|
||
* us-ascii::
|
||
@end menu
|
||
|
||
@node 7bit, 8bit, Glossary, Glossary
|
||
@subsection 7bit
|
||
|
||
$B$3$3$G$O(B 0 $B$+$i(B 127 $B$N@0?t$r;X$9!#(B@refill
|
||
|
||
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$V!#(B
|
||
@refill
|
||
|
||
$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$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;zNs(B''
|
||
$B$H8F$V!J$3$l$O(B ISO 2022 (@ref{ISO 2022}) $B$N!V(B7 $BC10L7O!W$HF1MM!K!#(B
|
||
|
||
$BEAE}E*$J(B Internet $B$N(B MTA (@ref{MTA}) $B$O(B 7bit $B$N(B data $B$rE>Aw$G$-$k$N$G!"(B
|
||
7bit $B$N(B data $B$O(B Quoted-Printable (@ref{Quoted-Printable}) $B$d(B Base64
|
||
(@ref{Base64}) $B$H$$$C$?JQ49$r9T$o$J$/$F$b$=$N$^$^E>Aw$G$-$k!#(B@refill
|
||
|
||
$B$7$+$7!"(B7bit $B$G$"$l$P$I$s$J(B data $B$G$bNI$$$H$O$$$($J$$!#$J$<$J$i!"#19T$N(B
|
||
$BD9$5$,$"$^$j$KD9$$$H!"(BMTA $B$O$=$N(B message $B$rE>Aw$9$k$3$H$,$G$-$J$$$+$i$G(B
|
||
$B$"$k!#$A$J$_$K!"(BRFC 821 (@ref{RFC 821}) $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=@-$N(B
|
||
$B$"$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
|
||
|
||
|
||
@node 8bit, ASCII, 7bit, Glossary
|
||
@subsection 8bit
|
||
@cindex binary
|
||
|
||
$B$3$3$G$O(B 0 $B$+$i(B 255 $B$N@0?t$r;X$9!#(B@refill
|
||
|
||
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$V!#(B
|
||
@refill
|
||
|
||
$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$GI=(B
|
||
$B8=$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$J$k(B
|
||
$BJ8;zNs$N$3$H$r(B ``8bit $B$NJ8;zNs(B'' $B$H8F$V!J$3$l$O(B ISO 2022 (@ref{ISO 2022}) $B$N!V(B8 $BC10L7O!W$HF1MM!K!#(B@refill
|
||
|
||
iso-8859-1 (@ref{iso-8859-1}) $B$d(B euc-kr (@ref{euc-kr}) $B$H$$$C$?Id9f2=J8(B
|
||
$B;z=89g$O(B 8bit $B$NJ8;zNs$G$"$k!#(B@refill
|
||
|
||
$BEAE}E*$J(B Internet $B$N(B MTA (@ref{MTA}) $B$O(B 7bit (@ref{7bit}) $B$N(B data $B$7$+E>(B
|
||
$BAw$G$-$J$$$N$G!"$=$&$7$?(B MTA $B$r7PM3$9$k>l9g!"(BQuoted-Printable
|
||
(@ref{Quoted-Printable}) $B$d(B Base64 (@ref{Base64}) $B$H$$$C$?JQ49$r9T$o$J$/(B
|
||
$B$F$O$J$i$J$$!#(B@refill
|
||
|
||
$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$F(B
|
||
$B$-$?$N$G!"$=$N$^$^Aw$k$3$H$,$G$-$k>l9g$bA}$($F$-$?!#(B@refill
|
||
|
||
$B$7$+$7!"(B8bit $B$G$"$l$P$I$s$J(B data $B$G$bNI$$$H$O$$$($J$$!#$J$<$J$i!"#19T$N(B
|
||
$BD9$5$,$"$^$j$KD9$$$H!"(BMTA $B$O$=$N(B message $B$rE>Aw$9$k$3$H$,$G$-$J$$$+$i$G(B
|
||
$B$"$k!#$A$J$_$K!"(BRFC 821 (@ref{RFC 821}) $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=@-$N(B
|
||
$B$"$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@refill
|
||
|
||
$B$^$?!"$3$&$7$?M}M3$+$i!"#19T$,(B 999 byte $B0J>e$N9T$,B8:_$9$k2DG=@-$N$"$k(B
|
||
data $B$O(B @strong{binary} (@ref{binary}) $B$H8F$V$3$H$K$9$k!#(B@refill
|
||
|
||
$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
|
||
|
||
|
||
@node ASCII, Base64, 8bit, Glossary
|
||
@subsection ASCII
|
||
@cindex ANSI X3.4:1986
|
||
@cindex ASCII
|
||
|
||
$B%"%a%j%+O"K.$G;H$o$l$kJ8;z$rId9f2=$7$?Id9f2=J8;z=89g(B (@ref{$BId9f2=J8;z=8(B $B9g(B})$B!#(BA-Z, a-z $B$N(B Latin $BJ8;z$H?t;z!"4v$D$+$N5-9f$+$i$J$k!#(BISO 646 $B$N0l$D(B
|
||
$B$G!"8=:_$O9q:]4p=`HG(B (IRV) $B$K$J$C$F$$$k!#(B
|
||
|
||
|
||
@noindent
|
||
[ASCII]
|
||
@quotation
|
||
``Coded Character Set -- 7-Bit American Standard Code for Information
|
||
Interchange'', ANSI X3.4:1986.
|
||
@end quotation
|
||
|
||
|
||
|
||
@node Base64, binary, ASCII, Glossary
|
||
@subsection Base64
|
||
@cindex pad
|
||
|
||
RFC 2045 (@ref{RFC 2045}) $B$GDj5A$5$l$F$$$k(B MIME (@ref{MIME}) $B$K$*$1$k(B
|
||
binary data (@ref{binary}) $B$N(B network $B$G$NJQ49K!$N#1$D!#(B@refill
|
||
|
||
$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 ASCII
|
||
(@ref{ASCII}) 4 $BJ8;z$KJQ49$9$kJ}K!!#!J$b$7!"(B4 $BJ8;z$K$J$i$J$1$l$P(B
|
||
@strong{pad} $B$H8F$P$l$k5M$aJ*$r$7$FD9$5$rD4@0$9$k!K(B@refill
|
||
|
||
$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
|
||
|
||
|
||
@node binary, Coded character set, Base64, Glossary
|
||
@subsection binary
|
||
@cindex binary data
|
||
@cindex binary
|
||
|
||
$BG$0U$N(B byte $BNs$r(B @strong{binary} $B$H8F$V!#(B@refill
|
||
|
||
8bit (@ref{8bit}) $B$H0[$J$k$N$O(B data $B$K9T$N9=B$$r2>Dj$7$J$$$3$H$G$"$k!#(B
|
||
|
||
$B$^$?!"9T$N9=B$$,$"$C$F$b!"(B999 byte $B0J>e$+$i$J$k9T$,$"$k>l9g$b(B binary $B$H(B
|
||
$B8F$V$3$H$K$9$k!#(B@refill
|
||
|
||
$B$A$J$_$K!"(B7bit (@ref{7bit}) $B$d(B 8bit $B$GI=8=$G$-$k(B data $B$O(B binary $B$G$bI=8=(B
|
||
$B$G$-$k!#$h$C$F!"(B@strong{binary data} $B$H8@$C$?>l9g!"G$0U$N(B data $B$r;X$9$3(B
|
||
$B$H$,$"$k!#(B
|
||
|
||
|
||
@node Coded character set, media-type, binary, Glossary
|
||
@subsection Coded character set$B!JId9f2=J8;z=89g!K(B, Character code$B!JJ8;zId9f!K(B
|
||
|
||
$BJ8;z$H(B byte $BNs$H#1BP#1$KBP1~IU$1$k[#Kf$G$J$$5,B'$N=89g!#(B
|
||
|
||
|
||
@node media-type, message, Coded character set, Glossary
|
||
@subsection media-type
|
||
@cindex x-token
|
||
@cindex primary-type/subtype
|
||
@cindex message
|
||
@cindex multipart
|
||
@cindex application
|
||
@cindex video
|
||
@cindex audio
|
||
@cindex image
|
||
@cindex text
|
||
@cindex subtype
|
||
@cindex primary-type
|
||
|
||
MIME (@ref{MIME}) $B$K$*$1$k(B entity (@ref{entity}) $B$N<oN`!#(B
|
||
@strong{primary-type} $B$H(B @strong{subtype} $B$+$i$J$k!#(BRFC 2046 (@ref{RFC 2046}) $B$GDj5A$5$l$F$$$k!#(B@refill
|
||
|
||
primary-type $B$OI8=`$G$O(B
|
||
|
||
@itemize @bullet
|
||
@item
|
||
@strong{text}
|
||
@item
|
||
@strong{image}
|
||
@item
|
||
@strong{audio}
|
||
@item
|
||
@strong{video}
|
||
@item
|
||
@strong{application}
|
||
@item
|
||
@strong{multipart} (@ref{multipart})
|
||
@item
|
||
@strong{message}
|
||
@end itemize
|
||
|
||
@noindent
|
||
$B$,Dj5A$5$l!"$=$l$>$l$K$O(B application/octet-stream, audio/basic,
|
||
image/jpeg, multipart/mixed (@ref{multipart/mixed}), text/plain
|
||
(@ref{text/plain}), video/mpeg $B$J$I$N$5$^$6$^$J(B subtype $B$,Dj5A$5$l$F$$$k!#(B
|
||
|
||
@noindent
|
||
@strong{[$BCm0U(B]}
|
||
@quotation
|
||
|
||
$B$3$3$G$O!"(Btext/plain $B$J$I$N(B type/subtype $B$NAH$r$7$P$7$P(B
|
||
@strong{primary-type/subtype} $B$H=q$/!#(B
|
||
@end quotation
|
||
|
||
|
||
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 MEDIA TYPES
|
||
(ftp://ftp.isi.edu/in-notes/iana/assignments/media-types) $B$G;2>H$G$-$k!#(B
|
||
|
||
$B$^$?!"(Btype $B$b$7$/$O(B subtype $B$K!"A0$K(B `x-' $B$rIU$1$?(B @strong{x-token} $B$rMQ(B
|
||
$B$$$k$3$H$K$h$j!"EPO?$5$l$F$$$J$$$b$N$r;dE*$KMQ$$$k$3$H$b$G$-$k!#$7$+$7!"(B
|
||
$BEvA3$N$3$H$J$,$i!"$3$&$7$?;dE*$J(B media-type $B$ONJ2r$rF@$?<T$N4V$G$7$+2r<a(B
|
||
$B$G$-$J$$$N$GMxMQ$K$OCm0U$9$k$3$H!#(B@refill
|
||
|
||
(cf. @ref{Content-Type})
|
||
|
||
|
||
|
||
@node message, MIME, media-type, Glossary
|
||
@subsection message
|
||
|
||
$B$3$3$G$O(B mail $B$H(B news $B5-;v$NAm>N$H$7$FMQ$$$k!#(B
|
||
|
||
|
||
@node MIME, MIME charset, message, Glossary
|
||
@subsection MIME
|
||
@cindex Multipurpose Internet Mail Extensions
|
||
|
||
@strong{Multipurpose Internet Mail Extensions} $B$NN,$G!"(BInternet $B$N(B mail
|
||
$B$d(B news $B$G(B us-ascii plain text (@ref{us-ascii}) $B0J30$NJ8;z$r;H$&$?$a$N(B
|
||
RFC 822 (@ref{RFC 822}) $B$KBP$9$k3HD%!#(B@refill
|
||
|
||
RFC 2045 $B$OKAF,$G<!$N$h$&$K=R$Y$F$$$k!'(B@refill
|
||
|
||
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
|
||
|
||
@enumerate
|
||
@item
|
||
$BJ8=q(B message body $B$K$*$1$k(B US-ASCII $B0J30$NJ8;z=89g(B
|
||
@item
|
||
$BHsJ8=q(B message body
|
||
@item
|
||
$BJ#?t$NItJ,$+$i$J$k(B message body
|
||
@item
|
||
US-ASCII $B0J30$NJ8;z=89g$+$i$J$kJ8=q(B header $B>pJs(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}) $B$GDj5A$5$l$F$$$k!#(B
|
||
|
||
|
||
@node MIME charset, MTA, MIME, Glossary
|
||
@subsection MIME charset
|
||
|
||
Content-Type (@ref{Content-Type}) $BMs$d(B encoded-word (@ref{encoded-word})
|
||
$B$N(B charset parameter $B$GMQ$$$i$l$kEPO?$5$l$?Id9f2=J8;z=89g(B(@ref{Coded character set})$B!#(B@refill
|
||
|
||
RFC 2045 (@ref{RFC 2045}) $B$GDj5A$5$l$F$$$k!#(B@refill
|
||
|
||
iso-2022-jp $B$d(B euc-kr $B$O$=$N#1$D!#(B
|
||
|
||
|
||
@node MTA, MUA, MIME charset, Glossary
|
||
@subsection MTA
|
||
@cindex Message Transfer Agent
|
||
|
||
@strong{Message Transfer Agent} $B$NN,$G!"(Bqmail $B$d(B sendmail $B$J$I$N(B mail $BG[(B
|
||
$BAw(B program $B$H(B inn $B$J$I$N(B news server $B$NAm>N!#(B@refill
|
||
|
||
(cf. @ref{MUA})
|
||
|
||
|
||
|
||
@node MUA, Quoted-Printable, MTA, Glossary
|
||
@subsection MUA
|
||
@cindex Message User Agent
|
||
|
||
@strong{Message User Agent} $B$NN,$G!"(Bmail reader $B$H(B news reader $B$NAm>N!#(B
|
||
@refill
|
||
|
||
(cf. @ref{MTA})
|
||
|
||
|
||
|
||
@node Quoted-Printable, RFC 822, MUA, Glossary
|
||
@subsection Quoted-Printable
|
||
|
||
RFC 2045 (@ref{RFC 2045}) $B$GDj5A$5$l$F$$$k(B MIME (@ref{MIME}) $B$K$*$1$k(B
|
||
binary data (@ref{binary data}) $B$N(B network $B$G$NJQ49K!$N#1$D!#(B@refill
|
||
|
||
`=' $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!"(BASCII (@ref{ASCII}) $BJ8;zCf?4$N(B data $B$G$O(B
|
||
Base64 (@ref{Base64}) $B$KHf$Y$k$H2DFI@-$,9b$/$J$k2DG=@-$,$"$k!#(B@refill
|
||
|
||
$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
|
||
|
||
|
||
@node RFC 822, RFC 1036, Quoted-Printable, Glossary
|
||
@subsection RFC 822
|
||
@cindex RFC 822
|
||
@cindex STD 11
|
||
@cindex Internet message
|
||
@cindex Internet mail
|
||
@cindex message header
|
||
|
||
Internet mail $B$N<g$K(B @strong{message header} $B$K4X$9$k7A<0$K(B
|
||
$B4X$9$kI8=`$rDj$a$F$$$k(B RFC.
|
||
|
||
@noindent
|
||
@strong{[Memo]}
|
||
@quotation
|
||
|
||
news message $B$b$3$l$K=`$8$F$$$k$N$G!"(B@strong{Internet mail} $B$H=q$/$h$j$b!"(B
|
||
@strong{Internet message} $B$H=q$$$?J}$,NI$$$+$b$7$l$J$$!#(B
|
||
@end quotation
|
||
|
||
|
||
|
||
@noindent
|
||
[RFC 822]
|
||
@quotation
|
||
D. Crocker, ``Standard for the Format of ARPA Internet Text Messages'',
|
||
August 1982, STD 11.
|
||
@end quotation
|
||
|
||
|
||
|
||
@node RFC 1036, RFC 2045, RFC 822, Glossary
|
||
@subsection RFC 1036
|
||
@cindex RFC 1036
|
||
@cindex USENET
|
||
|
||
USENET $B$G$N(B message $B$N7A<0$rDj$a$?(B RFC. RFC 822 (@ref{RFC 822}) $B$N(B
|
||
subset $B$K$J$C$F$$$k!#(BInternet $B$NI8=`$G$O$J$$$,!"(BUSENET $B0J30$N(B netnews $B$G(B
|
||
$B$b$3$l$K=`$8$F$$$k$b$N$,B?$$!#(B
|
||
|
||
|
||
@noindent
|
||
[USENET: RFC 1036]
|
||
@quotation
|
||
M. Horton and R. Adams, ``Standard for Interchange of USENET Messages'',
|
||
December 1987, (obsolete RFC 850).
|
||
@end quotation
|
||
|
||
|
||
|
||
@node RFC 2045, RFC 2046, RFC 1036, Glossary
|
||
@subsection RFC 2045
|
||
@cindex RFC 2045
|
||
@cindex Standards Track
|
||
|
||
|
||
@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 RFC 2046
|
||
@cindex Standards Track
|
||
|
||
|
||
@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 RFC 2048
|
||
@cindex Standards Track
|
||
|
||
|
||
@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 RFC 2049
|
||
@cindex Standards Track
|
||
|
||
|
||
@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, us-ascii, RFC 2049, Glossary
|
||
@subsection plain text
|
||
|
||
$B=qBN$dAHHG$K4X$9$k>pJs$r;}$?$J$$J8;zId9f(B(@ref{Coded character set})$B$N$_(B
|
||
$B$GI=8=$5$l$k(B text $B>pJs!#(B(cf. @ref{text/plain})
|
||
|
||
|
||
|
||
@node us-ascii, , plain text, Glossary
|
||
@subsection us-ascii
|
||
@cindex ASCII
|
||
@cindex us-ascii
|
||
|
||
$B%"%a%j%+O"K.$J$I$G;H$o$l$k1Q8l$J$I$rI=8=$9$k$?$a$N(B MIME charset
|
||
(@ref{MIME charset}) $B$N#1$D!#(B@refill
|
||
|
||
ASCII (@ref{ASCII}) $B$N$_$+$i$J$j(B ISO 2022 $B$K$h$kId9f3HD%$O5v$5$l$J$$!#(B
|
||
|
||
Internet message $B$K$*$1$kI8=`$NId9f2=J8;z=89g(B(@ref{Coded character set})
|
||
$B$G$"$j!"L@<(E*$K(B MIME charset $B$,<($5$l$J$$>l9g$O86B'$H$7$F(B
|
||
@strong{us-ascii} $B$,;H$o$l$k!#(B@refill
|
||
|
||
$B$^$?!"(BRFC 822 (@ref{RFC 822}) $B$K$*$1$k(B @strong{ASCII} $B$O(B us-ascii $B$G$"$k!#(B
|
||
|
||
|
||
@node Bug report, CVS, Glossary, Appendix
|
||
@section bug $BJs9p$N;EJ}(B
|
||
|
||
FLIM $B$N%P%0$r8+$D$1$?$i!"0J2<$N(B address $B$K(B mail $B$rAw$C$F$/$@$5$$!'(B
|
||
|
||
@itemize @bullet
|
||
@item
|
||
$B1Q8l(B <emacs-mime-en@@m17n.org>
|
||
@item
|
||
$BF|K\8l(B <emacs-mime-ja@@m17n.org>
|
||
@end itemize
|
||
|
||
|
||
$BC"$7!"$"$^$j$K$b8E$$HG$K4X$9$kJs9p$O4?7^$5$l$^$;$s!#8E$$HG$N(B bug $B$O!"?7(B
|
||
$B$7$$HG$G$O<#$C$F$$$k$+$b$7$l$^$;$s!#$^$:!":G?7HG$G3NG'$7$F$_$^$7$g$&!#(B
|
||
@refill
|
||
|
||
$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!#$^$?!"(Berror $B$,(B
|
||
$B5/$C$F$$$k>l9g$O(B backtrace $B$rAw$k$3$H$b=EMW$G$9!#(B(cf. @ref{(emacs)Bugs})
|
||
|
||
$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
|
||
|
||
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
|
||
|
||
@itemize @bullet
|
||
@item
|
||
$B1Q8l(B <emacs-mime-en-ctl@@m17n.org>
|
||
@item
|
||
$BF|K\8l(B <emacs-mime-ja-ctl@@m17n.org>
|
||
@end itemize
|
||
|
||
@noindent
|
||
$B$K6u$N(B mail $B$rAw$C$F2<$5$$!#(B
|
||
|
||
|
||
@node CVS, History, Bug report, Appendix
|
||
@section CVS $B$K$h$k3+H/(B
|
||
|
||
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
|
||
|
||
@example
|
||
(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
|
||
checkout [-r TAG] flim
|
||
@end example
|
||
|
||
|
||
CVS $B$rMQ$$$?3+H/$K;22C$7$?$$J}$O(B
|
||
|
||
@itemize @bullet
|
||
@item
|
||
<cvs@@cvs.m17n.org>
|
||
@end itemize
|
||
|
||
@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
|
||
|
||
|
||
@node History, , CVS, Appendix
|
||
@section $BNr;K(B
|
||
|
||
FLIM $B$N(B code $B$N:G8E$NItJ,$O(B $B1]JB(B $B;LCR(B $B;a$,=q$$$?(B @file{mime.el} $B$K5/8;$7(B
|
||
$B$^$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@refill
|
||
|
||
$B$=$N8e!"<i2,(B $BCNI'(B $B$O(B @file{mime.el} $B$r85$K(B@file{tiny-mime.el} $B$H$$$&%W%m(B
|
||
$B%0%i%`$r=q$-$^$9!#$3$l$O!"(BNemacs $B$H(B Mule $B$GF0:n$9$k(B encoded-word $B$NId9f(B
|
||
$B2=!&I|9f2=%W%m%0%i%`$G$7$?!#(B@file{tiny-mime.el} $B$O(B B-encoding $B$@$1$G$J$/(B
|
||
Q-encoding $B$b(Bsupport $B$7!"$^$?!"(BMULE $B$G07$&$3$H$,$G$-$k$5$^$6$^$J(B MIME
|
||
charset (@ref{MIME charset}) $B$rF1;~$K;H$&$3$H$,$G$-$^$7$?!#$3$N;~!"(B
|
||
Nemacs $B$H(B Mule $B$NAPJ}$r(B support $B$9$k$?$a$KMQ$$$i$l$?%F%/%K%C%/$O8e$K(B emu
|
||
package $B$K$^$H$a$i$l$^$9!#(B@refill
|
||
|
||
$B$3$N:"!"<i2,(B $BCNI'(B $B$O(B @file{tiny-mime.el} $B$r$5$^$6$^$J(B MUA $B$G;H$&$?$a$N@_(B
|
||
$BDj=8$bG[I[$7$F$$$^$7$?$,!"$=$l$i$O8e$K(B@file{tiny-mime.el} $B$H$H$b$K#1$D$N(B
|
||
package $B$K$^$H$a$i$l!"(Btm $B$H$$$&L>A0$GG[I[$5$l$^$9!#(B@refill
|
||
|
||
$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} $B$r=q$-$^$9!#$3$l$O!"$9$0$K(B@file{tm-view.el} $B$H$$$&L>A0(B
|
||
$B$KJQ$o$j$^$7$?$,!"$d$,$F!"$3$l$,(B@file{tiny-mime.el} $B$KBe$o$C$F!"(Btm $B$NCf(B
|
||
$B3K$H$J$j$^$9!#(B@refill
|
||
|
||
@file{tm-view.el} $B$OEvA3!"(BContent-Transfer-Encoding $B$r07$&I,MW$,$"$j$^$9!#(B
|
||
$B$3$NL\E*$N$?$a$K!"(BMEL $B$,@0Hw$5$l$O$8$a$^$7$?!#(BBase64 $B$K4X$7$F$O(B
|
||
@file{tiny-mime.el} $B$N(B code $B$,0\$5$l!"$^$?!"?7$?$K(BQuoted-Printable $B$N(B
|
||
code $B$,DI2C$5$l$^$7$?!#$3$l$i$,(B@file{mel-b.el} $B$H(B @file{mel-q.el} $B$K$J$j(B
|
||
$B$^$7$?!#(B@refill
|
||
|
||
$B$^$?!"8e$K!"<i2,(B $BCNI'(B $B$K$h$C$F(B uuencode $BMQ$N(B @file{mel-u.el} $B$,DI2C$5$l!"(B
|
||
$B$=$N8e$K!">.NS(B $B=$J?(B $B;a$K$h$C$F(B x-gzip64 $BMQ$N(B@file{mel-g.el} $B$,DI2C$5$l$^(B
|
||
$B$7$?!#(B@refill
|
||
|
||
tm $B$G$O8e$K!"<i2,(B $BCNI'(B $B$K$h$C$F(B @file{tiny-mime.el} $B$N:F<BAu$,9T$o$l!"$3(B
|
||
$B$N2aDx$G!"(BSTD 11 $B$N(B parser $B$,=q$+$l$^$7$?!#$3$l$O!"8=:_$N(B
|
||
@file{std11.el} $B$KEv$?$j$^$9!#$^$?!"$3$N2aDx$G(B @file{tiny-mime.el} $B$OI|(B
|
||
$B9f2=$r9T$&(B @file{tm-ew-d.el} $B$HId9f2=$r9T$&(B @file{tm-ew-e.el} $B$KJ,$1$i$l(B
|
||
$B$^$7$?!#$3$NN><T$,8=:_$N(B @file{eword-decode.el} $B$H(B
|
||
@file{eword-encode.el} $B$N@hAD$KEv$?$j$^$9!#(B@refill
|
||
|
||
$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!"(Btm
|
||
$B$O(B APEL, MEL, SEMI, EMH, RMAIL-MIME, Gnus-MIME $B$J$I$KJ,$1$i$l$^$7$?!#$3(B
|
||
$B$N$&$A$N(B MEL $B$,(B FLIM $B$ND>@\$N@hAD$KEv$?$j$^$9!#(B@refill
|
||
|
||
$B8e$K!"(BAPEL $B$+$i(B @file{std11.el} $B$,0\$5$l!"$^$?!"(B@file{mailcap.el},
|
||
@file{eword-decode.el} $B$*$h$S(B @file{eword-encode.el} $B$,(B SEMI $B$+$i0\$5$l!"(B
|
||
package $B$NL>A0$,(B FLIM $B$H$J$j$^$9!#(B@refill
|
||
|
||
$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
|
||
|
||
|
||
@node Concept Index, Function Index, Appendix, Top
|
||
@chapter $B35G0:w0z(B
|
||
|
||
@printindex cp
|
||
|
||
@node Function Index, Variable Index, Concept Index, Top
|
||
@chapter $B4X?t:w0z(B
|
||
|
||
@printindex fn
|
||
|
||
@node Variable Index, , Function Index, Top
|
||
@chapter $BJQ?t:w0z(B
|
||
|
||
@printindex vr
|
||
@bye
|