1 \e$B!X
\e(Btiny-mime.el
\e$B@bL@=q!Y
\e(B
2 by.
\e$B<i2,
\e(B
\e$BCNI'
\e(B
3 1994
\e$BG/
\e(B7
\e$B7n
\e(B27
\e$BF|
\e(B
5 \e$B$3$N@bL@=q$O
\e(B ol2
\e$B$H
\e(B plain2
\e$B$rMQ$$$k$3$H$K$h$C$F
\e(B LaTeX
\e$B7A<0$KJQ49$9$k
\e(B
6 \e$B$3$H$,$G$-$^$9!#
\e(B
9 * tiny-mime.el
\e$B$H$O
\e(B
11 tiny-mime.el
\e$B$O
\e(B Mule, NEmacs, NEpoch
\e$B>e$GF0:n$9$k
\e(B MIME message
12 header
\e$B$N
\e(B encoder/decoder
\e$B$G$9!#%*%j%8%J%k$O!"@N!"$($J$_
\e(B
\e$B$D$0$H$b
\e(B
\e$B$5$s
\e(B
13 \e$B$,
\e(B fj.editor.emacs
\e$B$KEj9F$5$l$?
\e(B MIME message header
\e$B$N
\e(B decoder
\e$B$G$9!#
\e(B
15 \e$B8=:_$G$O!"Ev;~$N$b$N$KHf$Y!"
\e(B
17 \e$B!&
\e(Bdecoding
\e$B;~$K$*$1$k
\e(B unfolding
\e$B5!G=
\e(B
18 \e$B!&
\e(BISO-2022-JP
\e$B$K2C$(!"
\e(BISO-8859-*, US-ASCII
\e$B$J$I$N
\e(B encoding/decoding
19 \e$B!&
\e(BQ-encoding
\e$B$N
\e(B decoding
21 \e$B$H$$$C$?5!G=$r;}$C$F$$$^$9!#
\e(B
24 * tiny-mime.el
\e$B$N%5%]!<%H$9$k
\e(B character set, encoding
26 tiny-mime.el
\e$B$O!"<!$N
\e(B character set, encoding
\e$B$r%5%]!<%H$7$^$9!#
\e(B
30 ISO-2022-JP, US-ASCII, ISO-8859-1..9, ISO-2022-CN, ISO-2022-KR,
31 EUC-KR
\e$B$J$I$N
\e(B encoding/decoding
\e$B$r%5%]!<%H$7$^$9!#$^$?!"4X?t
\e(B
32 mime/set-charset-and-encoding
\e$B$GDI2C!&JQ99$,$G$-$^$9!#
\e(B
36 ISO-2022-JP, US-ASCII
\e$B$N
\e(B encoding/decoding
\e$B$r%5%]!<%H$7$^$9!#
\e(B
38 \e$B$^$?!"
\e(BISO-8859-*
\e$B$G$"$C$F$b!"
\e(Bencoded-text
\e$B$K4^$^$l$kJ8;zNs$,<B:]$K$O
\e(B
39 ASCII
\e$B$GI=$;$kHO0O$J$iI=<($7$^$9!#
\e(B
42 * tiny-mime.el
\e$B$N4JC1$J;H$$J}
\e(B
46 tiny-mime.el
\e$B$r
\e(B load
\e$B$7$F!"
\e(Bdecode
\e$B$7$?$$
\e(B buffer
\e$B>e$G!"
\e(B
48 M-x mime/decode-message-header
50 \e$B$r<B9T$7$^$9!#
\e(B
52 \e$B$^$?!"
\e(Bdecode
\e$B$7$?$$
\e(B region
\e$B$r
\e(B
54 M-x mime/decode-region
56 \e$B$G
\e(B decode
\e$B$9$k$3$H$,$G$-$^$9!#0zMQ$J$I$G
\e(B body-part
\e$B$K;D$C$?
\e(B
57 encoded-word
\e$B$r
\e(B decode
\e$B$9$k$N$KJXMx$G$7$g$&!#
\e(B
61 tiny-mime.el
\e$B$r
\e(B load
\e$B$7$F!"
\e(Bencode
\e$B$7$?$$
\e(B buffer
\e$B>e$G!"
\e(B
63 M-x mime/encode-message-header
65 \e$B$r<B9T$7$^$9!#
\e(B
68 * tiny-mime.el
\e$B$NJQ?t
\e(B
70 ** mime/no-encoding-header-fields
72 tiny-mime.el
\e$B$G
\e(B encode
\e$B$7$J$$
\e(B message header
\e$B$N
\e(B field
\e$B$r;XDj$7$^$9!#
\e(B
74 default
\e$B$G$O
\e(B X-Nsubject
\e$B$,;XDj$5$l$F$$$^$9!#
\e(B
76 \e$BNc!'
\e(B X-Nsubject
\e$B$H
\e(B Subject
\e$B$r
\e(B encode
\e$B$7$J$$$h$&$K$9$k!#
\e(B
79 ----------------------------------------------------------------------
80 (setq mime/no-encoding-header-fields '("X-Nsubject" "Subject"))
81 ----------------------------------------------------------------------
84 \e$B!NCm0U!O
\e(B mime.el
\e$B$HJ;MQ$9$k>l9g!"
\e(Btiny-mime.el
\e$B$,
\e(B encode
\e$B$7$J$/$F$b!"
\e(B
85 mime.el
\e$B$,
\e(B encode
\e$B$9$k$N$G!"
\e(Bmime.el
\e$B$N
\e(B message header encoder
\e$B$,F/$+$J
\e(B
86 \e$B$$$h$&$K$K@_Dj$7$^$9!#
\e(B
88 ** mime/use-X-Nsubject
90 \e$B$3$NJQ?t$NCM$,
\e(B t
\e$B$N>l9g!"
\e(Bmessage header
\e$B$r
\e(B encode
\e$B$9$k;~!"
\e(Bencode
\e$B$7
\e(B
91 \e$B$?7k2L!"
\e(BSubject
\e$B$K
\e(B encoded-word
\e$B$,4^$^$l$k>l9g!"
\e(BSubject
\e$B$r
\e(B decode
\e$B$7$?
\e(B
92 \e$B$b$N$rF~$l$?
\e(B X-Nsubject
\e$B$r:n@.$7$^$9!#
\e(B
94 default
\e$B$G$O
\e(B nil
\e$B$,;XDj$5$l$F$$$^$9!#
\e(B
96 \e$B!NCm0U!O
\e(BMule
\e$B$G
\e(B ISO-2022-JP
\e$B$K4^$^$l$k$b$N0J30$NJ8;z=89g$r;H$&>l9g$O!"
\e(B
97 \e$B$3$l$r;XDj$7$J$$J}$,8-L@$G$9!#
\e(B
99 ** mail-header-separator
101 \e$B4X?t
\e(B mime/encode-message-header
\e$B$K$*$1$k
\e(B message header
\e$B$H
\e(B body part
102 \e$B$N6h@Z$j$rI=$9JQ?t$G$9!#Nc$($P!"
\e(BGNUS
\e$B$G$O
\e(B "--text follows this line--"
103 \e$B$,;XDj$5$l$^$9!#
\e(B
105 \e$B!NCm0U!O$3$NJQ?t$NJ8;zNs$O!"
\e(Bversion 2.6
\e$B$h$j@55,I=8=$G$O$J$/$J$j$^$7$?!#
\e(B
108 * mailer, news reader
\e$B$X$NAH$_9~$_
\e(B
110 \e$BF|>oE*$K!"L50U<1$K
\e(B MIME header
\e$B$rK\Mh$N8@8l$G8+$?$$$H$$$&$N$OEvA3$N
\e(B
111 \e$BM_5a$G$9!#$=$3$G!"
\e(Btiny-mime.el
\e$B$r
\e(B mailer
\e$B$d
\e(B news reader
\e$B$KAH$_9~$`$H<+
\e(B
112 \e$BF0E*$K
\e(B MIME header
\e$B$N
\e(B encode/decode
\e$B$,$G$-$^$9!#
\e(B
114 \e$B$^$?!"
\e(Bmetamail
\e$B$r;H$C$F$*$i$l$kJ}$G$b!"IaCJ$O
\e(B message header
\e$B$N
\e(B
115 decode
\e$B$@$1$GNI$/$F!"3($d2;$J$I$r:F@8$9$k;~$@$1
\e(B metamail
\e$B$r;H$&$H$$$&
\e(B
116 \e$B$h$&$J;H$$J}$b$G$-$^$9!#
\e(B
118 \e$B$3$NL\E*$r<B8=$9$k$K$O!"
\e(Bmailer
\e$B$d
\e(B news reader
\e$B$NE,@Z$J
\e(B hook
\e$B$K
\e(B
119 mime/decode-message-header
\e$B$rF~$l$l$PNI$$$G$7$g$&!#$^$?!"J8;zNs$N
\e(B
120 decode
\e$B$r$7$?$$>l9g$N$?$a$K!"
\e(B
122 (mime/decode-string
\e$BJ8;zNs
\e(B)
124 \e$B$H$$$&4X?t$bMQ0U$7$F$$$^$9!#
\e(B
126 GNUS
\e$B$H
\e(B mh-e
\e$B$K4X$7$F$O!"
\e(Btm-gnus, tm-mh-e
\e$B$H$$$&
\e(B MIME
\e$BBP1~2=%b%8%e!<
\e(B
127 \e$B%k$rMQ0U$7$F$$$^$9!#
\e(B
129 \e$B$3$l$i$N!"3F
\e(B MUA
\e$B$KBP1~$9$k%b%8%e!<%k$r
\e(B load
\e$B$9$k$H
\e(B tiny-mime.el
\e$B$K
\e(B
130 \e$B$h$k
\e(B MIME header
\e$B$NI|85$H
\e(B tm-body
\e$B$rMxMQ$7$?
\e(B MIME body
\e$B$N:F@8$,9T$J$(
\e(B
133 \e$B>\$7$/$O!"$=$l$>$l$N@bL@=q$r$*FI$_2<$5$$!#
\e(B
136 * mime.el
\e$B$H$NJ;MQ
\e(B
138 mime.el
\e$B$HJ;MQ$9$kNc$r<($7$^$9!#$3$NNc$N>l9g!"
\e(BISO-2022-JP
\e$BJ8;zNs$N
\e(B
139 encode
\e$B$O
\e(B tiny-mime.el
\e$B$,9T$J$$!"$=$l0J30$NJ8;z=89g$KB0$9$kJ8;zNs$O
\e(B
140 mime.el
\e$B$,
\e(B encode
\e$B$7$^$9!#
\e(B
142 \e$B$^$?!"
\e(Btiny-mime.el
\e$B$,
\e(B encode
\e$B$7$J$+$C$?J8;zNs$b
\e(B mime.el
\e$B$,
\e(B encode
\e$B$9
\e(B
143 \e$B$k$N$G!"7k2LE*$K!"I,$:A4$F$N
\e(B field
\e$B$,
\e(B encode
\e$B$5$l$k$3$H$KCm0U$7$F2<$5
\e(B
147 ----------------------------------------------------------------------
149 ;;; for Edit MIME mode
151 (autoload 'mime-mode "mime" "Edit MIME message." t)
152 (autoload 'mime-convert-buffer "mime" "convert to MIME." t)
153 (autoload 'insert-signature "signature" "Insert signature" t)
154 (add-hook 'mime-mode-hook
157 (define-key (current-local-map)
158 "\C-c\C-s" (function insert-signature))
161 ;; MIME header
\e$B$N
\e(B encoder
\e$B$r
\e(B tiny-mime
\e$B$N$b$N$r;H$&!#
\e(B
162 (setq mime-translate-hook 'mime/encode-message-header)
167 (add-hook 'news-reply-mode-hook (function mime-mode))
168 (setq gnus-signature-file nil)
173 (add-hook 'mh-letter-mode-hook
176 (mime/decode-message-header)
178 (make-local-variable 'mail-header-separator)
179 (setq mail-header-separator "--------"))
181 ----------------------------------------------------------------------
184 **
\e$BFCDj$N
\e(B field
\e$B$r
\e(B encode
\e$B$7$?$/$J$$>l9g
\e(B
186 \e$BFCDj$N
\e(B field
\e$B$r
\e(B encode
\e$B$7$?$/$J$$>l9g!"
\e(Btiny-mime.el
\e$B$NJQ?t
\e(B
187 mime/no-encoding-header-fields
\e$B$K$h$C$F!"
\e(Btiny-mime.el
\e$B$K$h$k
\e(B encode
\e$B$r
\e(B
188 \e$B$d$a$k$3$H$,$G$-$^$9$,!"
\e(Bmime.el
\e$B$,
\e(B encode
\e$B$9$k$N$G$O0UL#$,$"$j$^$;$s!#
\e(B
189 \e$B$=$3$G!"<!$N$h$&$K@_Dj$9$k$3$H$G!"
\e(Bmime.el
\e$B$G$b
\e(B encode
\e$B$7$J$$$h$&$K$G$-
\e(B
193 ----------------------------------------------------------------------
196 (defun mime-header-charset-chooser-for-mule-no-encode-ISO-2022-JP (begin end)
197 (let ((lclist (find-charset-region begin end)))
198 (cond ((null lclist) nil) ;US-ASCII requres no encoding.
199 ((memq lc-ltn1 lclist)
200 '("ISO-8859-1" . "Q"))
201 ((memq lc-ltn2 lclist)
202 '("ISO-8859-2" . "Q"))
203 ((memq lc-ltn3 lclist)
204 '("ISO-8859-3" . "Q"))
205 ((memq lc-ltn4 lclist)
206 '("ISO-8859-4" . "Q"))
207 ((memq lc-crl lclist)
208 '("ISO-8859-5" . "Q"))
209 ;;((memq lc-arb lclist)
210 ;; '("ISO-8859-6" . "Q"))
211 ((memq lc-grk lclist)
212 '("ISO-8859-7" . "Q"))
213 ((memq lc-hbw lclist)
214 '("ISO-8859-8" . "Q"))
215 ((memq lc-ltn5 lclist)
216 '("ISO-8859-9" . "Q"))
217 ((memq lc-jp lclist) nil)
218 (t ;Unknown charset. It must be Mule!
219 '("ISO-2022-JP-2" . "B"))
221 (setq mime-header-charset-chooser
222 'mime-header-charset-chooser-for-mule-no-encode-ISO-2022-JP)
225 (defun mime-header-charset-chooser-for-nemacs-no-encode-ISO-2022-JP (begin end))
226 (setq mime-header-charset-chooser
227 'mime-header-charset-chooser-for-nemacs-no-encode-ISO-2022-JP)
229 ----------------------------------------------------------------------
232 \e$BMW$9$k$K!"
\e(BISO-2022-JP
\e$BJ8;zNs$N
\e(B encode
\e$B$r
\e(B mime.el
\e$B$K$5$;$J$/$9$kLu$G
\e(B
236 * charset
\e$B$NDI2C!&JQ99
\e(B
238 Mule
\e$B$G$O!"4X?t
\e(B mime/set-charset-and-encoding
\e$B$G!"
\e(Bcharset
\e$B$NDI2C!&JQ
\e(B
239 \e$B99$,$G$-$^$9!#
\e(B
241 \e$B4X?t
\e(B: mime/set-charset-and-encoding lc cs charset encoding
243 lc: charset
\e$B$KBP1~$9$k
\e(B leading-char
\e$B$r;XDj$9$k!#
\e(B
244 cs: charset
\e$B$KBP1~$9$k
\e(B coding-system
\e$B$r;XDj$9$k!#
\e(B1 octet
\e$BJ8;z
\e(B
245 \e$B=89g$G
\e(B coding-system
\e$B$r:n$i$J$$>l9g$O!"
\e(Bnil
\e$B$r;XDj$9$k!#
\e(B
246 charset: MIME
\e$B$N
\e(B charset.
247 encoding: encode
\e$B$9$k:]$N
\e(B encoding.
250 \e$BNc!'
\e(B KS C5601-1987
\e$B$r
\e(B EUC-KR
\e$B$N
\e(B B encoding
\e$B$9$k$h$&$K@_Dj$9$k
\e(B
252 (mime/set-charset-and-encoding lc-kr *euc-kr* "EUC-KR" "B")
255 \e$BNc!'
\e(B koi8-r
\e$B$r
\e(B Q encoding
\e$B$9$k$h$&$K@_Dj$9$k!#
\e(B
257 (mime/set-charset-and-encoding lc-prv11 nil "KOI8-R" "Q")
260 \e$B!NCm0U!O8=:_$N$H$3$m!"
\e(Bprivate character
\e$B$N@_Dj$OFq$"$j$G$9!#
\e(B(^_^;