(mime-magic-type-alist): New variable; abolish
[elisp/semi.git] / mime-ui-en.sgml
1 <!doctype sinfo system>
2 <head>
3 <title>SEMI 1.8 Manual
4 <author>MORIOKA Tomohiko <mail>morioka@jaist.ac.jp</mail>
5 <date>1998/07/03
6
7 <toc>
8 </head>
9
10 <body>
11
12 <abstract>
13 <p>
14 This file documents SEMI, a MIME user interface for GNU Emacs.
15 </abstract>
16
17
18 <h1> What is SEMI?
19 <node> Introduction
20 <p>
21 SEMI is a package for GNU Emacs to provide features related with MIME
22 user interface.
23 <p>
24 SEMI \e$B$,Ds6!$9$k\e(B MIME user interface \e$B$O\e(B MIME-View \e$B$H\e(B MIME-Edit \e$B$+$i$J$j$^\e(B
25 \e$B$9!#\e(B
26 <p> 
27 MIME-View \e$B$O\e(B MIME \e$B$d\e(B STD 11 \e$B$*$h$S!XCO0h2=$5$l$?\e(B RFC 822\e$B!Y\e(Bmessage \e$B$rI=<(\e(B
28 \e$B$7$?$j!"A`:n$7$?$j$9$k$?$a$N\e(B user interface \e$B$NCf3K$G$9!#\e(B
29 <p>
30 MIME-Edit \e$B$O\e(B MIME message \e$B$r@8@.$9$k$?$a$N\e(B user interface \e$B$G$9!#\e(B
31 <p>
32 \e$B3F\e(B MUA \e$B$G$3$l$i$N5!G=$rMxMQ$9$k$3$H$K$h$j!"9bEY$J\e(B MIME \e$B5!G=$rMxMQ$9$k$3\e(B
33 \e$B$H$,$G$-$^$9!#\e(B
34
35
36 <h1> MIME message viewing
37 <node> MIME-View
38 <p>
39 MIME-View \e$B$O\e(B GNU Emacs \e$B$GF0:n$9$kHFMQE*$J\e(B MIME viewer \e$B$G$9!#\e(B
40 <p>
41 MIME-View \e$B$O\e(B MIME message \e$B$r1\Mw$9$k$?$a$NMxMQ<T3&LL\e(B (user interface) 
42 \e$B$N3K$G$"$j!"$3$N>e$G\e(B presentation-method \e$B$H8F$P$l$kI=<($r:n$k%W%m%0%i%`\e(B
43 \e$B$rF0$+$7$?$j!"\e(Bacting-method \e$B$H8F$P$l$k\e(B entity \e$B$N=hM}%W%m%0%i%`$rF0$+$9\e(B
44 \e$B$3$H$,2DG=$G!"$5$^$6$^$J<oN`$N\e(B entity \e$B$r07$&;v$,$G$-$k$h$&$K$J$C$F$$$^$9!#\e(B
45
46
47 <h2> Basic design
48 <node> Overview of MIME-View
49 <p>
50 Internet \e$B$NEE;R=q4J!&%M%C%H%K%e!<%9$J$I$N=qLL\e(B (message) \e$B$NI=8=7A<0$O\e(B 
51 STD 11 \e$B$K4p$E$$$F$$$^$9!#\e(BSTD 11 \e$B$N=qLLK\BN\e(B (message body) \e$B$O9T$rM#0l$N\e(B
52 \e$B9=B$$H$9$k4J0WJ8LL\e(B (plain text) \e$B$G$"$j!"J8;zId9f$b\e(B us-ascii \e$B$HDj$a$i$l\e(B
53 \e$B$F$$$^$9!#<B:]$K$O!"J8;zId9f$r\e(B us-ascii \e$B$NBe$o$j$K$=$N8@8l7w$GMQ$$$i$l\e(B
54 \e$B$kJ8;zId9f$H$7$?!XCO0h2=$5$l$?\e(B STD 11\e$B!Y=qLL$bMQ$$$i$l$F$-$^$7$?$,!"$3\e(B
55 \e$B$N>l9g$b=qLL$NJ8;zId9f$O#1$D$G$9!#$3$N$?$a!"MxMQ<T3&LL\e(B (Message User
56 Agent) \e$B$O!"$7$P$7$P!"\e(Bbyte \e$BNs\e(B = us-ascii \e$BJ8;zNs!"$J$$$7$O!"\e(Bbyte \e$BNs\e(B = \e$B$=\e(B
57 \e$B$N8@8l7w$GMQ$$$kJ8;zId9f$NJ8;zNs$N$h$&$K8+Jo$7$F$-$^$7$?!#\e(B
58 <p>
59 \e$B$7$+$7$J$,$i!"\e(BMIME \e$B$G$O=qLL$O\e(B entity \e$B$rC10L$H$9$kLZ9=B$$K$J$j!"$^$?!"\e(B
60 \e$B#1$D$N=qLL$GJ#?t$NJ8;zId9f$rMQ$$$k$3$H$,$G$-$^$9!#$^$?!"\e(Bentity \e$B$NFbMF\e(B
61 \e$B$OJ8LL$d3($N$h$&$JC1=c$KI=<(2DG=$J$b$N$@$1$G$J$/!"2;@<$dF02h$J$I$N0lDj\e(B
62 \e$B;~4V:F@8$5$l$k$h$&$J$b$N$dFCDj$N%"%W%j%1!<%7%g%s$N%G!<%?$d%W%m%0%i%`$N\e(B
63 \e$B%=!<%9!"$"$k$$$O!"\e(Bftp \e$B$d\e(B mail service \e$B$NMxMQK!$d\e(B URL \e$B$H$$$C$?7A$GI=$5\e(B
64 \e$B$l$?30It;2>H$J$I$N$5$^$6$^$J$b$N$,9M$($i$^$9!#$3$N$?$a!"I=<($@$1$r9M$(\e(B
65 \e$B$F$$$?\e(B STD 11 \e$B$K$*$1$kMxMQ<T3&LL$NC1=c$J1dD9$G$O\e(B MIME \e$B$NA4$F$N5!G=$r07\e(B
66 \e$B$&$3$H$O$G$-$^$;$s!#$D$^$j!"\e(BMIME \e$B$N7A<0$K9g$o$;$FI|9f$9$k$@$1$G$OIT==\e(B
67 \e$BJ,$G$"$j!"MxMQ<T$H$NBPOCE*$J:F@8=hM}$r9MN8$9$kI,MW$,$"$j$^$9!#\e(BMIME \e$B=q\e(B
68 \e$BLL$N7A<0$O<+F0=hM}$,$7$d$9$/@_7W$5$l$F$$$^$9$,!"\e(BMIME \e$B=qLL$K4^$^$l$kFb\e(B
69 \e$BMF$NCf$K$O%;%-%e%j%F%#!<>e$NLdBj$+$i<+F0=hM}$r$9$k$Y$-$G$J$$$b$N$,$"$j!"\e(B
70 \e$B$3$&$$$C$?$b$N$N:F@8$K4X$7$F$OMxMQ<T$NH=CG$r6D$0$h$&$K@_7W$5$l$k$Y$-$G\e(B
71 \e$B$7$g$&!#7k6I!"\e(BMIME \e$B=qLL$r07$&$?$a$K$O\e(B STD 11 \e$B$*$h$S\e(B MIME \e$B$N9=J8$G5-=R\e(B
72 \e$B$5$l$?%a%C%;!<%8$N>pJs8r49MQI=8=$H$=$N2r<a7k2L$G$"$kI=<(2hLL$d:F@8Ey$N\e(B
73 \e$B=hM}$r6hJL$7$F9M$($kI,MW$,$"$j$^$9!#$^$?!"MxMQ<T$H$NBPOCE*$J:F@8=hM}$,\e(B
74 \e$BI,MW$G$9!#\e(B
75 <p>
76 \e$B$3$N$?$a!"\e(BMIME-View \e$B$O#1$D$N=qLL$KBP$7$F!">pJs8r49MQI=8=$r3JG<$9$k\e(B 
77 mime-raw-buffer \e$B$HI=<(MQI=8=$r3JG<$9$k\e(B mime-preview-buffer \e$B$N#2$D$N\e(B 
78 buffer \e$B$rMQ$$$^$9!#\e(B
79 <p>
80 MIME-View \e$B$O\e(B mime-preview-buffer \e$B$KBP$7$F\e(B mime-view-mode \e$B$H$$$&\e(B MIME
81 message \e$B$r1\Mw$9$k$?$a$N\e(B mode \e$B$rDs6!$7$^$9!#MxMQ<T$O$3$3$G3F\e(B entity \e$B$K\e(B
82 \e$BBP$7$FA`:n$r9T$&$3$H$,$G$-$^$9!#\e(B
83
84
85 <h2> Presentation of mime-preview-buffer
86 <node> MIME-Preview
87 <p>
88 mime-view-mode \e$B$G$O3F\e(B entity \e$B$KBP$7$F\e(B
89 <p>
90 <verb>
91         [entity-button]
92         (header)
93         
94         (body)
95         (separator)
96 </verb>
97 <p>
98 <noindent>
99 \e$B$H$$$&>pJs$rI=<($7$^$9!#$3$l$i$O>r7o$K=>$C$F\e(B design \e$B$rJQ99$7$?$j!"I=<(\e(B
100 \e$B$rM^@)$9$k$3$H$b$G$-$^$9!#\e(B
101 <p>
102 \e$B0J2<$K!"I=<(Nc$r<($7$^$9!#\e(B
103
104
105 <verb>
106 From: morioka@jaist.ac.jp (\e$B<i2,\e(B \e$BCNI'\e(B / MORIOKA Tomohiko)
107 Subject: Re: \e$B<ALd!)\e(B
108 Newsgroups: zxr.message.mime
109 Date: 22 Oct 93 11:02:44
110 Mime-Version: 1.0
111 Organization: Japan Advanced Institute of Science and Technology,
112         Ishikawa, Japan
113
114 [1  (text/plain)]
115   MIME-Edit mode \e$B$K$*$1$k!"\e(BMIME message \e$B$N:n$jJ}!#\e(B
116
117   C-c C-x ? \e$B$r2!$9$H\e(B help \e$B$,=P$F$/$k!#\e(B
118
119 C-c C-x C-t     insert a text message.
120 C-c C-x TAB     insert a (binary) file.
121 C-c C-x C-e     insert a reference to external body.
122 C-c C-x C-v     insert a voice message.
123 C-c C-x C-y     insert a mail or news message.
124 C-c C-x RET     insert a mail message.
125 C-c C-x C-s     insert a signature file at end.
126 C-c C-x t       insert a new MIME tag.
127 C-c C-x a       enclose as multipart/alternative.
128 C-c C-x p       enclose as multipart/parallel.
129 C-c C-x m       enclose as multipart/mixed.
130 C-c C-x d       enclose as multipart/digest.
131 C-c C-x s       enclose as PGP signed.
132 C-c C-x e       enclose as PGP encrypted.
133 C-c C-x C-k     insert PGP public key.
134 C-c C-x C-p     preview editing MIME message.
135 ...
136
137 \e$B$C$FLu$G!"\e(BC-c C-x C-i \e$B$r2!$7$F!"A^F~$7$?$$\e(B binary file \e$B$r;XDj$7$^$9!#\e(B
138
139   binary file \e$B$N\e(B MIME encoding \e$B$K$O!"IaDL!"\e(BBase64 \e$B$r;XDj$7$^$9!#\e(B
140
141 [2  (image/gif)]
142
143 [3  (text/plain)]
144
145   \e$B$3$s$JIw$K!"3(F~$j\e(B message \e$B$N$G$->e$,$j!#\e(B
146
147 \e$B".".".".".".".".".".".\e(B \e$B%m%7%"%s!&%F%#!<$r0lGU!#\e(B \e$B".".".".".".".".".".".\e(B
148 \e$B".".".".".\e(B  \e$B!y\e(B \e$B%8%c%`$G$O$J$/%^!<%^%l!<%I$G$b$J$/K*L*$G\e(B \e$B!y\e(B  \e$B".".".".".\e(B
149 \e$B".".".".".\e(B         \e$B'.'0'2$$'0','!\e(B  \e$B'4'0'.'0'7'*','0\e(B         \e$B".".".".".\e(B
150 \e$B".".".".".".".\e(B  Internet E-mail: &lt;morioka@jaist.ac.jp&gt;  \e$B".".".".".".".\e(B
151 </verb>
152
153
154 <h3> entity-button
155 <node> entity-button
156 <p>
157 <concept>entity-button</concept> \e$B$O\e(B entity \e$B$N@hF,$K$"$C$F!"$=$N\e(B entity 
158 \e$B$K4X$9$kBg$^$+$J>pJs$rI=<($9$kItJ,$G$9!#\e(B
159 <p>
160 \e$BI8=`$G$O\e(B
161
162 <verb>
163         [1.3 test (text/plain)]
164 </verb>
165
166 <noindent>
167 \e$B$N$h$&$J46$8$KI=<($5$l$^$9!#\e(B
168 <p>
169 \e$B:G=i$N?t;z$O\e(B message \e$BCf$N$3$N\e(B entity \e$B$N0LCV$r@aHV9f$N$h$&$KI=$7$?$b$N\e(B
170 \e$B$G!"\e(B<concept>entity-number</concept> \e$B$H8F$S$^$9!#\e(B
171 <p>
172 \e$B#2HVL\$NJ8;zNs$OI=Bj$rI=$7$^$9!#$3$N>pJs$O!"\e(B
173
174 <ol>
175 <li>Content-Description field \e$B$b$7$/$O\e(B Subject field \e$B$K=q$+$l$?I=Bj\e(B
176 <li>Content-Disposition field \e$B$N\e(B filename parameter \e$B$K=q$+$l$?\e(B file \e$BL>\e(B
177 <li>Content-Type field \e$B$N\e(B name parameter \e$B$K=q$+$l$?\e(B file \e$BL>\e(B
178 <li> uuencode \e$B$N>l9g$N\e(B file \e$BL>\e(B
179 </ol>
180
181 <noindent>
182 \e$B$+$i:n$j$^$9!#$I$l$bB8:_$7$J$$>l9g$O6uGr$,I=<($5$l$^$9!#\e(B
183 <p>
184 \e$B#3HVL\$N3g8L$NCf$N>pJs$O$=$N\e(B entity \e$B$N\e(B media-type/subtype \e$B$rI=$7$^$9!#\e(B
185 \e$BHs\e(B MIME entity \e$B$N>l9g!"\e(B<code>nil</code> \e$B$,I=<($5$l$^$9!#\e(B
186 <p>
187 \e$B$3$N\e(B entity-button \e$B$O\e(B entity \e$B$NFbMF$r>]D'$9$k\e(B icon \e$B$N$h$&$JLr3d$r2L$?\e(B
188 \e$B$7$^$9!#Nc$($P!"\e(B
189
190 <verb>
191         [2  (image/gif)]
192 </verb>
193
194 <noindent>
195 \e$B$N>e$G\e(B <kbd>v</kbd> \e$B$r2!$;$P$3$3$KF~$C$F$$$k3($,I=<($5$l$^$9!#\e(B
196 <p>
197 \e$B$^$?!"\e(Bmouse \e$BA`:n$,2DG=$J>l9g!"\e(Bentity-button \e$B$rBh#2%\%?%s!J\e(B3 button
198 mouse \e$B$N>l9g!"Cf1{$N%\%?%s!K$G2!$;$P!"F1MM$K$=$N3($,I=<($5$l$^$9!#\e(B
199
200
201 <h3> entity-header
202 <node> entity-header
203 <p>
204 <concept>entity-header</concept> \e$B$O$"$k\e(B entity \e$B$N\e(B header \e$B$rI=<($9$kIt\e(B
205 \e$BJ,$G$9!J!V$=$N$^$^$d$s$1!W$C$FE\$i$J$$$G!#$=$&$$$&$b$s$J$s$G$9!K!#\e(B
206
207
208 <h3> entity-body
209 <node> entity-body
210 <p>
211 <concept>entity-body</concept> \e$B$O\e(B part \e$B$NFbMF$rI=<($9$kItJ,$G$9!#\e(B
212 <p>
213 \e$B$3$l$b$R$M$j$,B-$j$J$$$G$9$,!"$^$"!"$=$&$$$&$b$s$G$9!#\e(B
214 <p>
215 \e$B$H$O$$$(!"<B:]$K$O>/$7$R$M$C$F$^$9!#\e(B
216 <p>
217 text entity \e$B$N>l9g$O\e(B charset \e$B$K1~$8$F\e(B code \e$BJQ49$7$?$j$7$^$9$7!"\e(BXEmacs 
218 \e$B$G$O\e(B image entity \e$B$rJQ49$7$J$$$H$$$1$J$$$7!#\e(B
219 <p>
220 \e$B>\$7$/$O$^$?8e$G!#\e(B
221
222
223 <h2> Operation in mime-preview-buffer
224 <node> mime-view-mode
225 <p>
226 mime-preview-buffer \e$B$K$O0J2<$N5!G=$,$"$j$^$9!#\e(B
227 <p>
228 <kl>
229 <kt>u
230 <kd>
231 \e$B>e$N\e(B part \e$B$KLa$k!J\e(Bmessage \e$B$N0lHV>e$N\e(B part \e$B$G$3$l$r9T$J$&$H\e(B Summary
232 mode \e$B$KLa$k\e(B (*1)\e$B!K\e(B
233 </kd>
234 <kt>p<kd>\e$BA0$N\e(B part \e$B$K0\F0$9$k\e(B
235 </kd>
236 <kt>M-TAB<kd>\e$BA0$N\e(B part \e$B$K0\F0$9$k\e(B
237 </kd>
238 <kt>n<kd>\e$B<!$N\e(B part \e$B$K0\F0$9$k\e(B
239 </kd>
240 <kt>TAB<kd>\e$B<!$N\e(B part \e$B$K0\F0$9$k\e(B
241 </kd>
242 <kt>SPC<kd>scroll up \e$B$9$k\e(B
243 </kd>
244 <kt>M-SPC<kd>scroll down \e$B$9$k\e(B
245 </kd>
246 <kt>DEL<kd>scroll down \e$B$9$k\e(B
247 </kd>
248 <kt>RET<kd>\e$B<!$N9T$K0\F0$9$k\e(B
249 </kd>
250 <kt>M-RET<kd>\e$BA0$N9T$K0\F0$9$k\e(B
251 </kd>
252 <kt>v<kd>part \e$B$r:F@8$9$k\e(B (*2)
253 </kd>
254 <kt>e<kd>part \e$B$+$i\e(B file \e$B$r<h$j=P$9\e(B (*2)
255 </kd>
256 <kt>C-c C-p<kd>part \e$B$r0u:~$9$k\e(B (*2)
257 </kd>
258 <kt>mouse-button-2
259 <kd>
260 preview-buffer \e$BCf$N\e(B mouse button \e$B$r5/F0$9$k\e(B
261 <p>
262 content-button \e$B$r2!$;$P!"$=$N\e(B part \e$B$,:F@8$5$l$k\e(B(*2)
263 <p>
264 URL-button \e$B$r2!$;$P!"$=$N\e(B WWW browser \e$B$,5/F0$5$l$k\e(B
265 </kd>
266 </kl>
267 <p>
268 <memo title="\e$BCm0U\e(B">
269 <p>
270 (*1) MUA \e$B$G\e(B mime-view \e$B$N@_Dj$r$7$F$$$J$$>l9g!"\e(BSummary mode \e$B$K$OLa$j$^\e(B
271 \e$B$;$s!#\e(B
272 <p>
273 (*2) \e$B<B:]$NF0:n$OBP1~$9$k\e(B method \e$B$K0M$j$^$9!#\e(B
274 </memo>
275
276
277 <h1> MIME message editing
278 <node> MIME-Edit
279 <p>
280 <concept>MIME-Edit</concept> is a general MIME composer for GNU Emacs.
281
282
283 <h2> Minor-mode to edit MIME message
284 <node> mime-edit-mode
285 <p>
286 <concept>mime-edit-mode</concept> is a minor mode to compose MIME
287 message.  In this mode, <concept>tag</concept> represents various
288 kinds of data, so you can edit multi part message consists of various
289 kinds of data, such as text, image, audio, etc.
290 <p>
291 There are 2 kinds of tags:
292
293 <ul>
294 <li> single-part tag
295 <li> multi-part tag
296 </ul>
297 <p>
298 single-part tag represents single part, this form is following:
299 <p>
300 <verb>
301         --[[TYPE/SUBTYPE;PARAMETERS][ENCODING]
302         OPTIONAL-FIELDS]
303 </verb>
304 <p>
305 TYPE/SUBTYPE and PARAMETERS indicates type/subtype and parameters of
306 <dref file="mime-en">Content-Type</dref> field.  TYPE/SUBTYPE is
307 required, PARAMETERS is optional.
308 <p>
309 ENCODING indicates <dref
310 file="mime-ja">Content-Transfer-Encoding</dref> field.  It is optional
311 too.
312 <p>
313 OPTIONAL-FIELDS is to represent another fields except Content-Type
314 field and Content-Transfer-Encoding field.
315 <p>
316 multi-part tags represent <a file="mime-en" node="multipart">multi
317 part</a>.  They consist of a pair of <concept>multi-part beginning
318 tag</concept> and <concept>multi-part ending tag</concept>.
319 <p>
320 multi-part beginning tag's form is following:
321
322 <verb>
323         --<<TYPE>>-{
324 </verb>
325 <p>
326 multi-part ending tag's form is following:
327
328 <verb>
329         --}-<<TYPE>>
330 </verb>
331 <p>
332 A region from multi-part beginning tag to multi-part ending tag is
333 called as <concept>enclosure</concept>.
334
335
336 <h2> Operations for single-part
337 <node> single-part tags
338 <p>
339 Operations to make single-part are following:
340
341 <kl>
342 <kt>C-c C-x C-t
343 <kd>
344 Insert single-part tag indicates text part.
345 </kd>
346 <kt>C-c C-x C-i
347 <kd>
348 Insert file as a MIME attachment.  If <kbd>C-u</kbd> is followed by
349 it, it asks media-type, subtype or encoding even if their default
350 values are specified. <cf node="tag specification for inserted file">
351 </kd>
352 <kt>C-c C-x C-e
353 <kd>
354 Insert external part.
355 </kd>
356 <kt>C-c C-x C-v
357 <kd>
358 Record audio input until <kbd>C-g</kbd> is pressed, and insert as a
359 audio part. (It requires /dev/audio in default.)
360 </kd>
361 <kt>C-c C-x C-y
362 <kd>
363 Insert current (mail or news) message. (It is MUA depended.)
364 </kd>
365 <kt>C-c C-x C-m
366 <kd>
367 Insert mail message. (It is MUA depended.)
368 </kd>
369 <dt><key>C-c C-x C-w</key>, <key>C-c C-x C-s</key>
370 <dd>
371 Insert signature.
372 </dd>
373 <kt>C-c C-x C-k
374 <kd>
375 Insert <dref>PGP</dref> public key. (It requires Mailcrypt package.)
376 </kd>
377 <kt>C-c C-x t
378 <kd>
379 Insert any single-part tag.
380 </kl>
381
382
383 <h2> Operations for enclosure
384 <node> enclosure tags
385 <p>
386 Operations to make enclosure are following:
387
388 <kl>
389 <kt>C-c C-m C-a
390 <kd>
391 Enclose specified region as multipart/alternative.
392 </kd>
393 <kt>C-c C-x C-p
394 <kd>
395 Enclose specified region as multipart/parallel.
396 </kd>
397 <kt>C-c C-x C-m
398 <kd>
399 Enclose specified region as multipart/mixed.
400 </kd>
401 <kt>C-c C-x C-d
402 <kd>
403 Enclose specified region as multipart/digest.
404 </kd>
405 <kt>C-c C-x C-s
406 <kd>
407 Digital-sign to specified region. <cf node="PGP">
408 </kd>
409 <kt>C-c C-x C-e
410 <kd>
411 Encrypt to specified region. <cf node="PGP">
412 </kd>
413 <kt>C-c C-x C-q
414 <kd>
415 avoid to encode tags in specified region.  In other words, tags is
416 interpreted as such string.  (In current version, it may be
417 incomplete.  Maybe PGP-signature does not work for this enclosure.)
418 </kl>
419
420
421 <h2> Other operations
422 <node> other MIME-Edit operations
423 <p>
424 There are another operations in mime-edit-mode.
425
426 <kl>
427 <kt>C-c C-c
428 <kd>
429 Send current editing message.
430 </kd>
431 <kt>C-c C-x p
432 <kd>
433 Preview current editing message. <cf node="MIME-View">
434 </kd>
435 <kt>C-c C-x C-z
436 <kd>
437 Exit mime-edit-mode without sending.
438 </kd>
439 <kt>C-c C-x /
440 <kd>
441 Set current editing message to enable automatic splitting or not.
442 Form of automatic split messages is message/partial.
443 </kd>
444 <kt>C-c C-x 7
445 <kd>
446 Set <dref file="mime-en">7bit</dref> to <dref>transfer level</dref>.
447 </kd>
448 <kt>C-c C-x 8
449 <kd>
450 Set <dref file="mime-en">8bit</dref> to <dref>transfer level</dref>.
451 </kd>
452 <kt>C-c C-x v
453 <kd>
454 Set current editing message to digital-sign or not. <cf node="PGP">
455 </kd>
456 <kt>C-c C-x h
457 <kd>
458 Set current editing message to encrypt or not. <cf node="PGP">
459 <kt>C-c C-x ?
460 <kd>
461 Display help message.
462 </kl>
463
464
465 <h2> How to detect tag for inserted file
466 <node> file-type specification
467 <p>
468 When <kbd>C-c C-x C-i</kbd> (<code>mime-edit-insert-file</code>) is
469 pressed, tag parameters for inserted file, such as media-type or
470 encoding, are detected by variable <code>mime-file-types</code>.
471 <p>
472 When <kbd>C-u</kbd> is followed by it or parameter is not found from
473 the variable, it asks from user.  (When <kbd>C-u</kbd> is followed by
474 it, detected value is used as default value)
475 <p>
476 If you want to change default value for file names, please change
477 variable <code>mime-file-types</code>.
478
479 <defvar name="mime-file-types">
480 <p>
481 Specification of default value of tag for file name of inserted file.
482 <p>
483 It is a list of following list:
484
485 <lisp>
486         (FILE_PAT TYPE SUBTYPE PARAMS ENCODING
487          DISPOSITION_TYPE DISPOSITION_PARAMS)
488 </lisp>
489
490 Each element of the list is following:
491
492 <dl>
493 <dt>FILE_PAT
494 <dd>regular expression of file name
495 <dt>TYPE
496 <dd>primary-type of media-type
497 <dt>SUBTYPE
498 <dd>subtype of media-type
499 <dt>PARAMS
500 <dd>parameters of Content-Type field
501 <dt>ENCODING
502 <dd>Content-Transfer-Encoding
503 <dt>DISPOSITION_TYPE
504 <dd>disposition-type
505 <dt>DISPOSITION_PARAMS
506 <dd>parameters of Content-Disposition field
507 </dl>
508
509 <noindent>
510 Example: Specify application/rtf as default media type for
511 <file>*.rtf</file>
512
513 <lisp>
514 (eval-after-load
515     "mime-edit"
516   '(set-alist 'mime-file-types
517               "\\.rtf$"
518               '("application" "rtf" nil nil
519                 "attachment" (("filename" . file)))
520               ))
521 </lisp>
522 </defvar>
523
524
525 <h2> transfer level
526 <node> transfer level
527 <p>
528 Each content inserted in a message is represented by <dref
529 file="mime-en">7bit</dref>, <dref file="mime-en">8bit</dref> or <dref
530 file="mime-en">binary</dref>.
531 <p>
532 If a message is translated by 7bit-through <dref
533 file="mime-en">MTA</dref>, there is no need to encode 7bit data, but
534 8bit and binary data must be encoded to 7bit data.
535 <p>
536 Similarly, if a message is translated by 8bit-through MTA, there is no
537 need to encode 7bit or 8bit data, but binary data must be encoded to
538 7bit or 8bit data.
539 <p>
540 <memo>
541 EBCDIC MTA breaks 7bit data, so in this case, 7bit data must be
542 encoded by base64.  But I don't know EBCDIC. (^_^;
543 <p>
544 Similarly, I wish ASCII-printable only MTA and code-conversion MTA
545 disappeared. (^_^;
546 <p>
547 Maybe there are binary-through MTA, but I think it is not major.
548 </memo>
549 <p>
550 <concept>transfer level</concept> represents how range data are
551 available.  mime-edit has a variable <code>mime-transfer-level</code>
552 to represent transfer level.
553
554
555 <defvar name="mime-transfer-level">
556 <p>
557 transfer level.
558 <p>
559 If transfer level of a data is over it, a data is encoded to 7bit.
560 <p>
561 Currently, 7 or 8 is available.  Default value is 7.
562 <p>
563 In extension plan, EBCDIC will be 5, ASCII printable only will be 6,
564 binary will be 9.  But it will not be implemented.
565 </defvar>
566
567
568 <memo>
569 transfer level is only for body, not for <a node="header">message
570 header</a>.  MIME extends <dref file="mime-en">RFC 822</dref> to use
571 8bit data in body, but it requires to use <dref
572 file="mime-en">us-ascii</dref> in header.
573 </memo>
574
575
576 <h2> Splitting
577 <node> message/partial sending
578 <p>
579 <defvar name="mime-edit-split-message">
580 <p>
581 Split large message if it is non-nil.
582 </defvar>
583
584 <defvar name="mime-edit-message-default-max-lines">
585 <p>
586 Default maximum lines of a message.
587 </defvar>
588
589 <defvar name="mime-edit-message-max-lines-alist">
590 <p>
591 Alist of major-mode vs maximum lines of a message.
592 <p>
593 If it is not specified for a major-mode,
594 <code>mime-edit-message-default-max-lines</code> is used.
595 </defvar>
596
597 <defvar name="mime-edit-split-blind-field-regexp">
598 <p>
599 Regular expression to match field-name to be ignored when split
600 sending.
601 </defvar>
602
603
604 <h1> Miscellaneous
605 <node> Various
606
607 <h2> PGP
608 <node> PGP
609 <p>
610 mime-edit provides PGP encryption, signature and inserting public-key
611 features based on <concept>PGP/MIME</concept> (RFC 2015) or
612 <concept>PGP-kazu</concept> (draft-kazu-pgp-mime-00.txt).
613 <p>
614 This feature requires pgp command and pgp interface package, such as
615 <a file="mailcrypt">Mailcrypt package</a>.
616
617 <defvar name="pgp-function-alist">
618 <p>
619 Alist of service names vs. corresponding functions and its filenames.
620 Each element looks like <code>(SERVICE FUNCTION FILE)</code>.
621 <p>
622 SERVICE is a symbol of PGP processing.  It allows `verify', `decrypt',
623 `fetch-key', `snarf-keys', `mime-sign', `traditional-sign', `encrypt'
624 or `insert-key'.
625 <p>
626 Function is a symbol of function to do specified SERVICE.
627 <p>
628 FILE is string of filename which has definition of corresponding
629 FUNCTION.
630 </defvar>
631
632 <defun name="pgp-function">
633             <args> method
634 <p>
635 Return function to do service <var>method</var>.
636 </defun>
637
638
639 <h2> Mouse button
640 <node> Buttons
641 <p>
642 <defvar name="mime-button-face">
643 <p>
644 Face used for content-button or URL-button of MIME-Preview buffer.
645 </defvar>
646
647 <defvar name="mime-button-mouse-face">
648 <p>
649 Face used for MIME-preview buffer mouse highlighting.
650 </defvar>
651
652 <defvar name="mime-browse-url-function">
653 <p>
654 Function to browse URL.
655 </defvar>
656
657
658 <h2> Utility for configuration
659 <node> Acting-condition configuration
660 <p>
661 <defun name="mime-add-condition">
662             <args> target-type condition <opts> mode file
663 <p>
664 Add <var>condition</var> to database specified by
665 <var>target-type</var>.
666 <p>
667 <var>target-type</var> must be <code>preview</code> or
668 <code>action</code>.
669 <p>
670 If optional argument <var>mode</var> is <code>strict</code> or
671 <code>nil</code> (omitted), <var>condition</var> is added strictly.
672 <p>
673 If optional argument <var>mode</var> is <code>with-default</code>,
674 <var>condition</var> is added with default rule.
675 <p>
676 If optional argument <var>file</var> is specified, it is loaded when
677 <var>condition</var> is activate.
678 </defun>
679
680
681 <h1> Concept Index
682 <node> Concept Index
683
684 <cindex>
685
686
687 <h1> Function Index
688 <node> Function Index
689
690 <findex>
691
692
693 <h1> Variable Index
694 <node> Variable Index
695
696 <vindex>
697
698 </body>