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