1 \documentstyle[a4j]{jarticle}
2 \setcounter{secnumdepth}{6}
3 \setcounter{tocdepth}{6}
18 ¤³¤ÎÀâÌÀ½ñ¤Ï ol2 ¤È plain2 ¤òÍѤ¤¤ë¤³¤È¤Ë¤è¤Ã¤Æ LaTeX ·Á¼°¤ËÊÑ´¹¤¹¤ë
23 \section{tiny-mime.el ¤È¤Ï}
26 tiny-mime.el ¤Ï Mule, NEmacs, NEpoch ¾å¤ÇÆ°ºî¤¹¤ë MIME message
27 header ¤Î encoder/decoder ¤Ç¤¹¡£¥ª¥ê¥¸¥Ê¥ë¤Ï¡¢ÀΡ¢¤¨¤Ê¤ß ¤Ä¤°¤È¤â ¤µ¤ó
28 ¤¬ fj.editor.emacs ¤ËÅê¹Æ¤µ¤ì¤¿ MIME message header ¤Î decoder ¤Ç¤¹¡£
31 ¸½ºß¤Ç¤Ï¡¢Åö»þ¤Î¤â¤Î¤ËÈæ¤Ù¡¢
34 \item decoding »þ¤Ë¤ª¤±¤ë unfolding µ¡Ç½
35 \item ISO-2022-JP ¤Ë²Ã¤¨¡¢ISO-8859-*, US-ASCII ¤Ê¤É¤Î encoding/decoding
36 \item Q-encoding ¤Î decoding
40 ¤È¤¤¤Ã¤¿µ¡Ç½¤ò»ý¤Ã¤Æ¤¤¤Þ¤¹¡£
44 \section{tiny-mime.el ¤Î¥µ¥Ý¡¼¥È¤¹¤ë character set, encoding}
47 tiny-mime.el ¤Ï¡¢¼¡¤Î character set, encoding ¤ò¥µ¥Ý¡¼¥È¤·¤Þ¤¹¡£
53 ISO-2022-JP, US-ASCII, ISO-8859-1..9, ISO-2022-CN, ISO-2022-KR,
54 EUC-KR ¤Ê¤É¤Î encoding/decoding ¤ò¥µ¥Ý¡¼¥È¤·¤Þ¤¹¡£¤Þ¤¿¡¢´Ø¿ô
55 mime/set-charset-and-encoding ¤ÇÄɲá¦Êѹ¹¤¬¤Ç¤¤Þ¤¹¡£
58 \subsection{NEmacs, NEpoch}
61 ISO-2022-JP, US-ASCII ¤Î encoding/decoding ¤ò¥µ¥Ý¡¼¥È¤·¤Þ¤¹¡£
64 ¤Þ¤¿¡¢ISO-8859-*¤Ç¤¢¤Ã¤Æ¤â¡¢encoded-text ¤Ë´Þ¤Þ¤ì¤ëʸ»úÎ󤬼ºݤˤÏ
65 ASCII ¤Çɽ¤»¤ëÈϰϤʤéɽ¼¨¤·¤Þ¤¹¡£
69 \section{tiny-mime.el ¤Î´Êñ¤Ê»È¤¤Êý}
75 tiny-mime.el ¤ò load ¤·¤Æ¡¢decode ¤·¤¿¤¤ buffer ¾å¤Ç¡¢
77 {\list{}{\leftmargin=8ex}\item[]
79 M-x mime/decode-message-header
86 ¤Þ¤¿¡¢decode ¤·¤¿¤¤ region ¤ò
90 M-x mime/decode-region
94 ¤Ç decode ¤¹¤ë¤³¤È¤¬¤Ç¤¤Þ¤¹¡£°úÍÑ¤Ê¤É¤Ç body-part ¤Ë»Ä¤Ã¤¿
95 encoded-word ¤ò decode ¤¹¤ë¤Î¤ËÊØÍø¤Ç¤·¤ç¤¦¡£
101 tiny-mime.el ¤ò load ¤·¤Æ¡¢encode ¤·¤¿¤¤ buffer ¾å¤Ç¡¢
103 {\list{}{\leftmargin=8ex}\item[]
105 M-x mime/encode-message-header
113 \section{tiny-mime.el ¤ÎÊÑ¿ô}
116 \subsection{mime/no-encoding-header-fields}
119 tiny-mime.el ¤Ç encode ¤·¤Ê¤¤ message header ¤Î field ¤ò»ØÄꤷ¤Þ¤¹¡£
122 default ¤Ç¤Ï X-Nsubject ¤¬»ØÄꤵ¤ì¤Æ¤¤¤Þ¤¹¡£
125 Î㡧 X-Nsubject ¤È Subject ¤ò encode ¤·¤Ê¤¤¤è¤¦¤Ë¤¹¤ë¡£
129 ----------------------------------------------------------------------
130 (setq mime/no-encoding-header-fields '("X-Nsubject" "Subject"))
131 ----------------------------------------------------------------------
135 ¡ÎÃí°Õ¡Ï mime.el ¤ÈÊ»ÍѤ¹¤ë¾ì¹ç¡¢tiny-mime.el ¤¬ encode ¤·¤Ê¤¯¤Æ¤â¡¢
136 mime.el ¤¬ encode ¤¹¤ë¤Î¤Ç¡¢mime.el ¤Î message header encoder ¤¬Æ¯¤«¤Ê
137 ¤¤¤è¤¦¤Ë¤ËÀßÄꤷ¤Þ¤¹¡£
140 \subsection{mime/use-X-Nsubject}
143 ¤³¤ÎÊÑ¿ô¤ÎÃͤ¬ t ¤Î¾ì¹ç¡¢message header ¤ò encode ¤¹¤ë»þ¡¢encode ¤·
144 ¤¿·ë²Ì¡¢Subject ¤Ë encoded-word ¤¬´Þ¤Þ¤ì¤ë¾ì¹ç¡¢Subject ¤ò decode ¤·¤¿
145 ¤â¤Î¤òÆþ¤ì¤¿ X-Nsubject ¤òºîÀ®¤·¤Þ¤¹¡£
148 default ¤Ç¤Ï nil ¤¬»ØÄꤵ¤ì¤Æ¤¤¤Þ¤¹¡£
151 ¡ÎÃí°Õ¡ÏMule ¤Ç ISO-2022-JP ¤Ë´Þ¤Þ¤ì¤ë¤â¤Î°Ê³°¤Îʸ»ú½¸¹ç¤ò»È¤¦¾ì¹ç¤Ï¡¢
152 ¤³¤ì¤ò»ØÄꤷ¤Ê¤¤Êý¤¬¸ÌÀ¤Ç¤¹¡£
155 \subsection{mail-header-separator}
158 ´Ø¿ô mime/encode-message-header ¤Ë¤ª¤±¤ë message header ¤È body part
159 ¤Î¶èÀÚ¤ê¤òɽ¤¹ÊÑ¿ô¤Ç¤¹¡£Î㤨¤Ð¡¢GNUS ¤Ç¤Ï "--text follows this line--"
163 ¡ÎÃí°Õ¡Ï¤³¤ÎÊÑ¿ô¤Îʸ»úÎó¤Ï¡¢version 2.6 ¤è¤êÀµµ¬É½¸½¤Ç¤Ï¤Ê¤¯¤Ê¤ê¤Þ¤·¤¿¡£
167 \section{mailer, news reader ¤Ø¤ÎÁȤ߹þ¤ß}
170 Æü¾ïŪ¤Ë¡¢Ìµ°Õ¼±¤Ë MIME header ¤òËÜÍè¤Î¸À¸ì¤Ç¸«¤¿¤¤¤È¤¤¤¦¤Î¤ÏÅöÁ³¤Î
171 Íßµá¤Ç¤¹¡£¤½¤³¤Ç¡¢tiny-mime.el ¤ò mailer ¤ä news reader ¤ËÁȤ߹þ¤à¤È¼«
172 ưŪ¤Ë MIME header ¤Î encode/decode ¤¬¤Ç¤¤Þ¤¹¡£
175 ¤Þ¤¿¡¢metamail ¤ò»È¤Ã¤Æ¤ª¤é¤ì¤ëÊý¤Ç¤â¡¢ÉáÃÊ¤Ï message header ¤Î
176 decode ¤À¤±¤ÇÎɤ¯¤Æ¡¢³¨¤ä²»¤Ê¤É¤òºÆÀ¸¤¹¤ë»þ¤À¤± metamail ¤ò»È¤¦¤È¤¤¤¦
177 ¤è¤¦¤Ê»È¤¤Êý¤â¤Ç¤¤Þ¤¹¡£
180 ¤³¤ÎÌÜŪ¤ò¼Â¸½¤¹¤ë¤Ë¤Ï¡¢mailer ¤ä news reader ¤ÎŬÀÚ¤Ê hook ¤Ë
181 mime/decode-message-header ¤òÆþ¤ì¤ì¤ÐÎɤ¤¤Ç¤·¤ç¤¦¡£¤Þ¤¿¡¢Ê¸»úÎó¤Î
182 decode ¤ò¤·¤¿¤¤¾ì¹ç¤Î¤¿¤á¤Ë¡¢
184 {\list{}{\leftmargin=8ex}\item[]
186 (mime/decode-string ʸ»úÎó)
190 ¤È¤¤¤¦´Ø¿ô¤âÍÑ°Õ¤·¤Æ¤¤¤Þ¤¹¡£
193 GNUS ¤È mh-e ¤Ë´Ø¤·¤Æ¤Ï¡¢tm-gnus, tm-mh-e ¤È¤¤¤¦ MIME Âбþ²½¥â¥¸¥å¡¼
197 ¤³¤ì¤é¤Î¡¢³Æ MUA ¤ËÂбþ¤¹¤ë¥â¥¸¥å¡¼¥ë¤ò load ¤¹¤ë¤È tiny-mime.el ¤Ë
198 ¤è¤ë MIME header ¤ÎÉü¸µ¤È tm-body ¤òÍøÍѤ·¤¿ MIME body ¤ÎºÆÀ¸¤¬¹Ô¤Ê¤¨
202 ¾Ü¤·¤¯¤Ï¡¢¤½¤ì¤¾¤ì¤ÎÀâÌÀ½ñ¤ò¤ªÆɤ߲¼¤µ¤¤¡£
206 \section{mime.el ¤È¤ÎÊ»ÍÑ}
209 mime.el ¤ÈÊ»ÍѤ¹¤ëÎã¤ò¼¨¤·¤Þ¤¹¡£¤³¤ÎÎã¤Î¾ì¹ç¡¢ISO-2022-JP ʸ»úÎó¤Î
210 encode ¤Ï tiny-mime.el ¤¬¹Ô¤Ê¤¤¡¢¤½¤ì°Ê³°¤Îʸ»ú½¸¹ç¤Ë°¤¹¤ëʸ»úÎó¤Ï
211 mime.el ¤¬ encode ¤·¤Þ¤¹¡£
214 ¤Þ¤¿¡¢tiny-mime.el ¤¬ encode ¤·¤Ê¤«¤Ã¤¿Ê¸»úÎó¤â mime.el ¤¬ encode ¤¹
215 ¤ë¤Î¤Ç¡¢·ë²ÌŪ¤Ë¡¢É¬¤ºÁ´¤Æ¤Î field ¤¬ encode ¤µ¤ì¤ë¤³¤È¤ËÃí°Õ¤·¤Æ²¼¤µ
220 ----------------------------------------------------------------------
222 ;;; for Edit MIME mode
224 (autoload 'mime-mode "mime" "Edit MIME message." t)
225 (autoload 'mime-convert-buffer "mime" "convert to MIME." t)
226 (autoload 'insert-signature "signature" "Insert signature" t)
227 (add-hook 'mime-mode-hook
230 (define-key (current-local-map)
231 "\C-c\C-s" (function insert-signature))
234 ;; MIME header ¤Î encoder ¤ò tiny-mime ¤Î¤â¤Î¤ò»È¤¦¡£
235 (setq mime-translate-hook 'mime/encode-message-header)
240 (add-hook 'news-reply-mode-hook (function mime-mode))
241 (setq gnus-signature-file nil)
246 (add-hook 'mh-letter-mode-hook
249 (mime/decode-message-header)
251 (make-local-variable 'mail-header-separator)
252 (setq mail-header-separator "--------"))
254 ----------------------------------------------------------------------
258 \subsection{ÆÃÄê¤Î field ¤ò encode ¤·¤¿¤¯¤Ê¤¤¾ì¹ç}
261 ÆÃÄê¤Î field ¤ò encode ¤·¤¿¤¯¤Ê¤¤¾ì¹ç¡¢tiny-mime.el ¤ÎÊÑ¿ô
262 mime/no-encoding-header-fields ¤Ë¤è¤Ã¤Æ¡¢tiny-mime.el ¤Ë¤è¤ë encode ¤ò
263 ¤ä¤á¤ë¤³¤È¤¬¤Ç¤¤Þ¤¹¤¬¡¢mime.el ¤¬ encode ¤¹¤ë¤Î¤Ç¤Ï°ÕÌ£¤¬¤¢¤ê¤Þ¤»¤ó¡£
264 ¤½¤³¤Ç¡¢¼¡¤Î¤è¤¦¤ËÀßÄꤹ¤ë¤³¤È¤Ç¡¢mime.el ¤Ç¤â encode ¤·¤Ê¤¤¤è¤¦¤Ë¤Ç¤
269 ----------------------------------------------------------------------
272 (defun mime-header-charset-chooser-for-mule-no-encode-ISO-2022-JP (begin end)
273 (let ((lclist (find-charset-region begin end)))
274 (cond ((null lclist) nil) ;US-ASCII requres no encoding.
275 ((memq lc-ltn1 lclist)
276 '("ISO-8859-1" . "Q"))
277 ((memq lc-ltn2 lclist)
278 '("ISO-8859-2" . "Q"))
279 ((memq lc-ltn3 lclist)
280 '("ISO-8859-3" . "Q"))
281 ((memq lc-ltn4 lclist)
282 '("ISO-8859-4" . "Q"))
283 ((memq lc-crl lclist)
284 '("ISO-8859-5" . "Q"))
285 ;;((memq lc-arb lclist)
286 ;; '("ISO-8859-6" . "Q"))
287 ((memq lc-grk lclist)
288 '("ISO-8859-7" . "Q"))
289 ((memq lc-hbw lclist)
290 '("ISO-8859-8" . "Q"))
291 ((memq lc-ltn5 lclist)
292 '("ISO-8859-9" . "Q"))
293 ((memq lc-jp lclist) nil)
294 (t ;Unknown charset. It must be Mule!
295 '("ISO-2022-JP-2" . "B"))
297 (setq mime-header-charset-chooser
298 'mime-header-charset-chooser-for-mule-no-encode-ISO-2022-JP)
301 (defun mime-header-charset-chooser-for-nemacs-no-encode-ISO-2022-JP (begin end))
302 (setq mime-header-charset-chooser
303 'mime-header-charset-chooser-for-nemacs-no-encode-ISO-2022-JP)
305 ----------------------------------------------------------------------
309 Íפ¹¤ë¤Ë¡¢ISO-2022-JP ʸ»úÎó¤Î encode ¤ò mime.el ¤Ë¤µ¤»¤Ê¤¯¤¹¤ëÌõ¤Ç
314 \section{charset ¤ÎÄɲá¦Êѹ¹}
317 Mule ¤Ç¤Ï¡¢´Ø¿ô mime/set-charset-and-encoding ¤Ç¡¢charset ¤ÎÄɲá¦ÊÑ
321 \item[´Ø¿ô:]mime/set-charset-and-encoding lc cs charset encoding
324 \item[lc:]charset ¤ËÂбþ¤¹¤ë leading-char ¤ò»ØÄꤹ¤ë¡£
325 \item[cs:]charset ¤ËÂбþ¤¹¤ë coding-system ¤ò»ØÄꤹ¤ë¡£1 octet ʸ»ú
326 ½¸¹ç¤Ç coding-system ¤òºî¤é¤Ê¤¤¾ì¹ç¤Ï¡¢nil ¤ò»ØÄꤹ¤ë¡£
327 \item[charset:]MIME ¤Î charset.
328 \item[encoding:]encode ¤¹¤ëºÝ¤Î encoding.
334 Î㡧 KS C5601-1987 ¤ò EUC-KR ¤Î B encoding ¤¹¤ë¤è¤¦¤ËÀßÄꤹ¤ë
336 {\list{}{\leftmargin=8ex}\item[]
338 (mime/set-charset-and-encoding lc-kr *euc-kr* "EUC-KR" "B")
343 Î㡧 koi8-r ¤ò Q encoding ¤¹¤ë¤è¤¦¤ËÀßÄꤹ¤ë¡£
345 {\list{}{\leftmargin=8ex}\item[]
347 (mime/set-charset-and-encoding lc-prv11 nil "KOI8-R" "Q")
352 ¡ÎÃí°Õ¡Ï¸½ºß¤Î¤È¤³¤í¡¢private character ¤ÎÀßÄê¤ÏÆñ¤¢¤ê¤Ç¤¹¡£(\verb+^+\_\verb+^+;