7abfec8ecd258353fd786bd2ec3435cc52be29c6
[elisp/wanderlust.git] / doc / wl.texi
1 \input texinfo @c -*-texinfo -*- coding: iso-2022-jp -*-
2 @c %**start of header
3 @setfilename wl.info
4 @settitle Wanderlust -- Yet Another Message Interface On Emacsen --
5 @c @documentlanguage en
6 @c %**end of header
7 @c texinfo of Wanderlust
8 @set Time-stamp: <00/04/26 17:31:25 teranisi>
9 @set version 1.1.1
10 @synindex pg cp
11 @finalout
12
13 @direntry
14 * Wanderlust: (wl).         Yet Another Message Interface On Emacsen
15 @end direntry
16
17 @c permissions text appears in an Info file before the first node.
18 @ifinfo
19 This file documents Wanderlust,
20 Yet another message interface on Emacsen.
21
22 Copyright @copyright{} 1998, 1999, 2000 @w{Yuuichi Teranishi}.
23 @c Copyright @copyright{} 1998, 1999, 2000 @w{Yuuichi Teranishi}, @*
24 @c @w{Fujikazu Okunishi}, @w{Masahiro Murata},
25 @c @w{Kenichi Okada}, @w{Kaoru Takahashi}, @w{Bun Mizuhara}
26 and @w{Masayuki Osada}.
27
28 This edition is for Wanderlust version @value{version}.
29
30 Permission is granted to make and distribute verbatim copies of
31 this manual provided the copyright notice and this permission notice
32 are preserved on all copies.
33
34 @ignore
35 Permission is granted to process this file through TeX and print the
36 results, provided the printed document carries copying permission
37 notice identical to this one except for the removal of this paragraph
38 (this paragraph not being relevant to the printed manual).
39
40 @end ignore
41 Permission is granted to copy and distribute modified versions of this
42 manual under the conditions for verbatim copying, provided that the entire
43 resulting derived work is distributed under the terms of a permission
44 notice identical to this one.
45
46 Permission is granted to copy and distribute translations of this manual
47 into another language, under the above conditions for modified versions.
48
49 @end ifinfo
50
51 @titlepage
52 @sp 10
53 @title Wanderlust User's Manual (ver. @value{version})
54 @author Yuuichi Teranishi
55 @author Fujikazu Okunishi
56 @author Masahiro Murata
57 @author Kenichi Okada
58 @author Kaoru Takahashi
59 @author Bun Mizuhara
60 @author Masayuki Osada
61 @page
62
63 @vskip 0pt plus 1filll
64 Copyright @copyright{} 1998, 1999, 2000 @w{Yuuichi Teranishi}.
65 @c Copyright @copyright{} 1998, 1999, 2000 @w{Yuuichi Teranishi}, @*
66 @c @w{Fujikazu Okunishi}, @w{Masahiro Murata},
67 @c @w{Kenichi Okada}, @w{Kaoru Takahashi}, 
68 @c @w{Bun Mizuhara} and @w {Masayuki Osada}
69
70 This manual is for Wanderlust version @value{version}.
71
72 Permission is granted to make and distribute verbatim copies of
73 this manual provided the copyright notice and this permission notice
74 are preserved on all copies.
75
76 Permission is granted to copy and distribute modified versions of this
77 manual under the conditions for verbatim copying, provided that the entire
78 resulting derived work is distributed under the terms of a permission
79 notice identical to this one.
80
81 Permission is granted to copy and distribute translations of this manual
82 into another language, under the above conditions for modified versions.
83
84 @end titlepage
85
86
87 @c
88 @c  Top
89 @c 
90 @ifinfo
91 @node Top, Introduction, (dir), (dir)
92 @top Wanderlust User's Manual
93
94 @flushright
95 Yuuichi Teranishi
96 Fujikazu Okunishi
97 Masahiro Murata
98 Kenichi Okada
99 Kaoru Takahashi
100 Bun Mizuhara
101 Masayuki Osada
102 Last Modified@value{Time-stamp:}
103 @end flushright
104
105 This manual is for Wanderlust@value{version}.
106
107 @end ifinfo
108
109 @menu
110 * Introduction::             Read this first.
111 * Start Me Up::              Invoking Wanderlust.
112 * Folders::                  How to specify folders.
113 * Folder::                   Selecting and editing folders.
114 * Summary::                  Reading and refiling messages.
115 * Message::                  Saving and playing MIME multipart entities.
116 * Draft::                    Draft buffer, sending mail and news.
117 * Disconnected Operations::  Off-Line management
118 * Expire and Archive::       Automatic expiration and archiving of messages.
119 * Scoring::                  Score of the messages.
120 * Customization::            Customizing Wanderlust.
121 * Mailing List::             Wanderlust mailing list
122 * Addition::                 Additional Information
123 * Index::                    Key index.
124 @end menu
125
126
127 @c
128 @c  Introduction
129 @c 
130 @node Introduction, Start Me Up, Top, Top
131 @chapter Introduction of Wanderlust
132 @cindex Introduction
133
134 Wanderlust is an mail/news management system on Emacsen.
135 It supports IMAP4rev1(RFC2060), NNTP, POP and local message files.
136
137 The main features of Wanderlust:
138
139 @itemize @minus
140 @item Pure elisp implementation.
141 @item Supports IMAP4rev1, NNTP, POP(POP3/APOP), MH and Maildir format.
142 @item Unified access method to messages based on Mew-like Folder Specification.
143 @item Mew-like Key-bind and mark handling.
144 @item Manages unread messages.
145 @item Interactive thread display.
146 @item Folder Mode shows the list of subscribed folders.
147 @item Message Cache, Disconnected Operation (Read Only).
148 @item MH-like FCC. (FCC: %Backup and FCC: $Backup is allowed).
149 @item MIME compliant (by SEMI or tm).
150 @item Transmission of news and mail are unified by Message transmitting draft.
151 @item Graphical list of folders (XEmacs).
152 @item View a part of message without retrieving the whole message (IMAP4).
153 @item Server-side message look up (IMAP4). Multi-byte characters are allowed.
154 @item Virtual Folders.
155 @item Supports compressed folder using common archiving utilities.
156 @item Old articles in folders are automatically removed/archived (Expiration).
157 @item Automatic re-file.
158 @item Template function makes it convenient to send fixed form messages.
159 @end itemize
160
161 Wanderlust is supposed to run on Mules based on Emacs 19.28, 19.34, 
162 Emacs 20.2 or later, XEmacs 20.4 or later, Meadow 1.00 or later(on MS Windows),
163 Mule for Windows v1.22 (on MS Windows), NTEmacs(Windows NT).
164 PMMule on OS/2 is also supported. Wanderlust runs even on Nemacs 3.3.2
165 based on Emacs 18.55, 18.59 (with limited functionality).
166
167 IMAP4 connectivity with UW imapd 4.2, 4.3, 4.4, 4.5, 4.6, 4.7, 4.7a,
168 Cyrus imapd 1.4, Cyrus imapd 1.5.19, AIR MAIL(AIRCimapd release 2.00)
169 and ExpressMail are confirmed to work with Wanderlust.
170
171 @c
172 @c  Start Me Up
173 @c 
174 @node Start Me Up, Folders, Introduction, Top
175 @chapter Start up Wanderlust
176 @cindex Start up
177
178
179 The necessary procedure for starting Wanderlust is explained in steps here.
180
181 (Of course, you need a mail/news readable environment in advance)
182
183 @menu
184 * MIME Modules::      Installing the MIME modules.
185 * Download::          Download and extract the packages.
186 * Install::           Byte-compile and install.
187 * Minimal Settings::  @file{.emacs} setup.
188 * Mail Addresses::    Address book definition.
189 * Folder Definition:: Folder definition.
190 * Start Wanderlust::  Starting Wanderlust
191 @end menu
192
193
194 @node MIME Modules, Download, Start Me Up, Start Me Up
195 @section Installing MIME modules
196 @cindex MIME modules
197 @pindex APEL
198 @pindex FLIM
199 @pindex SEMI
200 @pindex tm
201
202 SEMI or tm must be installed to make Wanderlust work correctly.
203
204 SEMI does not run on Emacs19.28 or earlier
205 @footnote{SEMI runs on Emacs 19.34. @*
206 @samp{http://www.jpl.org/elips/INSTALL-SEMI-ja.html} describes how to.},
207 so you must install tm, the predecessor of SEMI. (tm version 8.7 or later
208 is needed.)
209
210 However, SEMI is recommended because of its wider functionality.
211 Partial download function in IMAP4 is enabled only when SEMI is installed.
212
213 Refer to the documents of each package for detailed installation procedure.
214
215 SEMI and tm can be downloaded from these sites:
216
217 @example
218 SEMI: ftp://ftp.m17n.org/mule/semi/
219 tm:   http://cvs.m17n.org/tomo/comp/emacsen/tm/tm-8/
220 @end example
221
222 You need packages named APEL and FLIM to use SEMI.
223 You can download FLIM and APEL from following URLs.
224
225 @example
226 FLIM:     ftp://ftp.m17n.org/mule/flim/
227 APEL:     ftp://ftp.m17n.org/mule/apel/
228 @end example
229
230 You have to install APEL, FLIM and SEMI in this order.
231 Generally @samp{make install} will do the job.
232 (In XEmacs 21, @samp{make install-package}.)
233
234 Recommended combination of APEL, FLIM and SEMI are:
235
236 @itemize @minus
237 @item APEL 10.2, FLIM 1.12.7 and SEMI 1.13.4
238 @item APEL 10.2, FLIM 1.13.2 and SEMI 1.13.7
239 @end itemize
240
241 Combination of APEL 10.2 and FLIM 1.12.7 makes following error
242 while compiling FLIM 1.12.7.
243
244 @example
245 Please install latest APEL 7.3 or later.
246 @end example
247
248 In this case, please comment out following lines in FLIM-CFG.
249
250 @example
251 (or (fboundp 'write-region-as-binary)
252     (error "Please install latest APEL 7.3 or later."))
253 (or (fboundp 'insert-file-contents-as-binary)
254     (error "Please install latest APEL 7.3 or later."))
255 @end example
256
257 You can also use many other FLIM/SEMI variants. Combination of the
258 latest versions should work.  For example, following combination is
259 confirmed to work.
260
261 @itemize @minus
262 @item APEL 10.2, Chao 1.14.1 and REMI 1.14.1
263 @end itemize
264
265 @c You have to re-install Wanderlust
266 @c if you upgraded APEL, FLIM, SEMI or tm.
267
268 @node Download, Install, MIME Modules, Start Me Up
269 @section Download and Extract the Package
270 @cindex Download
271
272 You can download Wanderlust package from following sites:
273
274 Original site:
275 @example
276 ftp://ftp.gohome.org/wl/
277 @end example
278
279 Mirrored ftp/http sites:
280
281 @example
282 ftp://ftp.jaist.ac.jp/pub/GNU/elisp/ftp.gohome.org/wl/
283 ftp://daidai.kuis.kyoto-u.ac.jp/pub/mirror/ftp.gohome.org/pub/elisp/wl/
284 http://www.jpl.org/elips/
285 http://www.ring.gr.jp/archives/text/elisp/wl/
286 ftp://ftp.ring.gr.jp/pub/text/elisp/wl/
287 ftp://opaopa.org/pub/mirror/elisp/wl/
288 @end example
289
290 Extract the obtained package to your working directory:
291
292 @example
293 % cd ~/work
294 % tar zxvf wl-(@var{version}).tar.gz
295 % cd wl-(@var{version})
296 @end example
297
298 @subsection To use SSL (Secure Socket Layer)
299
300 SSL (Secure Socket Layer) can be used for 
301 SMTP, IMAP, NNTP and POP connections in Wanderlust.
302
303 There are two ways to use SSL. One is to start SSL negotiation just after
304 the connection establishment (generic way). 
305 The other one is to start SSL negotiation by invoking STARTTLS command in
306 the each session.
307
308 To use the formar SSL (generic SSL), you must install @file{ssl.el} in the 
309 @file{utils} directory. OpenSSL command @file{openssl} is also required
310 to use @file{ssl.el}. You must set PATH to the directory that OpenSSL
311 commands are installed.
312
313 To use the latter SSL(STARTTLS), you must install starttls package in
314 addition to above. 
315 You can download starttls package from the following site.
316
317 @example
318 ftp://opaopa.org/pub/elisp/
319 @end example
320
321 @node Install, Minimal Settings, Download, Start Me Up
322 @section Byte-compile and install
323 @cindex Byte-compile
324 @cindex Compile
325 @cindex Install
326 @cindex Makefile
327 @cindex Make
328
329 @subsection Installation
330
331 Edit @code{LISPDIR} and @code{EMACS} in @file{Makefile}.
332 Set the Emacs's command name to @code{EMACS}.
333 Set package installation directory to @code{LISPDIR}.
334 Then, please execute following commands.
335
336 @example
337 % make
338 % make install
339 @end example
340
341 Destination directory is auto-probed if you leave @code{LISPDIR}
342 in @file{Makefile} as is. (That is, leave it as NONE)
343
344 If you are using an Emacs variant which does not merge specified directory
345 to load-path (e.g. Mule 2.3 based on Emacs 19.28), 
346 then you will see the error message:
347
348 @example
349 Cannot open load file: mime-setup
350 @end example
351
352 @noindent
353 In this case, either add destination directories of custom, apel, flim and semi
354 to environmental variable EMACSLOADPATH, or define load-path in @file{WL-CFG}
355 in extracted directory.
356
357 If you want to use BBDB, then the necessary modules are byte-compiled and
358 installed when BBDB directory is added to load-path.
359 @xref{BBDB}.
360
361 @subsection WL-CFG
362
363 Contents of the file @file{WL-CFG} is loaded under installation if a file
364 with that name exists in extracted directory. You can use @file{WL-CFG} to
365 configure load-path to extra packages such as SEMI if needed.
366
367 If you want to specify the install directory of Wanderlust related
368 files, then set following variables in @file{WL-CFG}
369
370 @table @code
371 @item WL_PREFIX
372 A directory to install WL modules.
373 This directory is relative directory from @code{LISPDIR}.
374 WL modules include @file{wl*.el}, @file{wl*.elc} files.
375 @c  Modules under the directory @file{util/} are also installed if 
376 @c it detected as necessary.
377
378 @item ELMO_PREFIX
379 A directory to install ELMO modules.
380 This directory is relative directory from @code{LISPDIR}.
381 ELMO modules include @file{elmo*.el}, @file{elmo*.elc} files.
382 @c  @file{utf7.el}, @file{utf7.elc} are also included in the ELMO.
383 @end table
384   
385 @noindent
386 Default value of @code{WL_PREFIX} and @code{ELMO_PREFIX} are @file{wl}.
387
388 If you want to install ELMO related files under a sub-directory
389 such as "elmo" then add following to @file{WL-CFG}:
390
391 @lisp
392 (setq ELMO_PREFIX "elmo")
393 @end lisp
394
395 @noindent
396 @subsection Install as a XEmacs package
397 @cindex XEmacs package
398 @cindex XEmacs package install
399 @cindex Package, XEmacs
400 @cindex Package install, XEmacs
401 @c @cindex install-package
402
403 It is possible to install Wanderlust as one of packages of XEmacs (21.0
404 or greater). Configuration for autoload and icon-path in local
405 @file{.emacs} files are no longer necessary, if you install Wanderlust
406 as a package.
407
408 Follow the next example to install Wanderlust as an XEmacs package.
409
410 @example
411 % vi Makefile
412 % make package
413 % make install-package
414 @end example
415
416 package directory is auto-probed, if SEMI is installed.
417 (you can also specify it with @code{PACKAGEDIR} in @file{Makefile})
418
419 @subsection Run in place
420
421 If wl and elmo directories are defined in load-path, then byte-compilation
422 and installation are not necessary to start Wanderlust. For example,
423 if package is extracted in @file{~/work}, Wanderlust can be invoked with
424 following setting in @file{.emacs}.
425
426 @lisp
427 (add-to-list 'load-path "~/work/wl-(@var{version})")
428 (add-to-list 'load-path "~/work/wl-(@var{version})/elmo")
429 @end lisp
430
431 @node Minimal Settings, Mail Addresses, Install, Start Me Up
432 @section Set up .emacs
433 @cindex Minimal Settings
434 @cindex Settings
435 @cindex Configuration
436 @cindex .emacs
437 @cindex .wl
438
439 The Wanderlust package contains two module groups.
440
441 @table @samp
442 @item ELMO (elmo-*.el)
443 These modules show everything as folders. This is the back-end for Wanderlust.
444 @item WL (wl-*.el)
445 These modules controls the behavior of main body of Wanderlust.
446 They are also the front-end for ELMO.
447 @end table
448
449 You can customize the  behavior of Wanderlust by changing the value
450 of environmental variables which begins with @code{elmo-*} and @code{wl-*}.
451
452 The minimal requirement for settings is as the following.
453
454 @lisp
455 ;; The setting to use SEMI/tm
456 (load "mime-setup")
457
458 ;; autoload configuration
459 ;; (These are not required if Wanderlust is installed as XEmacs package)
460 (autoload 'wl "wl" "Wanderlust" t)
461 (autoload 'wl-draft "wl-draft" "Write draft with Wanderlust." t)
462
463 ;; Directory where icons are placed (XEmacs Only). Default value is nil.
464 ;; (This is not required if Wanderlust is installed as XEmacs package)
465 (setq wl-icon-dir "~/work/wl/etc")
466
467 ;; SMTP server for mail posting. Default: "localhost"
468 (setq wl-smtp-posting-server "your.smtp.server.com")
469 ;; NNTP server for news posting. Default: "localhost"
470 (setq wl-nntp-posting-server "your.nntp.server.com")
471 @end lisp
472
473 @file{~/.wl} is automatically loaded when Wanderlust starts up (if such a
474 file exists). So it is convenient to gather Wanderlust specific settings
475 in @file{~/.wl}. Settings for "face" must be written in @file{~/.wl},
476 because you can't write them in @file{.emacs}
477 (if you write it to @file{.emacs}, you'll get an error).
478 @xref{Highlights}.
479
480 All above described settings except (load "mime-setup") can be written in
481 @file{~/.wl}).
482
483 @subsection mail-user-agent
484 @cindex Default Mailer
485 @cindex Mailer, Default
486 @vindex mail-user-agent
487 @findex compose-mail
488
489 If you write following setting in you @file{.emacs}, you can
490 start Wanderlust draft mode by typing @kbd{C-x m} (@code{compose-mail}). 
491 This means it enables you to run Wanderlust as a default mail composer
492  of Emacs.
493
494 It is effective only when your Emacs can define @code{mail-user-agent}.
495 @c @xref{Mail Methods, , ,emacs}.
496
497 @lisp
498 (autoload 'wl-user-agent-compose "wl-draft" nil t)
499 (if (boundp 'mail-user-agent)
500     (setq mail-user-agent 'wl-user-agent))
501 (if (fboundp 'define-mail-user-agent)
502     (define-mail-user-agent
503       'wl-user-agent
504       'wl-user-agent-compose
505       'wl-draft-send
506       'wl-draft-kill
507       'mail-send-hook))
508 @end lisp
509
510
511 @node Mail Addresses, Folder Definition, Minimal Settings, Start Me Up
512 @section Address book
513 @cindex Address book Definition
514 @cindex .addresses
515 @cindex Alias, Address
516
517 The file @file{~/.addresses} is a simple address book for Wanderlust.
518 Make address file @file{~/.addresses}, and edit to suit your requirement.
519
520 The data written in @file{~/.addresses} are used for address completion
521 under draft editing mode. Furthermore, they are used when showing names
522 in summary display mode. You can safely skip this section, if you don't
523 want to customize address completion and summary display.
524 It is possible to add/change/remove addresses from @file{~/.addresses} in
525 summary buffer after Wanderlust is invoked. @refill
526
527 The format is very simple. Like this. @refill
528
529 @example
530 #
531 # @r{Lines begin with @samp{#} are comment.}
532 # @r{Empty lines are ignored}
533 #
534 # @r{Format of each line:}
535 # @r{email-address  ``nickname'' ``realname''}
536 #
537 teranisi@@gohome.org            "Yuuichi"      "Yuuichi Teranishi"
538 foo@@bar.gohome.org             "Mr. Foo"    "John Foo"
539 bar@@foo.gohome.org             "Mr. Bar"    "Michael Bar"
540 @end example
541
542 @noindent
543 One line defines one persons description.
544
545 Actually, in default setup, "nickname" is used in summary-mode and "real name"
546 is used in draft preparation mode. This behavior is better understood if you
547 try it and confirmed the function first. You can write and try a small
548 definition, so you will know the idea of the address book before writing a big
549 one.
550
551 And, if MH alias file is specified in variable @code{wl-alias-file},
552 it is used as an address information in the draft preparation mode.
553
554 @node Folder Definition, Start Wanderlust, Mail Addresses, Start Me Up
555 @section Folder Definition
556 @cindex Folder Definition
557 @cindex .folders
558
559 Define the folders you want to subscribe in file @file{~/.folders}.
560 The contents written in @file{~/.folders} become the folders which
561 you subscribe to as it is.
562
563 You can skip this section because it is possible to add/edit the
564 subscribe folders from the buffer for list of folders.
565
566 Format for @file{~/.folders} is very simple. Here is an example:
567
568 @example
569 #
570 # @r{Lines begin with @samp{#} are comment.}
571 # @r{Empty lines are ignored}
572 #
573 # @r{folder name}  "@r{folder nickname}"
574 # @r{(nicknames are not necessary)}
575 #
576 %inbox  "Inbox"
577 +trash  "Trash"
578 +draft  "Drafts"
579 %#mh/Backup@@my.imap.server.com "Sent"
580 # Folder Group
581 Emacsen@{
582     %#mh/spool/wl            "Wanderlust ML"
583     %#mh/spool/elips         "ELIPS ML"
584     %#mh/spool/tm-ja         "tm Japanese ML"
585     %#mh/spool/xemacs-beta   "XEmacs beta"
586     -fj.news.reader.gnus@@other.nntp.server.com "Gnus Net news"
587     *-fj.editor.xemacs,-fj.editor.mule,-fj.editor.emacs "fj's Emacsen"
588 @}
589 #
590 # @r{If folder name ends with @samp{/}, that means an `access group',}
591 # @r{all subfolders automatically included in one folder group.}
592 #
593 %#mh/expire@@localhost /
594 # @r{All MH folders are included in one folder group.}
595 + /
596 @end example
597
598 Each line contains one folder you want to read. The definition of folders
599 will be explained in detail in the next section.
600
601 The part surrounded by @samp{@var{group name}@{} and @samp{@}} will become one folder group.
602 One folder group is treated as a directory which can bed opened and closed in
603 folder mode. It is convenient for collecting some folders and putting them
604 in order.
605
606 Please note that @samp{@var{group name}@{} and @samp{@}} occupies one
607 line and you have to write it that way (It is because the parser sucks).
608
609 There are two types of groups. One is like @samp{Emacsen} from above
610 example which the user chooses his favorite folders as a group.
611
612 The other one is @dfn{access group} like @samp{+} from above example.
613 It makes all the sub-folders in a folder to a group.
614 (It differs from the type of the folder. For example, @samp{+} makes entire
615  MH sub-directories to one group)
616
617 This behavior is better understood if you try it and confirmed the function
618 first. You can write and try a small folder definition, so you will know the
619 idea of the folder function before writing the real one.
620
621 @node Start Wanderlust,  , Folder Definition, Start Me Up
622 @section Start Wanderlust
623 @cindex Start Wanderlust
624
625 If installation and configuration worked well, you can invoke Wanderlust by
626 typing following command in Emacs.
627
628 @example
629 M-x wl
630 @end example
631
632 @noindent
633 After initialization, Folder Mode which shows the list of folders will appear.
634 That means the folders you defined in the @file{~/.folders} are listed
635 If you start Wanderlust with prefix argument like @kbd{C-u M-x wl}, you
636 can skip folder checking.
637
638 @c
639 @c  Folders
640 @c
641 @node Folders, Folder, Start Me Up, Top
642 @chapter Wanderlust's folders 
643 @cindex Folder Type
644
645 This chapter describes the folder types which Wanderlust is able to handle.
646
647 Wanderlust uses ELMO as it's interface, so every folder types supported
648 by ELMO is usable in Wanderlust.
649
650 As of version @value{version}, 10 types of folders are predefined. These are
651 IMAP, NNTP, LocalDir(MH), News Spool, POP, Archive, Multi, Filter, Pipe
652 and Internal folder types.
653
654 @menu
655 * IMAP Folder::              @samp{%} -- IMAP folder
656 * NNTP Folder::              @samp{-} -- NNTP folder
657 * MH Folder::                @samp{+} -- MH folder
658 * Maildir Folder::           @samp{.} -- Maildir folder
659 * News Spool Folder::        @samp{=} -- News spool folder
660 * Archive Folder::           @samp{$} -- Archive folder
661 * POP Folder::               @samp{&} -- POP folder
662 * Multi Folder::             @samp{*} -- Multi folder
663 * Filter Folder::            @samp{/} -- Filter folder
664 * Pipe Folder::              @samp{|} -- Pipe folder
665 * Internal Folder::          @samp{'} -- Internal folder
666 @end menu
667
668
669 @node IMAP Folder, NNTP Folder, Folders, Folders
670 @section IMAP Folder
671 @cindex IMAP Folder
672 @cindex @samp{%}
673 @cindex RFC 2060
674 @cindex IMAP4rev1
675
676 A folder to access e-mails via IMAP4rev1 protocol (RFC 2060).
677
678 @example
679 Format: '%' 'IMAP mailbox'[':' 'username' ['/' 'authenticate-type']]['@@' 'hostname'][':' 'port']['!']
680
681 You can specify
682 "auth" (encoded password transmission), "cram-md5" (cram-md5 authentication)
683 and "login" (plain password transmission) as authenticate-type.
684 (To use cram-md5 authentication, you must install utils/sasl package.)
685
686 default:
687
688 username  -> The value of @code{elmo-default-imap4-user}.
689              Initial setting is `USER' environment variable or
690              `LOGNAME' environment variable or return value of
691              (user-login-name).
692 authenticate-type -> The value of @code{elmo-default-imap4-authenticate-type}.
693              Initial setting is "auth".
694 hostname  -> The value of @code{elmo-default-imap4-server}.
695              Initial setting is "localhost".
696 port -> The value of @code{elmo-default-imap4-port}.
697              Initial setting is 143.
698
699 You can omit the hostname from folder names if you set
700 @code{elmo-default-imap4-server} as your main IMAP server.
701 For example, you can specify a folder as @samp{foo%imap@@geteway} even
702 if you have to go through a firewall.
703
704 SSL (Secure Socket Layer) connection will be used if a folder name
705 ends with '!'. Or, if the value of @code{elmo-default-imap4-ssl} is non-nil,
706 SSL will be the default connection.
707 If a folder name ends with '!!', STARTTLS connection will be established.
708 if the value of @code{elmo-default-imap4-ssl} is 'starttls,
709 STARTTLS will be the default connection.
710
711 If you specify "auth" or "cram-md5" as authentication method, the password
712 is sent in encoded form. But, if your server is unable to receive an encoded
713 password, authentication will fall back to "login" (that is, sending password
714 in raw format) after confirmation to user. If @code{elmo-imap4-force-login}
715 is non-nil, authentication will fall back to "login" without confirmation
716 (default value is nil).
717
718 Example: %inbox     -> IMAP mailbox "inbox"
719          %#mh/inbox -> IMAP mailbox "#mh/inbox"
720
721          %inbox:hoge -> IMAP mailbox "inbox" of user "hoge".
722          %inbox:hoge/login@@server1
723                      -> server1's IMAP mailbox "inbox"
724                         of user "hoge", with plain password authentication
725                         ("login").
726 @end example
727
728 @subsection International mailbox names (Modified UTF7)
729
730 You can use international mailbox names in 'IMAP mailbox' part, if you
731 are using Emacs which can treat unicode and
732 @code{elmo-imap4-use-modified-utf7} is set to non-nil value (default
733 value is nil).
734
735 Currently, following Emacsen can treat unicode.
736
737 @itemize @bullet
738 @item Emacs 20.3 or later + Mule-UCS
739
740 If you installed Mule-UCS package, Emacs can treat unicode.
741 You can obtain Mule-UCS package from following URL.
742
743 @example
744 ftp://ftp.m17n.org/pub/mule/Mule-UCS/
745 @end example
746
747 @item XEmacs 21.2.13 or later + ucs-conv package
748
749 By default, XEmacs 21 cannot treat unicodes, but if you installed
750 ucs-conv package, it can.
751 You can obtain ucs-conv package from following anonymous CVS.
752
753 @example
754 :pserver:anonymous@@cvs.m17n.org:/cvs/root
755 Password: NULL (Just enter return key)
756 @end example
757
758 You also need utf7 conversion programs, u7tou8 and u8tou7 to use international
759 mailbox name in the current XEmacs. 
760 These programs are included in the UTF7 package which can be obtained 
761 from following URL.
762
763 @example
764 ftp://ftp.ifcss.org/pub/software/unix/convert/utf7.tar.gz
765 @end example
766 @end itemize
767
768 @node NNTP Folder, MH Folder, IMAP Folder, Folders
769 @section NNTP Folder
770 @cindex NNTP Folder
771 @cindex @samp{-}
772
773 A folder to access USENET news via NNTP protocol (RFC 977).
774 One newsgroup is treated as a folder.
775
776 @example
777 Format: '-' 'newsgroup'[[':' 'username']['@@' 'hostname'][':' 'port']]['!']
778
779 default:
780 hostname  -> The value of @code{elmo-default-nntp-server}.
781              Initial setting is "localhost".
782 username  -> The value of @code{elmo-default-nntp-user}. 
783              Initial setting is nil.
784 port      -> The value of @code{elmo-default-nntp-port}.
785              Initial setting is 119.
786
787 AUTHINFO is used as authentication method if the username is non-nil.
788 SSL will be default method if @code{elmo-default-nntp-ssl} is non-nil even
789 if the folder name doesn't end with '!'
790 If a folder name ends with '!!', STARTTLS connection will be established.
791 if the value of @code{elmo-default-nntp-ssl} is 'starttls,
792 STARTTLS will be the default connection.
793
794 Example: -fj.rec.tv            -> Newsgroup `fj.rec.tv'.
795          -fj.rec.tv@@newsserver -> Newsgroup `fj.rec.tv' on newsserver.
796 @end example
797
798 @node MH Folder, Maildir Folder, NNTP Folder, Folders
799 @section MH Folder
800 @cindex MH Folder
801 @cindex @samp{+}
802 @pindex MH
803
804 A folder to access MH format mail (1 file is 1 mail).
805
806 @example
807 Format: '+' 'directory-name'
808
809 Normally, directory paths are relative to variable
810 @code{elmo-localdir-folder-path} (default is @file{~/Mail}), but if it
811 starts with @samp{/} or @samp{~}, then it is treated as an absolute path
812 (this is also true for drive-letters).
813
814 Message number is used for the name of the message file.
815
816 Example: +inbox         -> "~/Mail/inbox"
817          +from/teranisi -> "~/Mail/from/teranisi"
818          +~/test        -> "~/test"
819 @end example
820
821 @node Maildir Folder, News Spool Folder, MH Folder, Folders
822 @section Maildir Folder
823 @cindex Maildir Folder
824 @cindex @samp{.}
825 @pindex Maildir
826
827 A folder to access to Maildir format (1 file is 1 mail).
828
829 @example
830 Format: '.' 'directory-name'
831
832 Normally, directory paths are relative to variable
833 @code{elmo-maildir-folder-path} (default is @file{~/Maildir}), but if it
834 starts with @samp{/} or @samp{~}, then it is treated as an absolute path
835 (this is also true for drive-letters).
836
837 Maildir contains @file{cur}, @file{new} and @file{tmp} subdirectories.
838 Messages are contained in the @file{cur} directory.  All
839 message files in the @file{new} directory are moved to @file{cur}
840 directory when you access to the folder. All message files contained in
841 the @file{tmp} directory and not accessed for 36 hours are deleted.
842
843 These behaviors are defined the @samp{http://cr.yp.to/proto/maildir.html}.
844
845 Example: .              -> "~/Maildir"
846          .inbox         -> "~/Maildir/inbox"
847          .from/teranisi -> "~/Maildir/from/teranisi"
848          .~/test        -> "~/test"
849 @end example
850
851 @node News Spool Folder, Archive Folder, Maildir Folder, Folders
852 @section News Spool Folder
853 @cindex News spool Folder
854 @cindex @samp{=}
855 @pindex gnspool
856
857 This folder handles locally saved news articles which are proposed by Mew/IM.
858 You can also read articles directly from a spool-file which is retrieved
859 by an utility like gnspool.
860
861 @example
862 Format: '=' 'directory-name'
863
864 directory-name is sub-directory to the directory defined by variable
865 @code{elmo-localnews-folder-path} (default is "~/News")
866 You can use @samp{.} as directory delimiter as well as @samp{/}.
867
868 Example: =fj/os/os2         -> "~/News/fj/os/os2"
869          =fj.os.bsd.freebsd -> "~/News/fj/os/bsd/freebsd"
870 @end example
871
872 @node Archive Folder, POP Folder, News Spool Folder, Folders
873 @section Archive Folder
874 @cindex Archive Folder
875 @cindex @samp{$}
876 @c @pindex ange-ftp
877
878 This method can handle archive files, which are compressed by utilities
879 such as Info-ZIP or LHA, as one folder.
880
881 @example
882 Format: '$' 'path-name' [';' archiver-type ';' prefix]
883
884 `path-name' is the relative path from @code{elmo-archive-folder-path}
885 (initial setting is @file{~/Mail}).
886 If path-name begins with @samp{/} or @samp{~} or `drive-letter of DOS',
887 path-name is treated as absolute path.
888 ange-ftp format is also permitted under the environment of ange-ftp, efs.
889
890 The actual file name of the archive folder is 
891 @code{elmo-archive-basename}(Initial setting is "elmo-archive")
892 under the path-name. If a file named path-name exists, it is treated as
893 folder. The suffix is automatically decided for archiver-type.
894
895 If `archiver-type' is omitted, @code{elmo-archive-default-type}
896 (Initial setting is 'zip) is referred.
897
898 `prefix' specifies the internal directory structure of the archive.
899 For example, if the ML server is fml, @file{msend.tar.gz} has a structure like 
900 @file{spool/1}, so you have to specify "spool" as `prefix'.
901
902 Example: $teranisi         -> "~/Mail/teranisi/elmo-archive.zip"
903          $bsd/freebsd;lha  -> "~/Mail/bsd/freebsd/elmo-archive.lzh"
904          $/foo@@server:~/bar;zoo     -> "~/bar/elmo-archive.zoo" on ftp server
905          $d:/msend.tar.gz;tgz;spool -> "d:/msend.tar.gz"
906 @end example
907
908 @menu
909 * Archiver::     Archivers supported
910 * Archive Tips:: TIPS
911 * Archive Vars:: Customization
912 @end menu
913
914
915 @node Archiver, Archive Tips, Archive Folder, Archive Folder
916 @subsection Supported Archives
917 @cindex Archiver
918 @pindex LHA
919 @pindex Info-ZIP
920 @pindex UNZIP
921 @pindex ZOO
922 @pindex RAR
923 @pindex TAR
924 @pindex GNU TAR
925
926 By default, following archives are supported.
927
928 @example
929         LHA, Info-ZIP/UNZIP, ZOO, RAR  ;; full-access
930         GNU TAR('tgz, 'tar)            ;; read-only
931 @end example
932
933 If your archiver can include multiple files in one archive, you have a
934 possibility use it as an archiver of Wanderlust (ARJ/UNARJ, ARC is one
935 of the candidate. TAR is supported read-only because it cannot delete
936 file in the archive ('mv)).
937
938 gzip, bzip, bzip2 cannot be used as an archiver of Wanderlust because
939 they cannot include multiple files. Archivers that cannot extract files
940 to standard output are also not supported.
941
942 @subsection OS specific information about archiver.
943
944 Behaviors of the following archivers are confirmed by further experiences.
945 (@samp{*} mark means recommended archiver).
946
947 @example
948 [OS/2]  Warp4.0J(w/o VoiceType)+Fx00505/emx0.9c(fix04)/PMMule,EmacsPM
949          LHA  OS/2 version Rel.2.06b    Feb 18, 1998
950         *UnZip 5.32 of 3 November 1997, by Info-ZIP.
951         *Zip 2.2 (November 3rd 1997).
952          Zoo archiver, zoo 2.1 $@asis{}Date: 91/07/09 02:10:34 $
953          GNU tar version 1.10 - AK 2.58 (DBCS/SJIS) 981216(homy) version
954          gzip 1.2.4 (18 Aug 93) + bzip2 patch(by Iida-san)
955
956 [UN|X]  FreeBSD 2.2.7-RELEASE, Linux 2.0.30, Solaris2.6, HP-UX 9.07
957          LHa for UNIX  V 1.14c
958          UnZip 5.32 of 3 November 1997
959          Zip 2.2 (November 3rd 1997)
960          GNU tar 1.12 (1.11.x is no good)
961          gzip 1.2.4 (18 Aug 93)
962
963 [Win32] Win.98/Meadow
964          Lha32 version 1.28
965          Zip 2.2
966          UnZip 5.40
967          GNU tar 1.11.8 + 1.5(WIN32)
968          GZIP 1.2.4
969          RAR 2.06
970
971 * Caution about LHA
972
973 If you are an OS/2 user, Peter Fitzsimmons's LH/2 is not supported.
974 Hiramatsu version of LHA is only supported.
975 In Win32, LHa32 is only supported (DOS version is no good).
976
977 * Caution about GNU tar
978
979 You have to take care about GNU tar's version because
980 many version has problem on deleting file from archive.
981
982 Please test --delete -f options work. Otherwise, your archive will be
983 destroyed. No problem is reported on above versions of GNU tar.
984 @end example
985
986
987 @node Archive Tips, Archive Vars, Archiver, Archive Folder
988 @subsection TIPS
989 @cindex Archive Tips
990
991 For comfortable migration, usage of wl-summary-archive() (@pxref{Archive}) or 
992 Expire (@pxref{Expire}) is recommended.
993 To treat archive folders created by expiration, 
994 you must set non-nil value to @code{elmo-archive-treat-file}.
995
996 On the OS/2, there is a great difference between Mule2.3(19.28) and Emacs20.2
997 in processing speed. For comfortable use, Emacs20 is recommended.
998 (If re-search's performance is the problem, 19.3x or later may be okay.)
999
1000 If many files are included in one archive,
1001 it takes long time to access to the archive folder because 
1002 archiver starting overhead is increased (especially LHA).
1003 150-200 messages in one archive is recommended.
1004
1005 Of course, following is possible @t{:-)} 
1006 (meanings of these variables are described later.)
1007 @lisp
1008 (setq wl-fcc "$backup")
1009 (setq wl-trash-folder "$trash;lha")
1010 @end lisp
1011
1012 @noindent
1013 @node Archive Vars,  , Archive Tips, Archive Folder
1014 @subsection Variables About Archive Folder
1015 @cindex Archive variables
1016
1017 @table @code
1018 @item elmo-archive-default-type
1019 @vindex elmo-archive-default-type
1020 The initial setting is 'zip.
1021 Set archiver type by symbol. 
1022
1023 @item elmo-archive-@var{type}-method-alist
1024 @vindex elmo-archive-TYPE-method-alist
1025 Define archiver @var{type}'s methods.
1026 (@var{type} is @samp{lha}, @samp{zip}, @samp{zoo}, @samp{tgz} etc)
1027 Each element of the alist is following.
1028
1029 @example
1030         (action . (exec-name options))   ;; external program and its option.
1031         (action . function)              ;; function
1032 @end example
1033
1034 Currently available actions are following.
1035
1036 @example
1037         'ls, 'cat ('cat-headers)        ;; Minimal setting(read-only)
1038         'mv ('mv-pipe), 'rm ('rm-pipe)  ;; full-access (with above)
1039         'cp ('cp-pipe)                  ;;
1040 @end example
1041
1042 @noindent
1043 In above actions, 
1044 actions enclosed with braces are optional (They are used for better
1045 performance).
1046
1047 @item elmo-archive-suffix-alist
1048 @vindex elmo-archive-suffix-alist
1049 An alist of archiver-type (symbol) and suffix.
1050
1051 @item elmo-archive-file-regexp-alist
1052 @vindex elmo-archive-file-regexp-alist
1053 An alist of a regexp to get file number from list output of archiver
1054 and archiver-type (symbol).
1055
1056 @item elmo-archive-method-list
1057 @vindex elmo-archive-method-list
1058 A list of elmo-archive-@var{type}-method-alist
1059 (@var{type} is a symbol of archiver-type).
1060
1061 @item elmo-archive-lha-dos-compatible
1062 @vindex elmo-archive-lha-dos-compatible
1063 The initial setting is t on OS/2 and Win32.
1064 If non-nil, LHA is DOS (Mr. Yoshizaki original) compatible.
1065
1066 @item elmo-archive-cmdstr-max-length
1067 @vindex elmo-archive-cmdstr-max-length
1068 The initial setting is 8000.
1069
1070 Max length of command line argument for external archiver program.
1071 Emacs does not have a limit of command line byte length, but some OS
1072 (e.x OS/2) have. It depends on the OS. Archive folder is affected by
1073 this limit because it calls external archiver program directly (not
1074 called via shell).  For example, you cannot delete messages if archiver
1075 program must receive larger bytes of arguments to delete.  OS/2 have a
1076 command line argument limit of 8190 bytes, so we defined default as 8000
1077 with some margin.
1078
1079 However, you don't have an influence of command line argument limit
1080 if the archiver has `actions' to receive target file information from
1081 standard input (rm-pipe, mv-pipe, cat-headers action).
1082 @end table
1083
1084 @node POP Folder, Multi Folder, Archive Folder, Folders
1085 @section POP Folder
1086 @cindex POP Folder
1087 @cindex @samp{&}
1088 @cindex RFC 1939
1089 @cindex POP3
1090 @cindex APOP
1091
1092 A folder to access e-mails via POP3 protocol (RFC 1939).
1093
1094 @example
1095 Format: '&' ['username'][['/' 'authenticate-type']['@@' 'hostname'][':' 'port']]['!']
1096
1097 You can specify
1098 "user"  (plain password transmission) or "apop"  (APOP authentication)
1099 as authenticate-type.
1100
1101 default:
1102 username   -> The value of @code{elmo-default-pop3-user}.
1103               Initial setting is `USER' environment variable or
1104              `LOGNAME' environment variable or return value of
1105              (user-login-name).
1106 authenticate-type -> The value of @code{elmo-default-pop3-authenticate-type}.
1107               Initial setting is "user".
1108 hostname   -> The value of @code{elmo-default-pop3-server}.
1109               Initial setting is "localhost".
1110 port       -> The value of @code{elmo-pop3-default-port}.
1111               Initial setting is 110.
1112
1113 Example: &hoge@@localhost -> access to localhost as user "hoge".
1114          &hoge@@popserver:109 -> access to the server "popserver" on port 109
1115                                  as user "hoge".
1116 @end example
1117
1118 To use apop as an authenticate-type, @file{md5.el} is needed
1119 (XEmacs doesn't need @file{md5.el}).
1120 @file{md5.el} is included in @file{utils/sasl/lisp/} or Emacs/W3 package
1121
1122 @example
1123 http://www.cs.indiana.edu/elisp/w3/docs.html
1124 @end example
1125
1126 or LCD archive (GPL2).
1127
1128 If the last character of the folder name is '!', Wanderlust connects to
1129 the POP server via SSL (Secure Socket Layer).  If you set non-nil
1130 value to @code{elmo-default-pop-ssl}, you don't have to put '!' in the
1131 end of the folder name to use SSL. 
1132 If a folder name ends with '!!', STARTTLS connection will be established.
1133 if the value of @code{elmo-default-pop-ssl} is 'starttls,
1134 STARTTLS will be the default connection.
1135
1136 @node Multi Folder, Filter Folder, POP Folder, Folders
1137 @section Multi Folder
1138 @cindex Multi Folder
1139 @cindex @samp{*}
1140 @cindex Folder, Multiple
1141 @cindex Folder, Marge
1142
1143 A folder to access to a folder which collects messages from
1144 multiple folders virtually.
1145
1146 @example
1147 Format: '*' 'folder' [',' 'folder'] ... [',' 'folder']
1148
1149 After '*' character, specify multiple folders you want to collect 
1150 separated by ',' like folder1,folder2,@dots{},folderN.
1151
1152 Example:
1153   *-fj.editor.xemacs,-fj.editor.mule,-fj.editor.emacs
1154   -> -fj.editor.xemacs, -fj.editor.mule and -fj.editor.emacs are
1155      treated as one folder.
1156
1157   *+inbox,-fj.rec.tv,%inbox
1158   -> +inbox, -fj.rec.tv and %inbox are treated as one folder.
1159
1160 @end example
1161
1162
1163 @node Filter Folder, Pipe Folder, Multi Folder, Folders
1164 @section Filter Folder
1165 @cindex Filter Folder
1166 @cindex @samp{/}
1167 @cindex Folder, Filtering
1168 @cindex Folder, Virtual
1169
1170 A folder to access to a folder which collects all messages that 
1171 satisfy a condition virtually.
1172
1173 @example
1174 Format: '/' 'condition' '/' 'target-folder'
1175
1176 In the 'condition' part, you can specify following.
1177
1178 1. Partial filter: "first:NUMBER", "last:NUMBER"
1179
1180 first: 'NUMBER' messages are picked from top of folder.
1181 last:  'NUMBER' messages are picked from bottom of folder.
1182
1183 Example:
1184   /last:10/-fj.os.linux -> Latest 10 messages from -fj.os.linux are picked.
1185   /first:20/%inbox      -> First 20 messages from %inbox are picked.
1186
1187 2. Date filter: "since:DATE" "before:DATE"
1188
1189 since: only messages arrived since 'DATE' are picked.
1190 before: only messages arrived before 'DATE' are picked.
1191
1192 You can specify following as 'DATE'.
1193
1194 yesterday ->  a day before today.
1195 lastweek  ->  same day of last week.
1196 lastmonth ->  same day of last month.
1197 lastyear  ->  same day of last year.
1198 'NUMBER'daysago -> 'NUMBER' days ago. (e.x. '3daysago')
1199 'DAY'-'MONTH'-'YEAR' -> specify date directly (ex. 1-Nov-1998)
1200
1201 Example:
1202   /since:3daysago/+inbox -> messages arrived since 3 days ago in +inbox
1203                             are picked.
1204   /before:yesterday/+inbox -> messages arrived before yesterday in +inbox
1205                             are picked. 
1206
1207 3. Field filter: "FIELD=VALUE"
1208
1209 All messages that have FIELD and its value is VALUE are picked.
1210 'FIELD' and 'VALUE' are case insensitive.
1211
1212 Example:
1213   /from=teranisi/+inbox -> In +inbox, messages which have From: field
1214                            and its value includes "teranisi" string are picked.
1215   /body=foo/%inbox      -> In %inbox, messages which have "foo" text
1216                            are picked.
1217
1218 If you can split conditions by character "|", it is considered as OR condition.
1219 /tocc=xxxx/ is an abbreviation of /to=xxxx|cc=xxxx/.
1220
1221 Example:
1222
1223   /from=teranisi|to=teranisi/+inbox
1224                         -> In +inbox, messages are picked if
1225                            the message's To: field includes
1226                            "teranisi" or From: field includes "teranisi".
1227   /tocc=teranisi/+inbox -> In +inbox, messages are picked if
1228                            the message's To: field or Cc: field includes
1229                           "teranisi".
1230
1231 Advanced example:
1232
1233   %inbox,/from=teranisi/%inbox@@server
1234          -> Messages in %inbox or
1235             message is in the %inbox@@server folder and it's From field
1236             includes "teranisi" are collected.
1237
1238   /last:100//to=teranisi/*+inbox,%inbox
1239          -> Latest 100 messages which is in the +inbox or %inbox folder
1240             and To: field matches "teranisi".
1241
1242   /from=hogehoge//last:20//tocc=teranisi/%#mh/inbox@@localhost
1243          -> Pick messages which have From: field and it includes "hogehoge"
1244             from latest 20 messages in the %#mh/inbox@@localhost
1245             and To: or Cc: field includes "teranisi".
1246
1247 ;;; --- Limit of implementation ---
1248 ;;; In the current implementation, NNTP folder does not treat date filter and
1249 ;;; field filter.
1250 ;;; In IMAP4 folder, field filter only supports fields which can be 
1251 ;;; passed directly to rfc2060's search command.
1252 ;;; (i.e. to,cc,from,subject and body)
1253 ;;; Localdir folder treats arbitrary field name.
1254 @end example
1255
1256 @node Pipe Folder, Internal Folder, Filter Folder, Folders
1257 @section Pipe Folder
1258 @cindex Pipe Folder
1259 @cindex @samp{|}
1260 @cindex Get Message
1261 @cindex Download Message
1262 @cindex Incorporate Message
1263
1264 In the pipe folder, messages are automatically transferred from the source
1265 folder to destination folder.
1266
1267 @example
1268 Format: '|' source-folder '|' destination-folder
1269
1270 When you access to the pipe folder, messages are automatically transferred
1271 from source-folder to destination-folder.
1272 It is convenient if you want to download messages to local disk via POP.
1273 For example, if you specify following
1274
1275 |&username@@popserver|+inbox
1276
1277 and access to it, messages are downloaded automatically from
1278 &username@@popserver to +inbox.
1279
1280 Example: %inbox|%myinbox   -> Download %inbox to %myinbox.
1281          *&user@@popserver1,&user@@popserver2|+inbox
1282          -> Download from &user@@popserver1 and &user@@popserver2 to +inbox.
1283 @end example
1284
1285 After messages are moved, a hook @code{elmo-pipe-drained-hook} is called.
1286
1287 @node Internal Folder,  , Pipe Folder, Folders
1288 @section Internal folder
1289 @cindex Internal Folder
1290 @cindex @samp{'}
1291 @cindex Folder, @samp{$} mark
1292
1293 A folder to access to internal messages of Wanderlust.
1294
1295 @example
1296 Format: 'mark
1297         or
1298         'cache/00 - 1F
1299
1300 A folder named 'mark is a special virtual folder which collects messages
1301 which have important mark @samp{$}.
1302
1303 You can review important messages at once after you put important marks
1304 on the messages in the different folders.
1305
1306 In this folder, if you delete message, important mark @samp{$} put on
1307 the message is removed.  If you append messages to this folder, the
1308 message will have @samp{$} mark.
1309
1310 You can access to the cached messages fetched via network by accessing
1311 to the folders named 'cache/00 - 1F. 00 - 1F are the name of the
1312 subdirectories of the cache directory (@file{~/.elmo/cache}).
1313 @end example
1314
1315 @c
1316 @c  Folder
1317 @c
1318 @node Folder, Summary, Folders, Top
1319 @chapter Folder mode
1320 @cindex Folder
1321
1322 After you start Wanderlust, folder mode is appeared firstly.
1323 It contains folder list you subscribed.
1324 You can select and edit folders in this mode.
1325
1326 @menu
1327 * Selecting Folder:: Select folder you want to read.
1328 * Folder Manager::   Editing folders.
1329 @end menu
1330
1331
1332 @node Selecting Folder, Folder Manager, Folder, Folder
1333 @section Selecting Folder
1334 @cindex Selecting Folder
1335
1336 @subsection Usage (TIPS)
1337
1338 @subsubsection Check new, unread number
1339
1340 Folder mode looks like this.
1341 (In XEmacs, it looks much nicer @t{;-)})
1342
1343 @example
1344 [-]Desktop:14186/35580/67263
1345    Inbox:3/10/10
1346    Trash:2/7/10
1347    Drafts:0/0/3
1348    Sent:0/9/348
1349    [-]Emacsen:0/34/4837
1350      Wanderlust ML:0/0/558
1351      ELIPS ML:0/0/626
1352      tm:0/0/821
1353      XEmacs Beta:0/29/255
1354      Mew:0/0/998
1355      Mule-Win32:0/0/1491
1356      fj's Emacsen:0/5/88
1357 @end example
1358
1359
1360 Each line means:
1361
1362 @example
1363 FOLDER-NAME:NEW-NUMBER/UNREAD-NUMBER/ALL-NUMBER
1364 @end example
1365
1366 @noindent
1367 @kbd{s} key on the folder line updates these numbers.
1368 It changes its color if it has many new messages.
1369
1370 The whole folder mode is a folder group named @samp{Desktop}.
1371 Folder group open/close by return key.
1372 A operation to a folder group is treated as operations on the
1373 children folders.
1374 For example, when you type @kbd{s} on @samp{[-]Emacsen},
1375 six children folders update its unread number status.
1376
1377 @subsubsection Select Folder
1378
1379 To enter summary mode of the folder, type return (or spece) key on
1380 the folder line.
1381 If the variable @code{wl-stay-folder-window} has non-nil value, 
1382 summary window appears on the right of the folder mode window.
1383
1384 @subsection Key bindings
1385
1386 Folder mode's key binding (related to selecting folders) is following.
1387
1388 @table @kbd
1389 @item @key{SPC}
1390 @itemx @key{RET}
1391 @kindex @key{SPC} (Folder)
1392 @kindex @key{RET} (Folder)
1393 @findex wl-folder-jump-to-current-entity
1394 Enter to the summary mode of the folder at the current cursor point.
1395 If the cursor is on the top of folder group line, 
1396 the folder group is opened or closed.
1397 When the cursor is on the access group and this command is called 
1398 with prefix argument, folder children list is updated to the newest one.
1399 (Children list is updated recursively if the access folder has hierarchical
1400 structure.)
1401 (@code{wl-folder-jump-to-current-entity})
1402
1403 @item M-@key{RET}
1404 @kindex M-@key{RET} (Folder)
1405 @findex wl-folder-update-recursive-current-entity
1406 Folder children list of the access group at the current cursor point
1407 is updated to the newest one.
1408 (Children list is updated recursively if the access folder has hierarchical
1409 structure.)
1410 (@code{wl-folder-update-recursive-current-entity})
1411
1412 @item w
1413 @kindex w (Folder)
1414 @findex wl-summary-write
1415 Create a new draft message.
1416 (@code{wl-summary-write})
1417
1418 @item W
1419 @kindex W (Folder)
1420 @findex wl-summary-write-current-newsgroup
1421 If the current cursor point is on the NNTP folder,
1422 create a new draft message which already has newsgroups field.
1423 (@code{wl-summary-write-current-newsgroup})
1424
1425 @item s
1426 @kindex s (Folder)
1427 @findex wl-folder-check-current-entity
1428 Update new and unread number information of the folder at the current 
1429 cursor point.
1430 (@code{wl-folder-check-current-entity})
1431
1432 @item S
1433 @kindex S (Folder)
1434 @findex wl-folder-sync-current-entity
1435 Update summary information of the folder at the current cursor point.
1436 (@code{wl-folder-sync-current-entity})
1437
1438 @item r s
1439 @kindex r s (Folder)
1440 @findex wl-folder-check-region
1441 Update new and unread number information of the folders in the currently
1442 selected region.
1443 (@code{wl-folder-check-region})
1444
1445 @item r S
1446 @kindex r S (Folder)
1447 @findex wl-folder-sync-region
1448 Update summary information of the folders in the currently selected region.
1449 (@code{wl-folder-sync-region})
1450
1451 @item P
1452 @kindex P (Folder)
1453 @findex wl-folder-prev-unread
1454 Jump cursor to the folder which have unread messages on the upward from
1455 current cursor point.
1456 (@code{wl-folder-prev-unread})
1457
1458 @item N
1459 @kindex N (Folder)
1460 Jump cursor to the folder which have unread messages on the downward
1461 from current cursor point.
1462 (@code{wl-folder-next-unread})
1463
1464 @item p
1465 @kindex p (Folder)
1466 Move cursor to the folder on the previous line.
1467 (@code{wl-folder-prev-entity})
1468
1469 @item n
1470 @kindex n (Folder)
1471 Move cursor to the folder on the next line.
1472 (@code{wl-folder-next-entity})
1473
1474 @item J
1475 @kindex J (Folder)
1476 Jump to the folder specified by the user input.
1477 (@code{wl-folder-jump-folder})
1478
1479 @item I
1480 @kindex I (Folder)
1481 @findex wl-folder-prefetch-current-entity
1482 Prefetch new messages of the folder at the current cursor point by
1483 @code{wl-summary-incorporate}.
1484 If the cursor is on the folder group, it is executed recursively.
1485 (@code{wl-folder-prefetch-current-entity})
1486
1487 @item c
1488 @kindex c (Folder)
1489 @findex wl-folder-mark-as-read-all-current-entity
1490 Mark all unread messages of the folder at the current cursor point as read.
1491 If the cursor is on the folder group, it is executed recursively.
1492 (@code{wl-folder-mark-as-read-all-current-entity})
1493
1494 @item f
1495 @kindex f (Folder)
1496 @findex wl-folder-goto-first-unread-folder
1497 Enter summary mode of the first unread folder.
1498 (@code{wl-folder-goto-first-unread-folder})
1499
1500 @item E
1501 @kindex E (Folder)
1502 @findex wl-folder-empty-trash
1503 Empty trash.
1504 (@code{wl-folder-empty-trash})
1505
1506 @item o
1507 @kindex o (Folder)
1508 @findex wl-folder-open-all-unread-folder
1509 All unread folder is opened.
1510 (@code{wl-folder-open-all-unread-folder})
1511
1512 @item /
1513 @kindex / (Folder)
1514 @findex wl-folder-open-close
1515 Folder group is opened/closed.
1516 (@code{wl-thread-open-close})
1517
1518 @item [
1519 @kindex [ (Folder)
1520 All folder group is opened.
1521 (@code{wl-folder-open-all})
1522
1523 @item ]
1524 @kindex ] (Folder)
1525 All folder group is closed.
1526 (@code{wl-folder-close-all})
1527
1528 @item q
1529 @kindex q (Folder)
1530 Quit Wanderlust.
1531 (@code{wl-exit})
1532
1533 @item z
1534 @kindex z (Folder)
1535 Suspend Wanderlust.
1536 (@code{wl-folder-suspend})
1537
1538 @item M-s
1539 @kindex M-s (Folder)
1540 Save current folder status.
1541 (@code{wl-save})
1542
1543 @item M-t
1544 @kindex M-t (Folder)
1545 Toggle Wanderlust's offline/online status.
1546 (@code{wl-toggle-plugged})
1547
1548 @item C-t
1549 @kindex C-t (Folder)
1550 Start Wanderlust's plug-status manager.
1551 (@code{wl-plugged-change})
1552 @end table
1553
1554 @subsection Customize variables
1555
1556 @table @code
1557 @item wl-folders-file
1558 @vindex wl-folders-file
1559 The initial setting is "~/.folders".
1560 Subscribed folders are described (saved) in this file.
1561
1562 @item wl-folder-info-save
1563 @vindex wl-folder-info-save
1564 The initial setting is t.
1565 If non-nil, unread information is saved and used in the next Wanderlust session.
1566
1567 @item wl-stay-folder-window
1568 @vindex wl-stay-folder-window
1569 The initial setting is nil.
1570 If non-nil, summary window is appeared on the right side of the folder buffer.
1571
1572 @item wl-folder-window-width
1573 @vindex wl-folder-window-width
1574 The initial setting is 20.
1575 Folder mode's window width when @code{wl-stay-folder-window} is non-nil.
1576
1577 @item wl-folder-many-unsync-threshold
1578 @vindex wl-folder-many-unsync-threshold
1579 The initial setting is 70.
1580 If the number of unread messages is more than this value,
1581 folder color is changed.
1582
1583 @item wl-folder-desktop-name
1584 @vindex wl-folder-desktop-name
1585 The initial setting is "Desktop".
1586 The name of top folder group.
1587
1588 @item wl-folder-petname-alist
1589 @vindex wl-folder-petname-alist
1590 The initial setting is nil.
1591 An alist of folder's realname and its nickname.
1592
1593 @item wl-folder-access-subscribe-alist
1594 @vindex wl-folder-access-subscribe-alist
1595 The initial setting is nil.
1596
1597 Control automatic subscribing and unsubscribing of the children list
1598 of access groups.
1599
1600 Each element is:
1601
1602 ('regexp of access-folder' . ('subscribe-flag' 'regexp-of-folders' @dots{}))
1603
1604 If subscribe-flag is non-nil, folders which have name matched to
1605 regexp-of-folders are displayed. Otherwise, hidden.
1606 However, already unsubscribed folder is not displayed even 
1607 when the subscribe-flag is non-nil. Multiple regexp-of-folders can be specified.
1608
1609 Example:
1610
1611 @example
1612 '(("^-fj$" . (t   "^-fj\\.\\(comp\\|editor\\|mail\\)"
1613                   "^-fj\\.\\(net\\|news\\|os\\|rec\\)"))
1614   ("^-$" . (t   "^-\\(fj\\|tnn\\|japan\\|gnu\\|comp\\)"))
1615   ("^\\+ml$" . (nil "^\\+ml$" "^\\+ml/tmp")))
1616 @end example
1617
1618 @item wl-folder-hierarchy-access-folders
1619 @vindex wl-folder-hierarchy-access-folders
1620 The initial setting is '("-" "-alt").
1621 A list of access groups which creates children folder list hierarchically.
1622
1623 For example, if you specify
1624 @code{wl-folder-hierarchy-access-folders} like following,
1625
1626 @lisp
1627 (setq wl-folder-hierarchy-access-folders
1628      '("-" "-alt" "-japan" "-comp" "-comp.unix"))
1629 @end lisp
1630
1631 such access group hierarchy is obtained.
1632
1633 @example
1634    [-]-:912/912/3011
1635      [-]-fj:674/674/1314
1636        -fj.comp.announce:0/0/2
1637        -fj.comp.dev.cdrom:0/0/0
1638        @dots{}
1639      [+]-japan:238/238/1688
1640      [-]-comp:0/0/4
1641        [-]-comp.unix:0/0/0
1642          -comp.unix.admin:0/0/0
1643          -comp.unix.dos-under-unix:0/0/0
1644          -comp.unix.programmer:0/0/0
1645          [-]-comp.unix.bsd:0/0/23
1646            -comp.unix.bsd.freebsd.announce:0/0/0
1647      @dots{}
1648 @end example
1649
1650 If you opened @samp{-} in this example, only the direct children is created
1651 (@samp{-fj}, @samp{-japan}, @samp{-tnn}, @dots{}).
1652 second hierarchy (@samp{-fj.comp.announce}, @dots{}, @samp{-comp.unix}, @dots{})
1653 is not created until the children access group is opened.
1654 @end table
1655
1656
1657 @node Folder Manager,  , Selecting Folder, Folder
1658 @section Editing Folders
1659 @cindex Folder Manager
1660 @cindex Folder, Edit
1661 @cindex Folder, Subscribe
1662 @cindex Folder, Unsubscribe
1663
1664 As described before, subscribed folder list is saved in @file{~/.folders} file.
1665 But you don't have to edit @file{~/.folders} directly.
1666 You can append, delete, edit folders from folder mode.
1667
1668 @subsection Usage (Tips)
1669
1670 @subsubsection Append Folder
1671
1672 @kbd{m a} appends new folder to the folder mode.
1673 @kbd{m g} appends new folder group.
1674 To append new folder to this group, firstly open it,
1675 then execute append command in the next line.
1676
1677 @subsubsection Edit Folder
1678
1679 You can cut folder by @kbd{C-k}, paste by @kbd{C-y}.
1680 Thus, you can change folder position as if you were editing a normal file.
1681
1682 @subsubsection Create Multi Folder.
1683
1684 @enumerate
1685 @item
1686 Type @kbd{m q} to clear @code{wl-fldmgr-cut-entity-list}.
1687 @item
1688 Cut folder by @kbd{C-k} or copy folder by @kbd{M-c}.
1689 @item
1690 Type @kbd{m m}, then you can create multi folder.
1691 @end enumerate
1692
1693 @subsubsection Delete Nickname, Filter
1694
1695 You can delete nickname or filter by putting ""(NULL) from the minibuffer
1696 while appending.
1697
1698 @subsubsection Append Folder to Empty Group
1699
1700 To append new folder to the empty folder group
1701 (after you create folder group by typing @kbd{m g}),
1702 firstly open it, then execute append command in the next line.
1703 If it is closed, folder is appended on the same level with
1704 the above folder group. It is difficult to explain by words so try it.
1705 In other words, appended position depends on the 
1706 above folder group's open/close status.
1707
1708 @subsubsection Charset of the Folders File.
1709
1710 @code{wl-mime-charset} is used for saving @code{wl-folders-file}.
1711
1712 @subsubsection Create Filter
1713
1714 @kbd{m f} adds filter to the folder at the current cursor point.
1715 To create new filter folder and leave the current folder unchanged, 
1716 copy it @kbd{M-c}, make filter @kbd{m f} and paste it @kbd{C-y}.
1717 Multiple filter can be specified while appending filter.
1718 If you put ""(NULL), filter is deleted.
1719
1720 @subsubsection Sort Folders
1721
1722 Sorting of the folders is executed by the function specified by 
1723 @code{wl-fldmgr-sort-func}. 
1724 The initial setting is @code{wl-fldmgr-sort-standard}, 
1725 which sorts alphabetically.
1726 Sorting affects only on the current folder group. It does not 
1727 affect on the child groups.
1728
1729 @subsubsection Hiding Folders in the Access Group
1730
1731 Usually, access group displays all children folders, but you can set
1732 some folders hidden. Following operations are only available on access
1733 group.
1734
1735 Command @code{wl-fldmgr-unsubscribe} (@kbd{u}) toggles
1736 the visibility (subscribe/unsubscribe) of the folder at current cursor point.
1737
1738 Against this, @code{wl-fldmgr-unsubscribe-region} (@kbd{U}) hides folders
1739 in the specified region.  Note that @code{wl-fldmgr-unsubscribe-region}
1740 does not toggle while @code{wl-fldmgr-unsubscribe} toggles.  These two
1741 commands accept prefix argument and if the argument has positive number,
1742 the unsubscribe it.  If the prefix argument has negative value, folder
1743 becomes visible and if zero, folder visibility is toggled.
1744
1745 The other commands, @code{wl-fldmgr-subscribe} and
1746 @code{wl-fldmgr-subscribe-region} are also prepared (not binded to the
1747 key).
1748
1749 Moreover, if @code{wl-fldmgr-cut} or @code{wl-fldmgr-cut-region} is
1750 executed in the access group, they have a same effect with
1751 @code{wl-fldmgr-unsubscribe} and @code{wl-fldmgr-unsubscribe-region}.
1752 The difference is that cut(-region) commands deletes folders from the
1753 current buffer.
1754
1755 @subsubsection Operations in the Access Group
1756
1757 You can insert and delete folders in the access group like usual folder
1758 group.  But insert and delete commands can be only available for the
1759 children folders of the access group and they only sets the subscribe
1760 status.  In other words, insertion of the folder means subscribing,
1761 deletion means unsubscribing.
1762 @footnote{In the current implementation, 
1763 it is faster to delete region than to unsubscribe region.}
1764
1765 To update the access group when children folders are inserted or deleted
1766 by other way (other than Wanderlust), 
1767 open the access group by typing @kbd{C-u @key{RET}}.
1768 @xref{Selecting Folder}.
1769
1770 The order of children folders of access group is saved after
1771 insertion/deletion/sorting.
1772 If you set @code{wl-force-fetch-folders} to non-nil or open access group
1773 by typing @kbd{C-u @key{RET}}, disappeared folders are deleted and
1774 newly created folders are inserted on the top of the access group.
1775
1776 @subsection Key bindings
1777 @cindex Keybind, Folder Mode
1778 @cindex Keybind, Folder Buffer
1779
1780 Key bindings on the folder mode related to folder editing are shown below.
1781 All bindings starts with @kbd{m}, and primary commands are binded to 
1782 one stroke key binding.
1783
1784 @table @kbd
1785 @item m a
1786 @kindex m a (Folder)
1787 @findex wl-fldmgr-add
1788 Insert a folder.
1789 (@code{wl-fldmgr-add})
1790
1791 @item +
1792 @itemx m g
1793 @kindex + (Folder)
1794 @kindex m g (Folder)
1795 @findex wl-fldmgr-make-group
1796 Create a folder group.
1797 (@code{wl-fldmgr-make-group})
1798
1799 @itemx m A
1800 @kindex m A (Folder)
1801 @findex wl-fldmgr-make-access-group
1802 Create an access group. 
1803 (@code{wl-fldmgr-make-access-group})
1804
1805 @item m d
1806 @kindex m d (Folder)
1807 @findex wl-fldmgr-delete
1808 Delete folder itself and msgdb.
1809 If the folder itself cannot be deleted like NNTP folder,
1810 only msgdb is deleted.
1811 (@code{wl-fldmgr-delete})
1812
1813 @item R
1814 @itemx m R
1815 @kindex R (Folder)
1816 @kindex m R (Folder)
1817 @findex wl-fldmgr-rename
1818 Change the name of folder or folder group.
1819 msgdb's path is also changed.
1820 (@code{wl-fldmgr-rename})
1821
1822 @item *
1823 @itemx m m
1824 @kindex * (Folder)
1825 @kindex m m(Folder)
1826 @findex wl-fldmgr-make-multi
1827 Create a multi folders in the cutlist (cut, copied folders).
1828 (@code{wl-fldmgr-make-multi})
1829
1830 @item |
1831 @itemx m f
1832 @kindex | (Folder)
1833 @kindex m f (Folder)
1834 @findex wl-fldmgr-make-filter
1835 Create a filter folder. (Put a filter on the folder).
1836 (@code{wl-fldmgr-make-filter})
1837
1838 @item M-c
1839 @itemx m c
1840 @kindex M-c (Folder)
1841 @kindex m c (Folder)
1842 @findex wl-fldmgr-copy
1843 Copy folder (it is not available on folder group).
1844 (@code{wl-fldmgr-copy})
1845
1846 @item M-w
1847 @itemx m W
1848 @kindex M-w (Folder)
1849 @kindex m W (Folder)
1850 @findex wl-fldmgr-copy-region
1851 Copy folders in the specified region.
1852 (@code{wl-fldmgr-copy-region})
1853
1854 @item C-k
1855 @itemx m k
1856 @kindex C-k (Folder)
1857 @kindex m k (Folder)
1858 @findex wl-fldmgr-cut
1859 Cut folder. Folder itself is not deleted.
1860 (@code{wl-fldmgr-cut})
1861
1862 @item C-w
1863 @itemx m C-w
1864 @kindex C-w (Folder)
1865 @kindex m C-w (Folder)
1866 @findex wl-fldmgr-cut-region
1867 Cut folders in the specified region.
1868 (@code{wl-fldmgr-cut-region})
1869
1870 @item C-y
1871 @itemx m y
1872 @kindex C-y (Folder)
1873 @kindex m y (Folder)
1874 @findex wl-fldmgr-yank
1875 Paste folders that are copied or cut (folders in the cut-list).
1876 (@code{wl-fldmgr-yank})
1877
1878 @item m p
1879 @kindex m p (Folder)
1880 @findex wl-fldmgr-set-petname
1881 Put nickname on the folder.
1882 (@code{wl-fldmgr-set-petname})
1883
1884 @item m q
1885 @kindex m q (Folder)
1886 @findex wl-fldmgr-clear-cut-entity-list
1887 Clear the cut-list. (cut, copied folder information is cleared,
1888 you cannot paste after this)
1889 (@code{wl-fldmgr-clear-cut-entity-list})
1890
1891 @item m s
1892 @kindex m s (Folder)
1893 @findex wl-fldmgr-sort
1894 Sort folders in the current folder group.
1895 (@code{wl-fldmgr-sort})
1896
1897 @item m C-s
1898 @kindex m C-s (Folder)
1899 @findex wl-fldmgr-save
1900 Save current folder view to the @file{wl-folders-file}.
1901 (@code{wl-fldmgr-save})
1902 @end table
1903
1904 [Following commands are only available on the access groups]
1905
1906 @table @kbd
1907 @item u
1908 @itemx m u
1909 @kindex u (Folder)
1910 @kindex m u (Folder)
1911 @findex wl-fldmgr-unsubscribe
1912 Set the visibility of folder (subscribe/unsubscribe).
1913 (@code{wl-fldmgr-unsubscribe})
1914
1915 @item U
1916 @itemx r u
1917 @kindex U (Folder)
1918 @kindex r u (Folder)
1919 @findex wl-fldmgr-unsubscribe-region
1920 Set the visibility of the folders (subscribe/unsubscribe) in the
1921 specified region. 
1922 (@code{wl-fldmgr-unsubscribe-region})
1923
1924 @item l
1925 @itemx m l
1926 @kindex l (Folder)
1927 @kindex m l (Folder)
1928 @findex wl-fldmgr-access-display-normal
1929 List folders that are currently available.
1930 (@code{wl-fldmgr-access-display-normal})
1931
1932 @item L
1933 @itemx m L
1934 @kindex L (Folder)
1935 @kindex m L (Folder)
1936 @findex wl-fldmgr-access-display-all
1937 List all folders regardless of the subscription status.
1938 (@code{wl-fldmgr-access-display-all})
1939
1940 @item C-c C-o
1941 @kindex C-c C-o (Folder)
1942 @findex wl-jump-to-draft-buffer
1943 Move to the draft buffer if available.  If multiple draft buffer exists,
1944 moved to one after another.  If prefix argument is specified, load draft
1945 folder's message to the draft buffer and jump to it.
1946 (@code{wl-jump-to-draft-buffer})
1947 @end table
1948
1949
1950 @subsection Customize variables
1951
1952 @table @code
1953 @item  wl-interactive-save-folders
1954 @vindex wl-interactive-save-folders
1955 The initial setting is t.
1956 If non-nil and folder view is modified, confirm saving it before
1957 Wanderlust or Emacs exits.
1958 If nil, save without confirmation.
1959
1960 @item wl-fldmgr-make-backup
1961 @vindex wl-fldmgr-make-backup
1962 The initial setting is t.
1963 If non-nil, @file{~/.folders.bak} is created before saving the folder status.
1964
1965 @item wl-fldmgr-sort-func
1966 @vindex wl-fldmgr-sort-func
1967 The initial setting is 'wl-fldmgr-sort-standard.
1968 A function to sort folders.
1969 By default function, folders are sorted alphabetically and
1970 folder group is put on top
1971 (when @code{wl-fldmgr-sort-group-first} is non-nil).
1972
1973 @item wl-fldmgr-sort-group-first
1974 @vindex wl-fldmgr-sort-group-first
1975 The initial setting is t.
1976 If non-nil, @code{wl-fldmgr-sort-standard} precedes folder group.
1977 If nil, it does not care whether it is folder group or not.
1978
1979 @item wl-folder-check-async
1980 @vindex wl-folder-check-async
1981 The initial setting is t.
1982 If non-nil, check folder's unread status asynchronously.
1983 It boosts newsgroup checking.
1984
1985 @item wl-folder-check-fast
1986 @vindex wl-folder-check-fast
1987 The initial setting is nil.
1988 If non-nil, it does not update folder status while checking.
1989 @c it is obsolete?
1990 @item wl-folder-notify-deleted
1991 @vindex wl-folder-notify-deleted
1992 The initial setting is nil.
1993 @c  nil means?
1994 If non-nil, negative value is displayed when the message is deleted.
1995 If 'sync, folder is synchronized when the message is deleted.
1996 If nil, message deletion is ignored.
1997 @end table
1998
1999 @subsection Miscellanea
2000
2001 Following is a note for folder editing.
2002
2003 @enumerate
2004 @item
2005 cut or copy stacks the folder in the @code{wl-fldmgr-cut-entity-list}.
2006 paste(yank) command pastes the folders on one cut or copy command
2007 (If copy command is executed by region, folders in the region are pasted
2008 by one paste command)
2009
2010 @item
2011 You cannot cut 'Desktop' group.
2012 Also, you cannot paste folders at the outside of the 'Desktop'.
2013
2014 @item
2015 You cannot copy folder group.
2016
2017 @item
2018 Operations on the access group are only available for the folders
2019 in the same access group.
2020
2021 @item
2022 You cannot create a folder which has same name with the folders already exist.
2023
2024 @item
2025 You cannot insert folders which have same name in one group.
2026 You can insert them in the different groups.
2027 You cannot put same nickname to the different folders.
2028 @end enumerate
2029
2030
2031 @c
2032 @c  Summary
2033 @c
2034 @node Summary, Message, Folder, Top
2035 @chapter Summary Mode
2036
2037 @section Usage (Tips)
2038
2039 @subsection Summary Content
2040
2041 After you select the folder via folder mode, you enter to the summary mode.
2042 In the summary mode, messages are displayed like following.
2043
2044 @example
2045   377  09/16(Wed)11:57 [+1: Takuro Kitame  ] Bug?
2046   381  09/17(Thu)00:16 [+3: Fujikazu Okuni ] elmo-lha.el -- LHA interface
2047   384  09/17(Thu)01:32 [+1: Yuuichi Terani ] wl-0.6.2
2048   389 N09/18(Fri)01:07 [+2: Yuuichi Terani ] wl-0.6.3
2049 @end example
2050
2051 Each line displays:
2052
2053 @example
2054 Message number, Temporal mark, Persistent mark, Date, Sender, Subject
2055 @end example
2056
2057 @noindent
2058 You cannot change this in the current version.
2059
2060 'Message number' is the message's unique number in the folder. In the NNTP
2061 folder, it is article number, in the IMAP folder, it is UID and in the
2062 MH folder, it is the filename of the message.
2063
2064 Temporal and Persistent marks are described later.
2065
2066 'Date' is displayed like 'Month/Day(Week Day)Hour:Minute'.
2067 Default setting displays week day in Japanese, but if you want to 
2068 display it in English, set the value of @code{wl-summary-weekday-name-lang}
2069 as "en".
2070
2071 'Sender's indentation corresponds to the depth of the thread.
2072 Sender name is displayed as nickname if it is defined in the address book.
2073 Set @code{wl-use-petname} as nil, if you want to quit displaying with nickname.
2074
2075 If number is printed at the head of 'sender' part like @samp{+2},
2076 that means the message have 2 follow messages.
2077
2078 'Subject' is the Subject header field of the message.  If the message
2079 have same subject with the parent message, it is not displayed.  Some
2080 mailing list puts its sequence number in the subject field, but it is
2081 ignored. @code{wl-summary-no-subject-message} is displayed when the
2082 message has empty subject field.
2083
2084 @subsection Temporary Marks
2085 @cindex Mark, Temporary
2086
2087 There are four temporary marks, 
2088 @samp{*}, @samp{D}, @samp{o} and @samp{O}.
2089 Temporary marks indicates message operations.
2090
2091 @table @samp
2092 @item *
2093 Target mark.
2094 You can execute a command on the all messages that have @samp{*} mark,
2095 with the key bindings which begins with @kbd{m}.
2096
2097 @item D
2098 The mark to delete. You can put @samp{D} by typing @kbd{d} key.
2099
2100 @item o
2101 The mark to refile.
2102 After you type @kbd{o} key, prompt appears to input refile destination.
2103 Your answer is printed in the summary line.
2104
2105 @item O
2106 The mark to refile.
2107 You can put this mark by typing @kbd{O} key.
2108 The difference between this mark and refile mark is, 
2109 this mark does not delete the message while latter does.
2110 @end table
2111
2112 @kbd{x} key executes @samp{D}, @samp{o} and @samp{O} marks.
2113
2114 @subsection Persistent Marks
2115
2116 There are five persistent marks,
2117 @samp{N}, @samp{U}, @samp{!}, @samp{u} and @samp{$}.
2118
2119 The persistent mark indicates the message's status and it is saved.
2120 Each persistent mark indicates:
2121
2122 @table @samp
2123 @item N
2124 It is new message.
2125 @item U
2126 It is unread message.
2127 @item !
2128 It is unread but cached message.
2129 @item u
2130 It is read but it is not cached.
2131 @item $
2132 It is important message.  You can put @samp{$} mark by typing @kbd{$}
2133 key (if already exists, the mark is deleted).  It is convenient to put
2134 this mark on the messages to remember (If you want to remember to write
2135 a reply for the message, for example) because this mark remains after
2136 you exited Emacs.  Messages with the @samp{$} mark remains in the folder
2137 even the message itself is deleted in the actual folder.
2138
2139 @item None
2140 If the message is read and cached (or local message),there are no
2141 persistent mark.
2142 @end table
2143
2144 @samp{N}, @samp{U} and @samp{u} indicates that the message have no
2145 cache.  Messages with the marks other than these, you can read them in
2146 the offline status even they are in the IMAP folder or netnews folder.
2147
2148 @subsection How To Read
2149
2150 Basically, you can read messages only typing space key again and again.
2151
2152 To update summary status to the newest status (synchronize),
2153 type @kbd{s} key.
2154
2155 You can jump to next unread message by typing @kbd{N} key, and @kbd{n} key
2156 moves cursor to the next message.
2157 Enter message buffer by typing @kbd{j} key.
2158 To operate multipart, you have to enter to the message buffer.
2159
2160 @subsection Thread Operations
2161
2162 For example, the following line indicates one thread (a context of a topic).
2163
2164 @example
2165   384  09/17(Thu)01:32 [+1: Teranishi       ] wl-0.6.2
2166 @end example
2167
2168 @noindent
2169 If you type @kbd{/} on this line, the thread is opened and it changes
2170 the appearance like following.
2171
2172 @example
2173   384  09/17(Thu)01:32 [ Teranishi          ] wl-0.6.2
2174   388  09/17(Thu)22:34 +-[ Murata san         ]
2175 @end example
2176
2177 (Message 388 is the replied message to the message 384.)
2178 If you type @kbd{/} key once again, the thread is closed.
2179 With prefix argument, @kbd{/} opens all children threads.
2180
2181 Commands with the key binding that begins with @kbd{t} executes commands
2182 on the messages in the thread.
2183
2184 @subsection Cache File
2185
2186 The messages which have to access via network (e.x. IMAP, NNTP folder) 
2187 are cached as a local file.
2188 The cache file is saved under the directory @file{~/.elmo/cache}.
2189
2190 To expire cache, type following.
2191
2192 @example
2193 M-x elmo-cache-expire-by-size
2194 @end example
2195
2196 @noindent
2197 The command deletes cache files to the specified size by the order of
2198 last accessed time.
2199
2200 @subsection Buffer Cache and Prefetching
2201
2202 If the value of @code{elmo-use-buffer-cache} is non-nil,
2203 the messages that are read are kept in the cache buffer.
2204 It is called `buffer cache'. 
2205 The number of cache buffer is specified by @code{elmo-buffer-cache-size}.
2206
2207 There are message prefetching mechanism in the Wanderlust that prefetches next
2208 message while you are reading.  This function requires that the value of
2209 @code{elmo-use-buffer-cache} is non-nil.
2210
2211 You can control the message prefetching mechanism by these two variables.
2212
2213 @table @code
2214 @item wl-cache-prefetch-folder-type-list
2215 @vindex wl-cache-prefetch-folder-type-list
2216 The initial setting is '(nntp imap4).
2217 It specifies the folder types in which message prefetching is enabled.
2218 In the initial setting, multi folder that contains localdir and imap4 
2219 prefetches only imap4 messages.
2220 This variable precedes the value of @code{wl-cache-prefetch-folder-list}.
2221
2222 If you want to prefetch localdir and localnews also, following setting is needed.
2223 @lisp
2224 (setq wl-cache-prefetch-folder-type-list
2225       '(nntp imap4 localdir localnews))
2226 @end lisp
2227
2228 @item wl-cache-prefetch-folder-list
2229 @vindex wl-cache-prefetch-folder-list
2230 The initial setting is nil.
2231 A list of regexp of folders to enable message prefetching.
2232 @end table
2233
2234 @subsection Auto Refile
2235 @vindex elmo-msgdb-extra-fields
2236 @vindex wl-refile-rule-alist
2237 @findex wl-summary-auto-refile
2238
2239 You can refile messages automatically, by typing @kbd{C-o}
2240 (@code{wl-summary-auto-refile}). It decides destination of refile by
2241 the content of the message header information (information in the msgdb).
2242
2243 By default, @samp{From}, @samp{Subject}, @samp{To} and @samp{Cc} is available.
2244 If you want to decide destination by other header fields, 
2245 set the variable @code{elmo-msgdb-extra-fields} like following.
2246
2247 @lisp
2248 (setq elmo-msgdb-extra-fields
2249       '("x-ml-name"
2250         "reply-to"
2251         "sender"
2252         "mailing-list"
2253         "newsgroups"))
2254 @end lisp
2255
2256 @noindent
2257 By this setting, Wanderlust saves extra fields in the msgdb.  You have
2258 to type @kbd{s all} to get extra fields for the messages that are
2259 already exists in the summary.
2260
2261 Then, specify the refile rule.  The refile target folder of auto
2262 refiling is decided by the value of @code{wl-refile-rule-alist}.
2263 @code{wl-refile-rule-alist} is a list of a rule:
2264
2265 @example
2266         (FIELD (REGEXP . TARGET)
2267                (REGEXP . TARGET)
2268                @dots{})
2269 @end example
2270
2271 Each rule means `if FIELD value matches REGEXP, then refile to TARGET folder'.
2272 The rule matched first is applied.
2273
2274 FIELD is a string of field name.  You can specify a list of field name
2275 string, too. In this case, if one of these fields is matched, then the
2276 rule is fired (i.e. OR condition).
2277
2278 REGEXP is a regular expression for field value.  TARGET is a target
2279 folder string. You can specify a rule at TARGET part, too.  In this
2280 case, If the field value of the rule and the current rule is matched,
2281 then the current rule is fired (i.e. AND condition).
2282
2283 In TARGET part, you can refer matched substring of REGEXP.
2284 To refer substring, specify following in TARGET:
2285
2286 @example
2287 \&            means substitute original matched text.
2288 \N (number)   means substitute what matched the Nth `\(...\)'.
2289 @end example
2290
2291 Following is an example of @code{wl-refile-rule-alist}.
2292
2293 @lisp
2294 (setq wl-refile-rule-alist
2295       '(("x-ml-name"
2296          ("^Wanderlust" . "+wl")
2297          ("^Elisp" . "+elisp"))
2298         (("To" "Cc")
2299          ("\\([a-z]+\\)@@gohome.org" . "+\\1"))
2300         ("From"
2301          ("me@@gohome.org" . ("To" ("you@@gohome.org" . 
2302                                     "+from-me-to-you"))))))
2303 @end lisp
2304
2305 After these settings, refile marks are automatically put on the condition
2306 matched messages by typing @kbd{C-o} (@code{wl-summary-auto-refile}).
2307
2308 Messages which have @code{wl-summary-auto-refile-skip-marks} is skipped
2309 auto refiling. 
2310 By default, @samp{N}, @samp{U} and @samp{!} is specified, so the messages
2311 with these persistent marks are not automatically refiled.
2312 It means Wanderlust does not execute auto refile on unread messages by
2313 the default setting.
2314 To execute auto refile on all messages, set following.
2315
2316 @lisp
2317 (setq wl-summary-auto-refile-skip-marks nil)
2318 @end lisp
2319
2320 @subsection Sticky Summary
2321 @cindex Summary, Sticky
2322 @cindex Sticky Summary
2323
2324 The buffer of the `sticky summary' does not killed by typing @kbd{q}. 
2325
2326 Sticky buffer is created by entering the summary by typing @kbd{C-u g} or
2327 type @kbd{M-s} (@code{wl-summary-stick}) on the normal summary.
2328
2329 The buffer name of the sticky summary becomes like 
2330 @samp{Summary:@var{folder-name}}.
2331
2332 You can visit the sticky summary at any time by @kbd{C-x b}
2333 (@code{switch-to-buffer}).  To exit sticky summary, type @kbd{C-u
2334 q}. Other operations in the sticky summary are same as normal summary.
2335
2336 @code{wl-summary-always-sticky-folder-list} specifies the folders that are
2337 automatically sticked.
2338
2339 @section Key bindings
2340 @cindex Keybind, Summary Mode
2341 @cindex Keybind, Summary Buffer
2342
2343 Key bindings of the summary mode are shown below.
2344
2345 @table @kbd
2346 @item @key{SPC}
2347 @kindex @key{SPC} (Summary)
2348 @findex wl-summary-read
2349 Proceed reading a message at the current cursor point.
2350 (@code{wl-summary-read})
2351
2352 @item .
2353 @kindex . (Summary)
2354 @findex wl-summary-redisplay
2355 Redisplay a message at the current cursor point.
2356 If this command is called with prefix argument, 
2357 Redisplay message regardless of the message cache (message is re-loaded
2358 from source). 
2359 (@code{wl-summary-redisplay})
2360
2361 @item <
2362 @kindex < (Summary)
2363 @findex wl-summary-display-top
2364 Display the top message in the folder.
2365 (@code{wl-summary-display-top})
2366
2367 @item >
2368 @kindex > (Summary)
2369 @findex wl-summary-display-bottom
2370 Display the bottom message in the folder.
2371 (@code{wl-summary-display-bottom})
2372
2373 @item @key{BS}
2374 @itemx @key{DEL}
2375 @kindex @key{BS} (Summary)
2376 @kindex @key{DEL} (Summary)
2377 Display the previous page of the message at the current cursor point.
2378 @findex wl-summary-prev-page
2379 (@code{wl-summary-prev-page})
2380
2381 @item @key{RET}
2382 @kindex @key{RET} (Summary)
2383 @findex wl-summary-next-line-content
2384 Display the next line of the message at the current cursor point.
2385 Display the message at the current cursor point if it is not displayed yet.
2386 (@code{wl-summary-next-line-content})
2387
2388 @item /
2389 @kindex / (Summary)
2390 @findex wl-thread-open-close
2391 Toggle open or close the thread at the current cursor point.
2392 (@code{wl-thread-open-close})
2393
2394 @item [
2395 @kindex [ (Summary)
2396 Open all threads.
2397 @findex wl-thread-open-all
2398 (@code{wl-thread-open-all})
2399
2400 @item ]
2401 @kindex ] (Summary)
2402 Close all threads.
2403 @findex wl-thread-close-all
2404 (@code{wl-thread-close-all})
2405
2406 @item -
2407 @itemx M-@key{RET}
2408 @kindex - (Summary)
2409 @kindex M-@key{RET} (Summary)
2410 @findex wl-summary-prev-line-content
2411 Display the previous line of the message at the current cursor point.
2412 Display the message at the current cursor point if it is not displayed yet.
2413 (@code{wl-summary-prev-line-content})
2414
2415 @item g
2416 @kindex g (Summary)
2417 @findex wl-summary-goto-folder
2418 Go to other folder.
2419 (@code{wl-summary-goto-folder})
2420
2421 @item c
2422 @kindex c (Summary)
2423 Mark all messages in the folder as read.
2424 @findex wl-summary-mark-as-read-all
2425 (@code{wl-summary-mark-as-read-all})
2426
2427 @item a
2428 @kindex a (Summary)
2429 @findex wl-summary-reply
2430 Prepare a draft for reply the message at the current cursor point.
2431 (@code{wl-summary-reply})
2432
2433 @item A
2434 @kindex A (Summary)
2435 @findex wl-summary-reply-with-citation
2436 Prepare a draft for reply the message at the current cursor point.
2437 (@code{wl-summary-reply-with-citation})
2438
2439 @item C
2440 @kindex C (Summary)
2441 @findex wl-summary-cancel-message
2442 If the message at current cursor point is your own netnews article,
2443 cancel it.
2444 (@code{wl-summary-cancel-message})
2445
2446 @item E
2447 @kindex E (Summary)
2448 @findex wl-summary-reedit
2449 Prepare a draft for re-editing the message at current cursor point.
2450 If the message at current cursor point is your own netnews article,
2451 a draft for `supersedes message' for the message is prepared.
2452 (@code{wl-summary-reedit})
2453
2454 @item M-e
2455 @kindex M-e (Summary)
2456 @findex wl-summary-resend-bounced-mail
2457 If the message at current cursor point is a bounced message,
2458 a draft for re-sending original message is prepared.
2459 (@code{wl-summary-resend-bounced-mail})
2460
2461 @item f
2462 @kindex f (Summary)
2463 @findex wl-summary-forward
2464 A draft for forwarding the message at current cursor point is prepared.
2465 (@code{wl-summary-forward})
2466
2467 @item $
2468 @kindex $ (Summary)
2469 @findex wl-summary-mark-as-important
2470 Put @samp{$} mark on the message at current cursor point.
2471 If already marked as @samp{$}, delete it.
2472 (@code{wl-summary-mark-as-important})
2473
2474 @item y
2475 @itemx e
2476 @kindex y (Summary)
2477 @kindex e (Summary)
2478 Save the message at current cursor point.
2479 @findex wl-summary-save
2480 (@code{wl-summary-save})
2481
2482 @item n
2483 @kindex n (Summary)
2484 @findex wl-summary-next
2485 Move cursor to the next message.
2486 If message is marked with a temporal mark in 
2487 @code{wl-summary-skip-mark-list}, cursor is not moved to it.
2488 In the offline mode, cursor is not moved to the messages which are not cached
2489 yet.
2490 (@code{wl-summary-next})
2491
2492 @item p
2493 @kindex p (Summary)
2494 @findex wl-summary-prev
2495 Move cursor to the previous message.
2496 If message is marked with a temporal mark in 
2497 @code{wl-summary-skip-mark-list}, cursor is not moved to it.
2498 In the offline mode, cursor is not moved to the messages which are not cached
2499 yet.
2500 (@code{wl-summary-prev})
2501
2502 @item N
2503 @kindex N (Summary)
2504 @findex wl-summary-down
2505 Move cursor to the downward message which is unread or marked
2506 as @samp{$}.
2507 (@code{wl-summary-down})
2508
2509 @item P
2510 @kindex P (Summary)
2511 @findex wl-summary-up
2512 Move cursor to the upward message which is unread or marked
2513 as @samp{$}.
2514 (@code{wl-summary-up})
2515
2516 @item w
2517 @kindex w (Summary)
2518 @findex wl-draft
2519 Prepare a new draft.
2520 (@code{wl-draft})
2521
2522 @item W
2523 @kindex W (Summary)
2524 @findex wl-draft-write-current-newsgroup
2525 Prepare a new draft.
2526 If the current folder is netnews folder, Newsgroups: field is completed.
2527 (@code{wl-draft-write-current-newsgroup})
2528
2529 @item H
2530 @kindex H (Summary)
2531 @findex wl-summary-redisplay-all-header
2532 Redisplay the message at current cursor point with all header fields.
2533 (@code{wl-summary-redisplay-all-header})
2534
2535 @item M
2536 @kindex M (Summary)
2537 @findex wl-summary-redisplay-no-mime
2538 Redisplay the message at current cursor point without MIME analysis.
2539 (@code{wl-summary-redisplay-no-mime})
2540
2541 @item B
2542 @kindex B (Summary)
2543 @findex wl-summary-burst
2544 If the message at current cursor point has 
2545 encapsulates multiple messages using MIME,
2546 de-capsulate and extract them on the current folder.
2547 (@code{wl-summary-burst})
2548
2549 @item @@
2550 @kindex @@ (Summary)
2551 @findex wl-summary-edit-addresses
2552 Append/change/delete the message's sender information to the address book
2553 @file{~/.addresses} interactively.
2554 If this command is called with prefix argument, arbitrary address can be edited.
2555 (@code{wl-summary-edit-petname})
2556
2557 @item Z
2558 @kindex Z (Summary)
2559 @findex wl-status-update
2560 Sync up address book status with @file{~/.addresses}'s content.
2561 (@code{wl-status-update})
2562
2563 @item |
2564 @kindex | (Summary)
2565 @findex wl-summary-pipe-message
2566 Pipe current message's content to the external process.
2567 (@code{wl-summary-pipe-message})
2568
2569 @item #
2570 @kindex # (Summary)
2571 @findex wl-summary-print-message
2572 Print out current message's content.
2573 It uses ps-print module in Emacs 20.x.
2574 If you don't use color printer, you might want to set
2575 @code{wl-ps-print-buffer-func} to 'ps-print-buffer.
2576 (@code{wl-summary-print-message})
2577
2578 @item q
2579 @kindex q (Summary)
2580 @findex wl-summary-exit
2581 Exit current folder.
2582 (@code{wl-summary-exit})
2583
2584 @item j
2585 @kindex j (Summary)
2586 @findex wl-summary-jump-to-current-message
2587 Jump cursor to the currently displayed message's window.
2588 (@code{wl-summary-jump-to-current-message})
2589
2590 @item J
2591 @kindex J (Summary)
2592 Jump cursor to the other message.
2593 @findex wl-summary-jump-to-msg
2594 (@code{wl-summary-jump-to-msg})
2595
2596 @item I
2597 @kindex I (Summary)
2598 Update summary status and
2599 prefetch all messages which have marks included in the 
2600 @code{wl-summary-incorporate-marks}.
2601 @findex wl-summary-incorporate
2602 (@code{wl-summary-incorporate})
2603
2604 @item M-j
2605 @kindex M-j (Summary)
2606 @findex wl-summary-jump-to-msg-by-message-id
2607 Jump cursor to the message which have specified Message-Id.
2608 If @code{elmo-use-database} is non-nil, other folder is also searched.
2609 (@code{wl-summary-jump-to-msg-by-message-id})
2610
2611 @item ^
2612 @kindex ^ (Summary)
2613 Jump to parent message.
2614 @findex wl-summary-jump-to-parent-message
2615 (@code{wl-summary-jump-to-parent-message})
2616
2617 @item !
2618 @kindex ! (Summary)
2619 @findex wl-summary-mark-as-unread
2620 Mark as unread the message at current cursor point.
2621 (@code{wl-summary-mark-as-unread})
2622
2623 @item s
2624 @kindex s (Summary)
2625 @findex wl-summary-sync
2626 Synchronize summary view after prompting the update range
2627 (all, update, rescan, first, last).
2628
2629 @example
2630 all            ...Discard current summary and update all message.
2631 update         ...Update the difference between summary and the folder itself.
2632 rescan         ...Rescan the msgdb and display again.
2633 rescan-noscore ...Rescan the msgdb and display again (without scoring).
2634 first, last    ...Move to the filter folder(partial filter).
2635 @end example
2636
2637 @noindent
2638 (@code{wl-summary-sync})
2639
2640 @item S
2641 @kindex S (Summary)
2642 @findex wl-summary-sort
2643 Sort summary order.
2644 You can sort by date, from, number and subject.
2645 (@code{wl-summary-sort})
2646
2647 @item T
2648 @kindex T (Summary)
2649 @findex wl-summary-toggle-thread
2650 Toggle the threading.
2651 Threading status is displayed on the modeline.
2652 @{S@} means threading is off (Sequence) and 
2653 @{T@} means threading is on (Thread).
2654 (@code{wl-summary-toggle-thread})
2655
2656 @item l
2657 @kindex l (Summary)
2658 @findex wl-summary-toggle-disp-folder
2659 Toggle displaying of folder window.
2660 (@code{wl-summary-toggle-disp-folder})
2661
2662 @item v
2663 @kindex v (Summary)
2664 Toggle displaying of message window.
2665 @findex wl-summary-toggle-disp-msg
2666 (@code{wl-summary-toggle-disp-msg})
2667
2668 @item V
2669 @kindex V (Summary)
2670 Move to the virtual folder with the condition specified.
2671 If called with prefix argument and current folder is virtual, exit it.
2672 @findex wl-summary-virtual
2673 (@code{wl-summary-virtual})
2674
2675 @item @key{TAB}
2676 @kindex @key{TAB} (Summary)
2677 @findex wl-summary-goto-last-displayed-msg
2678 Jump to the message which is displayed last.
2679 (@code{wl-summary-goto-last-displayed-msg})
2680
2681 @item ?
2682 @kindex ? (Summary)
2683 Put @samp{*} mark on the messages that satisfies the specified condition.
2684 @findex wl-summary-pick
2685 (@code{wl-summary-pick})
2686
2687 @item R
2688 @kindex R (Summary)
2689 @findex wl-summary-mark-as-read
2690 Mark as read the message at the current cursor point.
2691 (@code{wl-summary-mark-as-read})
2692
2693 @item i
2694 @kindex i (Summary)
2695 Prefetch the message at the current cursor point.
2696 @findex wl-summary-prefetch
2697 (@code{wl-summary-prefetch})
2698
2699 @item x
2700 @kindex x (Summary)
2701 Execute @samp{D}, @samp{o} and @samp{O} marks.
2702 @findex wl-summary-exec
2703 (@code{wl-summary-exec})
2704
2705 @item *
2706 @kindex * (Summary)
2707 @findex wl-summary-target-mark-line
2708 Put target mark on the message at the current cursor point.
2709 (@code{wl-summary-target-mark-line})
2710
2711 @item o
2712 @kindex o (Summary)
2713 Put refile mark on the message at the current cursor point.
2714 @findex wl-summary-refile
2715 (@code{wl-summary-refile})
2716
2717 @item C-o
2718 @kindex C-o (Summary)
2719 Execute auto refile.
2720 @findex wl-summary-auto-refile
2721 (@code{wl-summary-auto-refile})
2722
2723 @item O
2724 @kindex O (Summary)
2725 Put copy mark on the message at the current cursor point.
2726 @findex wl-summary-copy
2727 (@code{wl-summary-copy})
2728
2729 @item M-o
2730 @kindex M-o (Summary)
2731 Put refile mark on the message at the current cursor point with the destination
2732 previously specified.
2733 @findex wl-summary-refile-prev-destination
2734 (@code{wl-summary-refile-prev-destination})
2735
2736 @item d
2737 @kindex d (Summary)
2738 @findex wl-summary-delete
2739 Put delete mark on the message at the current cursor point.
2740 (@code{wl-summary-delete})
2741
2742 @item u
2743 @kindex u (Summary)
2744 @findex wl-summary-unmark
2745 Unmark the temporal mark on the message at the current cursor point.
2746 (@code{wl-summary-unmark})
2747
2748 @item U
2749 @kindex U (Summary)
2750 Unmark all the temporal marks.
2751 @findex wl-summary-unmark-all
2752 (@code{wl-summary-unmark-all})
2753
2754 @item r R
2755 @kindex r R (Summary)
2756 @findex wl-summary-mark-as-read-region
2757 Mark as read messages in the specified region.
2758 (@code{wl-summary-mark-as-read-region})
2759
2760 @item r $
2761 @kindex r $ (Summary)
2762 @findex wl-summary-mark-as-important-region
2763 Mark as important @samp{$} messages in the specified region.
2764 If @samp{$} already exists, it is deleted.
2765 (@code{wl-summary-mark-as-important-region})
2766
2767 @item r !
2768 @kindex r ! (Summary)
2769 @findex wl-summary-mark-as-unread-region
2770 Mark as unread messages in the specified region.
2771 (@code{wl-summary-mark-as-unread-region})
2772
2773 @item r i
2774 @kindex r i (Summary)
2775 @findex wl-summary-prefetch-region
2776 Prefetch messages in the specified region.
2777 (@code{wl-summary-prefetch-region})
2778
2779 @item r x
2780 @kindex r x (Summary)
2781 @findex wl-summary-exec-region
2782 Execute @samp{D}, @samp{o} and @samp{O} marks on the messages in the
2783 specified region.
2784 (@code{wl-summary-exec-region})
2785
2786 @item r *
2787 @kindex r * (Summary)
2788 @findex wl-summary-target-mark-region
2789 Put target mark on the messages in the specified region.
2790 (@code{wl-summary-target-mark-region})
2791
2792 @item r o
2793 @kindex r o (Summary)
2794 @findex wl-summary-refile-region
2795 Put refile mark on the messages in the specified region.
2796 (@code{wl-summary-refile-region})
2797
2798 @item r O
2799 @kindex r O (Summary)
2800 @findex wl-summary-copy-region
2801 Put copy mark on the messages in the specified region.
2802 (@code{wl-summary-copy-region})
2803
2804 @item r d
2805 @kindex r d (Summary)
2806 @findex wl-summary-delete-region
2807 Put delete mark on the messages in the specified region.
2808 (@code{wl-summary-delete-region})
2809
2810 @item r u
2811 @kindex r u (Summary)
2812 @findex wl-summary-unmark-region
2813 Delete temporal mark on the messages in the specified region.
2814 (@code{wl-summary-unmark-region})
2815
2816 @item r y
2817 @kindex r y (Summary)
2818 Save messages in the specified region.
2819 @findex wl-summary-save-region
2820 (@code{wl-summary-save-region})
2821
2822 @item t R
2823 @kindex t R (Summary)
2824 @findex wl-thread-mark-as-read
2825 Mark as read messages which are the descendant of the current thread.
2826 With prefix argument, it affects on the all messages in the thread tree.
2827 (@code{wl-thread-mark-as-read})
2828
2829 @item t $
2830 @kindex t $ (Summary)
2831 @findex wl-thread-mark-as-important
2832 Put important mark @samp{$} on the messages which are the 
2833 descendant of the current thread.
2834 If @samp{$} mark exists, it is deleted.
2835 With prefix argument, it affects on the all messages in the thread tree.
2836 (@code{wl-thread-mark-as-important})
2837
2838 @item t !
2839 @kindex t ! (Summary)
2840 @findex wl-thread-mark-as-unread
2841 Mark as unread messages which are the descendant of the current thread.
2842 With prefix argument, it affects on the all messages in the thread tree.
2843 (@code{wl-thread-mark-as-unread})
2844
2845 @item t i
2846 @kindex t i (Summary)
2847 @findex wl-thread-prefetch
2848 Prefetch messages which are the descendant of the current thread.
2849 With prefix argument, it affects on the all messages in the thread tree.
2850 (@code{wl-thread-prefetch})
2851
2852 @item t x
2853 @kindex t x (Summary)
2854 @findex wl-thread-exec
2855 Execute @samp{D}, @samp{o} and @samp{O} marks on the messages which are
2856 the descendant of the current thread.  With prefix argument, it affects
2857 on the all messages in the thread tree.
2858 (@code{wl-thread-exec})
2859
2860 @item t *
2861 @kindex t * (Summary)
2862 @findex wl-thread-target-mark
2863 Put target mark @samp{*} on the messages which are the descendant of the
2864 current thread.  With prefix argument, it affects on the all messages in
2865 the thread tree.
2866 (@code{wl-thread-target-mark})
2867
2868 @item t o
2869 @kindex t o (Summary)
2870 @findex wl-thread-refile
2871 Put refile mark on the messages which are the descendant of the current thread.
2872 With prefix argument, it affects on the all messages in the thread tree.
2873 (@code{wl-thread-refile})
2874
2875 @item t O
2876 @kindex t O (Summary)
2877 @findex wl-thread-copy
2878 Put copy mark on the messages which are the descendant of the current thread.
2879 With prefix argument, it affects on the all messages in the thread tree.
2880 (@code{wl-thread-copy})
2881
2882 @item t d
2883 @kindex t d (Summary)
2884 @findex wl-thread-delete
2885 Put delete mar on the messages which are the descendant of the current thread.
2886 With prefix argument, it affects on the all messages in the thread tree.
2887 (@code{wl-thread-delete})
2888
2889 @item t u
2890 @kindex t u (Summary)
2891 @findex wl-thread-unmark
2892
2893 Unmark temporal mark on the messages which are the descendant of the
2894 current thread. With prefix argument, it affects on the all messages in
2895 the thread tree. 
2896 (@code{wl-thread-unmark})
2897
2898 @item t y
2899 @kindex t y (Summary)
2900 @findex wl-thread-save
2901 Save messages which are the descendant of the current thread.
2902 With prefix argument, it affects on the all messages in the thread tree.
2903 (@code{wl-thread-save})
2904
2905 @item m i
2906 @kindex m i (Summary)
2907 @findex wl-summary-target-mark-prefetch
2908 Prefetch all messages which have target mark @samp{*}.
2909 (@code{wl-summary-target-mark-prefetch})
2910
2911 @item m R
2912 @kindex m R (Summary)
2913 @findex wl-summary-target-mark-mark-as-read
2914 Mark as read all messages which have target mark @samp{*}.
2915 (@code{wl-summary-target-mark-mark-as-read})
2916
2917 @item m $
2918 @kindex m $ (Summary)
2919 @findex wl-summary-target-mark-mark-as-important
2920 Mark as important all messages which have target mark @samp{*}.
2921 If already marked as @samp{$}, it is deleted.
2922 (@code{wl-summary-target-mark-mark-as-important})
2923
2924 @item m !
2925 @kindex m ! (Summary)
2926 @findex wl-summary-target-mark-mark-as-unread
2927 Mark as unread all messages which have target mark @samp{*}.
2928 (@code{wl-summary-target-mark-mark-as-unread})
2929
2930 @item m o
2931 @kindex m o (Summary)
2932 @findex wl-summary-target-mark-refile
2933 Put refile mark on the messages which have target mark @samp{*}.
2934 (@code{wl-summary-target-mark-refile})
2935
2936 @item m O
2937 @kindex m O (Summary)
2938 @findex wl-summary-target-mark-copy
2939 Put copy mark on the messages which have target mark @samp{*}.
2940 (@code{wl-summary-target-mark-copy})
2941
2942 @item m d
2943 @kindex m d (Summary)
2944 @findex wl-summary-target-mark-delete
2945 Put delete mark on the messages which have target mark @samp{*}.
2946 (@code{wl-summary-target-mark-delete})
2947
2948 @item m y
2949 @kindex m y (Summary)
2950 @findex wl-summary-target-mark-save
2951 Save messages which have target mark @samp{*}.
2952 (@code{wl-summary-target-mark-save})
2953
2954 @item m u
2955 @kindex m u (Summary)
2956 Unmark all temporal marks.
2957 (@code{wl-summary-delete-all-temp-marks})
2958 @findex wl-summary-delete-all-temp-marks
2959
2960 @item m a
2961 @kindex m a (Summary)
2962 Put target mark @samp{*} on the all messages.
2963 (@code{wl-summary-target-mark-all})
2964 @findex wl-summary-target-mark-all
2965
2966 @item m t
2967 @kindex m t (Summary)
2968 Put target mark @samp{*} on the messages in the current thread.
2969 @findex wl-summary-target-mark-thread
2970 (@code{wl-summary-target-mark-thread})
2971
2972 @item m r
2973 @kindex m r (Summary)
2974 @findex wl-summary-target-mark-region
2975 Put target mark @samp{*} on the messages in the specified region.
2976 (@code{wl-summary-target-mark-region})
2977
2978 @item m A
2979 @kindex m A (Summary)
2980 @findex wl-summary-target-mark-reply-with-citation
2981 Prepare a draft which cites all messages which have target mark @samp{*}.
2982 (@code{wl-summary-target-mark-reply-with-citation})
2983
2984 @item m f
2985 @kindex m f (Summary)
2986 @findex wl-summary-target-mark-forward
2987 Prepare a draft which forwards all messages which have target mark @samp{*}.
2988 (@code{wl-summary-target-mark-forward})
2989
2990 @item m U
2991 @kindex m U (Summary)
2992 @findex wl-summary-target-mark-uudecode
2993 Uudecode the messages which have target mark @samp{*}.
2994 (@code{wl-summary-target-mark-uudecode})
2995
2996 @item m ?
2997 @kindex m ? (Summary)
2998 @findex wl-summary-target-mark-pick
2999 Pick messages from the @samp{*} marked messages. 
3000 That is, @samp{*} marks on the messages are remained
3001 if the specified condition is satisfied.
3002 (@code{wl-summary-target-mark-pick})
3003
3004 @item M-t
3005 @kindex M-t (Summary)
3006 @findex wl-toggle-plugged
3007 Toggle offline/online status of Wanderlust.
3008 (@code{wl-toggle-plugged})
3009
3010 @item C-t
3011 @kindex C-t (Summary)
3012 Start Wanderlust's plug-status manager.
3013 (@code{wl-plugged-change})
3014
3015 @item C-c C-o
3016 @kindex C-c C-o (Summary)
3017 @findex wl-jump-to-draft-buffer
3018 Move to the draft buffer if available.  If multiple draft buffer exists,
3019 moved to one after another.  If prefix argument is specified, load draft
3020 folder's message to the draft buffer and jump to it.
3021 (@code{wl-jump-to-draft-buffer})
3022 @end table
3023
3024 @section Customize variables
3025
3026 @table @code
3027 @item wl-summary-move-order
3028 @vindex wl-summary-move-order
3029 The initial setting is 'unread.
3030 Specify cursor moving policy.
3031 If you want to precede new messages, set 'new.
3032 If you want to precede unread messages, set 'unread.
3033 If nil, proceed to next message.
3034
3035 @item wl-auto-select-first
3036 @vindex wl-auto-select-first
3037 The initial setting is nil.
3038 If non-nil, first message is automatically displayed.
3039
3040 @item wl-auto-select-next
3041 @vindex wl-auto-select-next
3042 The initial setting is nil.
3043 If non-nil, jump to next summary automatically.
3044 If 'unread, jump to next unread folder's summary after confirmation.
3045 If 'skip-no-unread, unread folders are automatically skipped.
3046
3047 @item wl-thread-insert-opened
3048 @vindex wl-thread-insert-opened
3049 The initial setting is nil.
3050 If non-nil, thread is inserted as opened.
3051
3052 @item wl-thread-open-reading-thread
3053 @vindex wl-thread-open-reading-thread
3054 The initial setting is t.
3055 If non-nil, reading thread is automatically opened though it is closed thread.
3056
3057 @item wl-summary-exit-next-move
3058 @vindex wl-summary-exit-next-move
3059 The initial setting is t.
3060 If non-nil, move to next folder at summary exit.
3061
3062 @item wl-folder-move-cur-folder
3063 @vindex wl-folder-move-cur-folder
3064 The initial setting is nil.
3065 If non-nil, cursor position on the folder is moved.
3066
3067 @item wl-summary-weekday-name-lang
3068 @vindex  wl-summary-weekday-name-lang
3069 The initial setting is "ja".
3070 Specify language of the weekday.
3071 "en" displays English, "fr" displays French, "de" displays Deutsch.
3072
3073 @item wl-summary-fix-timezone
3074 @vindex  wl-summary-fix-timezone
3075 The initial setting is "JST".
3076 Timezone to adjust summary's timezone.
3077 If nil, adjust to UTC.
3078
3079 @item wl-use-petname
3080 @vindex  wl-use-petname
3081 The initial setting is t.
3082 If non-nil, sender part displays nickname.
3083
3084 @item wl-break-pages
3085 @vindex  wl-break-pages
3086 The initial setting is t.
3087 If non-nil, message is splitted as pages by @samp{^L}.
3088
3089 @item wl-message-window-size
3090 @vindex  wl-message-window-size
3091 The initial setting is '(1 . 4).
3092 A cons cell to specify the rate of summary and message window.
3093 car:cdr corresponds summary:message.
3094
3095 @item wl-summary-recenter
3096 @vindex  wl-summary-recenter
3097 The initial setting is t.
3098 If non-nil, cursor point is moved to the center of the summary window.
3099
3100 @item wl-summary-indent-length-limit
3101 @vindex  wl-summary-indent-length-limit
3102 The initial setting is 46.
3103 Specify the limit of thread indent level.
3104 If nil, max indent level is unlimited.
3105
3106 @item wl-summary-no-from-message
3107 @vindex  wl-summary-no-from-message
3108 The initial setting is "nobody@@nowhere?".
3109 A string which is displayed when there's no From: field in the message.
3110
3111 @item wl-summary-no-subject-message
3112 @vindex  wl-summary-no-subject-message
3113 The initial setting is "(WL:No Subject in original.)".
3114 A string which is displayed when there's no Subject: field in the message.
3115
3116 @item wl-summary-width
3117 @vindex  wl-summary-width
3118 The initial setting is 80.
3119 Width of summary line. If nil, summary line's width is as is.
3120
3121 @item wl-use-folder-petname
3122 @vindex  wl-use-folder-petname
3123 The initial setting is '(modeline).
3124 A list of display policy (symbol) of folder nickname.
3125 Available symbols are:
3126
3127 @table @code
3128 @item modeline
3129 Display folder petname on modeline.
3130 @item ask-folder
3131 Destination folder is notified as nickname if
3132 @code{wl-auto-select-next} is non-nil.
3133 @item read-folder
3134 You can input folder name by nickname in the function
3135 @code{wl-summary-read-folder}.
3136 @end table
3137
3138 @item wl-summary-move-direction-toggle
3139 @vindex  wl-summary-move-direction-toggle
3140 The initial setting is t.
3141 If non-nil, last executed @kbd{p}, @kbd{P}, @kbd{n}, @kbd{N} toggles
3142 the direction of cursor move.
3143 If you want to aware of reading direction, set this to t.
3144
3145 @item wl-from-width
3146 @vindex wl-from-width
3147 The initial setting is 17.
3148 Width of sender part of summary line.
3149
3150 @item wl-summary-divide-thread-when-subject-changed
3151 @vindex wl-summary-divide-thread-when-subject-changed
3152 The initial setting is nil.
3153 If non-nil, thread is splitted if the subject is changed.
3154
3155 @item wl-summary-search-via-nntp
3156 @vindex wl-summary-search-via-nntp
3157 The initial setting is 'confirm.
3158 If non-nil and @code{wl-summary-jump-to-msg-by-message-id} failed,
3159 call @code{wl-summary-jump-to-msg-by-message-id-via-nntp} and
3160 search message from the NNTP server @code{elmo-default-nntp-server}.
3161 The value of @code{elmo-default-nntp-user}, @code{elmo-default-nntp-port}, 
3162 @code{elmo-default-nntp-ssl} are used. If 'confirm, server name can
3163 be specified. You can specify NNTP folder format like 
3164 @samp{-:username@@servername:119!}.
3165
3166 @item wl-summary-keep-cursor-command
3167 @vindex wl-summary-keep-cursor-command
3168 The initial setting is 
3169 '(wl-summary-goto-folder wl-summary-goto-last-visited-folder).
3170 When you entered to summary by these commands and the target summary
3171 buffer already exists, summary status is not automatically updated and 
3172 cursor position is saved.
3173
3174 @item wl-summary-update-confirm-threshold
3175 @vindex wl-summary-update-confirm-threshold
3176 The initial setting is 500.
3177 If updated message number is larger than this value, 
3178 confirm whether drop them or not.
3179
3180 @item wl-summary-always-sticky-folder-list
3181 @vindex wl-summary-always-sticky-folder-list
3182 The initial setting is nil.
3183 @code{wl-summary-always-sticky-folder-list} specifies the folders that are
3184 automatically sticked. Each element is regexp of folder name.
3185
3186 @item wl-summary-reserve-mark-list
3187 @vindex wl-summary-reserve-mark-list
3188 The initial setting is '("o" "O" "D").
3189 If a message is already marked as temporal marks in this list, 
3190 the message is not marked by any mark command.
3191
3192 @item wl-summary-skip-mark-list
3193 @vindex wl-summary-skip-mark-list
3194 The initial setting is '("D").
3195 If a message is already marked as temporal marks in this list, 
3196 the message is skipped at cursor move.
3197
3198 @item wl-fetch-confirm-threshold
3199 @vindex wl-fetch-confirm-threshold
3200 The initial setting is 30000 (bytes).
3201 If displaying message has larger size than this value,
3202 Wanderlust confirms whether fetch the message or not.
3203 If nil, the message is fetched without confirmation.
3204
3205 @item wl-prefetch-threshold
3206 @vindex wl-prefetch-threshold
3207 The initial setting is 30000 (bytes). 
3208 If prefetching message has larger size than this value and
3209 @code{wl-prefetch-confirm} is non-nil,
3210 Wanderlust confirms whether prefetch the message or not.
3211 If @code{wl-prefetch-threshold} is nil, the message is prefetched
3212 without confirmation.
3213
3214 @item wl-prefetch-confirm
3215 @vindex wl-prefetch-confirm
3216 The initial setting is t. If non-nil, 
3217 Wanderlust confirms whether prefetch the message or not if the
3218 message has larger size than @code{wl-prefetch-threshold}.
3219
3220 @item wl-cache-fetch-threshold
3221 @vindex wl-cache-fetch-threshold
3222 The initial setting is 30000 (bytes).
3223 The messages which have larger size than @code{wl-fetch-confirm-threshold}
3224 are skipped buffer caching mechanism. If nil, any messages are prefetched by
3225 buffer caching mechanism.
3226
3227 @item elmo-imap4-use-cache
3228 @vindex elmo-imap4-use-cache
3229 The initial setting is t.
3230 If non-nil, messages read via IMAP4 are cached.
3231
3232 @item elmo-nntp-use-cache
3233 @vindex elmo-nntp-use-cache
3234 The initial setting is t.
3235 If non-nil, messages read via NNTP are cached.
3236
3237 @item elmo-pop3-use-cache
3238 @vindex elmo-pop3-use-cache
3239 The initial setting is t.
3240 If non-nil, messages read via POP3 are cached.
3241 @end table
3242
3243 @c
3244 @c  Message
3245 @c
3246 @node Message, Draft, Summary, Top
3247 @chapter Message Buffer
3248
3249 Message Buffers utilize MIME-View mode of SEMI/tm.
3250 For operational procedures and key bindings, refer to respective
3251 documents.
3252 @xref{MIME-View, , ,mime-ui-ja, a MIME user interface for GNU Emacs}.
3253
3254 @kbd{p} at the top of a message or @kbd{n} at the bottom of a message
3255 brings you back to Summary mode.
3256 @kbd{l} toggles display of Summary mode buffer.
3257
3258 @section Key Bindings
3259
3260 @table @kbd
3261
3262 @item l
3263 @kindex l (Message)
3264 @findex wl-message-toggle-disp-summary
3265 Toggles display of Summary mode buffer.
3266 (@code{wl-message-toggle-disp-summary})
3267
3268 @item Button-2
3269 @findex wl-message-refer-article-or-url
3270 @kindex Button-2 (Message)
3271 Assumes Message-ID at the mouse pointer, and shows the corresponding
3272 message if found.
3273 (@code{wl-message-refer-article-or-url})
3274
3275 @item Button-4 (upward movement of a wheel)
3276 @kindex Button-4 (Message)
3277 @findex wl-message-wheel-down
3278 Scrolls the message backwards.  When the top of the message is hit,
3279 moves to the previous message.
3280 (@code{wl-message-wheel-down})
3281
3282 @item Button-5 (downward movement of a wheel)
3283 @kindex Button-5 (Message)
3284 @findex wl-message-wheel-up
3285 Scrolls the message forward.  When the bottom of the message is hit,
3286 moves to the next message.
3287 (@code{wl-message-wheel-up})
3288 @end table
3289
3290 @section Customizable Variables
3291
3292 @table @code
3293 @item wl-message-window-size
3294 @vindex wl-message-window-size
3295 Initial setting is @code{'(1 . 4)}.  It is a cons cell and the ratio of
3296 its car and cdr value corresponds to the ratio of Summary and Message
3297 windows.
3298 @end table
3299
3300 @c
3301 @c  Draft
3302 @c
3303 @node Draft, Disconnected Operations, Message, Top
3304 @chapter Draft Buffer
3305
3306 At Summary mode, pressing @kbd{w} and the like creates a new draft
3307 buffer.  You can edit and send mail and news articles in this buffer.
3308
3309 @section Tips
3310
3311 Basically it is Emacs-standard mail mode.
3312
3313 @subsection Address Completion
3314
3315 Initially, the cursor is at the To: field.  Fill in recipients
3316 addresses.  @kbd{@key{TAB}} completes them.
3317
3318 If you want to submit a news article, add Newsgroups: field by
3319 yourself.  Field names can be completed by @kbd{@key{TAB}}.
3320
3321 If you save the draft buffer you are editing, it is appended to the
3322 folder specified by @code{wl-draft-folder}.
3323
3324 Using FCC: field, you can specify the folder to which a copy of the
3325 message is saved when it is sent.
3326
3327 @subsection Editing Messages
3328
3329 Multi-part editing utilize MIME edit mode of SEMI/tm.  For procedures of
3330 editing, refer to respective documents.
3331 @xref{Mail Methods, , ,mime-ui-ja, a MIME user interface for GNU Emacs}.
3332
3333 @subsection Dynamic Modification of Messages
3334 @vindex wl-draft-config-alist
3335
3336 @c @cindex Change Message
3337 @c @cindex Message, Change Dynamic
3338
3339 You can set @code{wl-draft-config-alist} so that header and body of the
3340 message will automatically modified depending on information of header
3341 and others.
3342
3343 The initial setting of @code{wl-draft-config-alist} is nil.
3344
3345 In the example below, the header is modified when
3346 @code{wl-draft-send-and-exit} or @code{wl-draft-send} is invoked.
3347 You can set @code{wl-interactive-send} to non-nil so as to confirm
3348 changes before sending the message.
3349
3350 @lisp
3351 (setq wl-draft-config-alist
3352       '(((string-match "aaa.ne.jp$" (system-name))
3353          ;; @r{applied if the expression is non-nil}
3354          (wl-smtp-posting-server . "mailserver-B")
3355          (wl-nntp-posting-server . "newsserver-B")
3356          ;; @r{settings of temporary variables}
3357          )
3358         ("^To: .*user@@aaa.bbb.com"
3359          ;; @r{applied if it matches the header of the draft buffer}
3360          ("Organization" . (format "Go %s" my-webpage)))
3361                        ;; @r{you can write elisp expressions here (eval only)}
3362          (top . "Hello.\n")    ;; @r{inserted at the top of the body}
3363          (bottom . "\nBye.\n") ;; @r{inserted at the bottom of the body}
3364         ))
3365 @end lisp
3366
3367 The format of @code{wl-draft-config-alist} is:
3368
3369 @example
3370 '(("regexp of the header" or elisp expression
3371   ("Field" . value(elisp expression))
3372    (variable . value(elisp expression))
3373    (sub-function . value(elisp expression))
3374    function
3375    @dots{})
3376   ("regexp of the header" or elisp expression
3377    ("Field" . value(elisp expression))
3378    @dots{}))
3379 @end example
3380
3381 Per default, there are 10 following sub-functions.
3382
3383 @example
3384 'header:      Inserts the specified string at the bottom of the header.
3385 'header-file: Inserts the specified file at the bottom of the header.
3386 'x-face:      Inserts "X-Face" field with the content of the specified file.
3387 'top:         Inserts the specified string at the top of the body.
3388 'top-file:    Inserts the specified file at the top of the body.
3389 'body:        Replaces the body with the specified string.
3390               Specifying nil deletes the entire body string.
3391 'body-file:   Replaces the body with the content of the specified file.
3392 'bottom:      Inserts the specified string at the bottom of the body.
3393 'bottom-file: Inserts the specified file at the top of the body.
3394 'template:    Applies the specified template.
3395               (refer to the next subsection)
3396 @end example
3397
3398 These are defined in @code{wl-draft-config-sub-func-alist} and you can
3399 change them or add your own functions.  If you read the code, you can
3400 easily find how to write the functions.
3401
3402 At the first of each item, "a regular expression of the header" or an
3403 elisp expression should be specified.  In the case of an elisp
3404 expression, the item is applied when the expression is evaluated
3405 non-nil.
3406
3407 Per default, when multiple items match or are evaluated non-nil, all
3408 such items are applied, but if you set a variable
3409 @code{wl-draft-config-matchone} to t, only the first matching one is
3410 applied.
3411
3412 At the second of the item, a cons or a list of functions should be
3413 specified.  The car part of the cons should be a header field, a
3414 variable, or a sub-function.  When a header field is specified, the field
3415 will be modified.  If a variable is specified, the value of the variable
3416 will be modified temporarily.
3417
3418 In the cdr part of a cons, not only a variable but also an elisp
3419 expression can be specified as is.  If the car part is a header field
3420 and the cdr part is nil, the field will be deleted.
3421
3422 See the next example as well:
3423
3424 @lisp
3425 (setq wl-draft-config-alist
3426       '((reply                         ;; @r{(1)}
3427          "X-ML-Name: \\(Wanderlust\\|emacs-mime-ja\\|apel-ja\\)"
3428          ;; @r{applied if it matches the header of the buffer being replied}
3429          (body . "  Hello.\n")
3430          (template . "default")
3431          )))
3432 @end lisp
3433
3434 As in the (1) above, if a header regexp is prepended with @code{reply},
3435 it is applied when the draft is prepared by @code{wl-summary-reply} for
3436 example, and when it matches the header being replied.  It is ignored
3437 when there is no buffer being replied, like after @code{wl-draft} was
3438 invoked.
3439
3440 Note that @code{wl-draft-config-alist} is applied only once when
3441 @code{wl-draft-send-and-exit} or @code{wl-draft-send} is invoked.
3442 Therefore, if you want to apply @code{wl-draft-config-alist} again after 
3443 aborting transmission, execute @kbd{C-c C-e}
3444 (@code{wl-draft-config-exec}).
3445
3446 If you want to apply @code{wl-draft-config-alist} when a draft buffer is 
3447 prepared, do the following:
3448
3449 @lisp
3450 (add-hook 'wl-mail-setup-hook 'wl-draft-config-exec)
3451 @end lisp
3452
3453 @subsection Inserting Templates
3454 @cindex Template
3455 @cindex Apply Template
3456
3457 Set a variable @code{wl-template-alist}, and type
3458 @kbd{C-c C-j} or @kbd{M-x wl-template-select}
3459 in the draft buffer.
3460
3461 The format of @code{wl-template-alist} is almost the same as
3462 @code{wl-draft-config-alist}.
3463
3464 @lisp
3465 (setq wl-template-alist
3466       '(("default"
3467          ("From" . wl-from)
3468          ("Organization" . "~/.wl sample")
3469          (body . "Hello.\n"))
3470         ("report"
3471          (template . "default")                 ;; @r{(a)}
3472          ("To" . "jousi@@kaisha.jp")
3473          ("Subject" . "Report")
3474          (body-file . "~/work/report.txt")
3475          )
3476         ))
3477 @end lisp
3478
3479 As you can see, the only difference is item (template) names such as
3480 "default" and "report", instead of a regexp of header.
3481 Because definition of each item is the same as
3482 @code{wl-draft-config-alist}, you can call another template, like (a).
3483
3484 Executing the command @code{wl-template-select} results in template
3485 selection, but the result differs depending on variable
3486 @code{wl-template-visible-select}.
3487
3488 If @code{wl-template-visible-select} is t (default), a buffer window is
3489 shown below the draft buffer.  You can select a template by @kbd{n} and
3490 @kbd{p} seeing the buffer window.
3491
3492 Press the RETURN key and the template is actually applied to the draft
3493 buffer.  If you press @kbd{q}, nothing is applied.  In addition, you can 
3494 adjust the window size by @code{wl-template-buffer-lines}.
3495
3496 If @code{wl-template-visible-select} is nil, you should type the name of
3497 the template in the mini buffer.
3498
3499 As shown in the example in @code{wl-draft-config-alist}, you can select
3500 "default" template by writing:
3501
3502 @example
3503 (template . "default")
3504 @end example
3505
3506 @noindent
3507 @subsection Sending mail by POP-before-SMTP
3508 @cindex POP-before-SMTP
3509
3510 You can send mail by POP-before-SMTP with this single line:
3511
3512 @lisp
3513 (setq wl-draft-send-mail-func 'wl-draft-send-mail-with-pop-before-smtp)
3514 @end lisp
3515
3516 @noindent
3517 Configure the following variables if you need.
3518
3519 @table @code
3520 @item wl-pop-before-smtp-user
3521 The POP user name for POP-before-SMTP authentication.
3522 If unset, @code{elmo-default-pop3-user} is used.
3523
3524 @item wl-pop-before-smtp-server
3525 The POP server name for POP-before-SMTP authentication.
3526 If unset, @code{elmo-default-pop3-server} is used.
3527
3528 @item wl-pop-before-smtp-authenticate-type
3529 The POP authentication method for POP-before-SMTP authentication.
3530 If unset, @code{elmo-default-pop3-authenticate-type} is used.
3531
3532 @item wl-pop-before-smtp-port
3533 The POP port number for POP-before-SMTP authentication.
3534 If unset, @code{elmo-default-pop3-port} is used.
3535
3536 @item wl-pop-before-smtp-ssl
3537 If non-nil, POP connection is established using SSL.
3538 If 'starttls, STARTTLS (RFC2595) connection will be established.
3539 If unset, @code{elmo-default-pop3-ssl} is used.
3540 @end table
3541
3542 If variables for POP-before-SMTP (@code{wl-pop-before-smtp-*}) are 
3543 unset, settings for POP folders (@code{elmo-default-pop3-*}) are
3544 used.
3545 Therefore, if SMTP server and POP server are actually the same, and if
3546 POP folder per default (such as @samp{&}) is available, no settings are
3547 required.
3548
3549 Refer to the following URL about POP-before-SMTP.
3550
3551 @example
3552 http://spam.ayamura.org/tools/smPbS.html
3553 http://www.iecc.com/pop-before-smtp.html
3554 @end example
3555
3556 @section Key Bindings
3557 @cindex Keybind, Draft Mode
3558 @cindex Keybind, Draft Buffer
3559
3560 @table @kbd
3561
3562 @item C-c C-y
3563 @kindex C-c C-y (Draft)
3564 @findex wl-draft-yank-original
3565 Cites the content of the current message buffer.
3566 (@code{wl-draft-yank-original})
3567
3568 @item C-c C-p
3569 @kindex C-c C-p (Draft)
3570 @findex wl-draft-preview-message
3571 Previews the content of the current draft.
3572 This is useful for previewing MIME multi-part messages.
3573 (@code{wl-draft-preview-message})
3574
3575 @item C-c C-s
3576 @kindex C-c C-s (Draft)
3577 @findex wl-draft-send
3578 Sends the content of the current draft.  Does not erase the draft buffer.
3579 This is useful for sending multiple messages, which are a little different
3580 from each other.
3581 (@code{wl-draft-send})
3582
3583 @item C-c C-c
3584 @kindex C-c C-c (Draft)
3585 @findex wl-draft-send-and-exit
3586 Sends the content of the current draft and erases the draft buffer.
3587 (@code{wl-draft-send-and-exit})
3588
3589 @item C-x C-s
3590 @kindex C-x C-s (Draft)
3591 @findex wl-draft-save
3592 Save the current draft.
3593 (@code{wl-draft-save})
3594
3595 @item C-c C-k
3596 @kindex C-c C-k (Draft)
3597 @findex wl-draft-kill
3598 Kills the current draft.
3599 (@code{wl-draft-kill})
3600
3601 @c @item C-x k
3602 @c @kindex C-x k (Draft)
3603 @c @findex wl-draft-mimic-kill-buffer
3604 @c Kills the current draft.
3605 @c (@code{wl-draft-mimic-kill-buffer})
3606
3607 @item C-c C-z
3608 @kindex C-c C-z (Draft)
3609 @findex wl-draft-save-and-exit
3610 Saves the current draft, and erases the draft buffer.
3611 This is useful if you want to suspend editing of the draft.
3612 You can resume editing by pressing @kbd{E} (@code{wl-summary-reedit}) in
3613 the @samp{+draft} folder.
3614 (@code{wl-draft-save-and-exit})
3615
3616 @item C-c C-r
3617 @kindex C-c C-r (Draft)
3618 @findex wl-caesar-region
3619 Encodes or decodes the specified region in Caesar cipher.
3620 (@code{wl-caesar-region})
3621
3622 @item M-t
3623 @kindex M-t (Draft)
3624 @findex wl-toggle-plugged
3625 Toggles off-line/on-line states of Wanderlust.
3626 (@code{wl-toggle-plugged})
3627
3628 @item C-c C-o
3629 @kindex C-c C-o (Draft)
3630 @findex wl-jump-to-draft-buffer
3631 Jumps to the other draft buffer, if exists.
3632 With prefix argument, reads a file (if any) from the draft folder when
3633 there is no such buffer.
3634 (@code{wl-jump-to-draft-buffer})
3635
3636 @item C-c C-e
3637 @kindex C-c C-e (Draft)
3638 @findex wl-draft-config-exec
3639 Applies @code{wl-draft-config-alist}.
3640 (@code{wl-draft-config-exec})
3641
3642 @item C-c C-j
3643 @kindex C-c C-j (Draft)
3644 @findex wl-template-select
3645 Selects a template.
3646 (@code{wl-template-select})
3647
3648 @item C-c C-a
3649 @kindex C-c C-a (Draft)
3650 @findex wl-draft-insert-x-face-field
3651 Inserts the content of a file @file{~/.xface} (the value of the variable
3652 @code{wl-x-face-file}) as an X-Face field in the draft buffer.
3653
3654 There should be encoded X-Face strings as a content of a file @file{~/.xface}.
3655 (@code{wl-draft-insert-x-face-field})
3656 @end table
3657
3658 @section Customizable Variables
3659
3660 @table @code
3661 @item wl-subscribed-mailing-list
3662 @vindex wl-subscribed-mailing-list
3663 The initial setting is nil.
3664 Mailing lists to which you subscribe.
3665 If any of these are contained in To or Cc field of a reply draft,
3666 removes your own address from Mail-Followup-To and Cc.
3667 And if any of these are contained in To or Cc field of a message to be
3668 automatically re-filed, the destination folder will be leaned in
3669 connection with the address.
3670 @item wl-insert-mail-followup-to
3671 @vindex wl-insert-mail-followup-to
3672 The initial setting is nil.
3673 If non-nil, Mail-Followup-To field is automatically inserted in the
3674 draft buffer.
3675
3676 @item wl-insert-mail-reply-to
3677 @vindex wl-insert-mail-reply-to
3678 The initial setting is nil.
3679 If non-nil, Mail-Reply-To field is automatically inserted in the
3680 draft buffer.
3681
3682 @item wl-auto-insert-x-face
3683 @vindex wl-auto-insert-x-face
3684 The initial setting is t.
3685 If non-nil and there is an encoded X-Face string in a file
3686 @file{~/.xface} (the value of the variable @code{wl-x-face-file}),
3687 inserts it as an X-Face field in the draft buffer.
3688 If nil, it is not automatically inserted. Press @kbd{C-c C-a} to insert.
3689
3690 @item wl-insert-message-id
3691 @vindex wl-insert-message-id
3692 The initial setting is t.
3693 If non-nil, Message-ID field is automatically inserted on the
3694 transmission.
3695
3696 @item wl-local-domain
3697 @vindex wl-local-domain
3698 The initial setting is nil.
3699 If nil, the return value of the function @code{system-name} will be
3700 used as the domain part of Message-ID.
3701
3702 If @code{system-name} does not return FQDN (i.e. the full name of the
3703 host, like @samp{smtp.gohome.org}), you @strong{must} set this variable to the
3704 string of the local domain name without hostname (like @samp{gohome.org}). 
3705 That is, a concatenation of @code{system-name} "." @code{wl-local-domain} 
3706 is used as domain part of the Message-ID.
3707
3708 If your terminal does not have global IP, set the value of
3709 @code{wl-message-id-domain}.
3710 (You might be beaten up on the Net News if you use invalid Message-ID.)
3711
3712 Moreover, 
3713 concatenation of @code{system-name} "." @code{wl-local-domain} 
3714 will be used as an argument to the HELO command in SMTP.
3715
3716 @item wl-message-id-domain
3717 @vindex wl-message-id-domain
3718 The initial setting is nil.
3719 If non-nil, this value is used as a domain part of the Message-ID.
3720 If your terminal does not have global IP, set unique string to this value
3721 (e.x. your e-mail address).
3722
3723 @item wl-message-id-domain
3724 @vindex wl-message-id-domain
3725 The initial setting is nil.
3726 If nil, the return value of the function @code{system-name} will be
3727 used as the domain part of Message-ID.
3728 If @code{system-name} does not return FQDN (i.e. the full name of the
3729 host, like smtp.gohome.org), you @strong{must} set this variable to the
3730 string of the full name of the host.  Otherwise, you might be beaten up
3731 on the Net News.
3732
3733 @item wl-draft-config-alist
3734 @vindex wl-draft-config-alist
3735 The initial setting is nil.
3736 Modifies the draft message just before the transmission.
3737 The content of @code{wl-draft-config-alist} will be automatically
3738 applied only once on the transmission.  If you want to apply it
3739 manually, use @kbd{C-c C-e}.  This command can be used many times.
3740
3741 @item wl-template-alist
3742 @vindex wl-template-alist
3743 The initial setting is nil.
3744 This variable specifies the template to be applied in the draft buffer.
3745
3746 @item wl-draft-config-matchone
3747 @vindex wl-draft-config-matchone
3748 The initial setting is nil.
3749 If non-nil, only the first matching item is used when
3750 @code{wl-draft-config-alist} is applied.  If nil, all matching items are 
3751 used.
3752
3753 @item wl-template-visible-select
3754 @vindex wl-template-visible-select
3755 The initial setting is t.
3756 If non-nil, you can preview the result of the template selection in
3757 another window.
3758
3759 @item wl-template-confirm
3760 @vindex wl-template-confirm
3761 The initial setting is nil.
3762 If non-nil, asks for confirmation when you press the enter key to select
3763 template while previewing.
3764
3765 @item wl-template-buffer-lines
3766 @vindex wl-template-buffer-lines
3767 The initial setting is 7.
3768 If @code{wl-template-visible-select} is non-nil, this variable specifies 
3769 the size of the preview window.
3770
3771 @item wl-draft-reply-buffer-style
3772 @vindex wl-draft-reply-buffer-style
3773 The initial setting is 'split.
3774 'split or 'full can be specified.
3775 In the case of 'full, the whole frame will be used for a reply draft
3776 buffer when it is prepared.
3777
3778 @item wl-from
3779 @vindex wl-from
3780 The initial setting is the value of the variable @code{user-mail-address}.
3781 The value of this variable is inserted as a From field of the draft when
3782 it is prepared.
3783
3784 @item wl-envelope-from
3785 @vindex wl-envelope-from
3786 The initial setting is nil.
3787 The value of this variable is used for envelope from (MAIL FROM).
3788 If nil, the address part of @code{wl-from} is used.
3789
3790 @item wl-user-mail-address-list
3791 @vindex wl-user-mail-address-list
3792 The initial setting is nil.
3793 This is the User's address list.  If you have multiple addresses,
3794 set this variable.
3795
3796 @item wl-fcc
3797 @vindex wl-fcc
3798 The initial setting is nil.
3799 If non-nil, the value of this variable is inserted as a FCC of the draft
3800 when it is prepared.
3801
3802 @item wl-bcc
3803 @vindex wl-bcc
3804 The initial setting is nil.
3805 If non-nil, the value of this variable is inserted as a Bcc of the draft
3806 when it is prepared.
3807
3808 @item wl-reply-subject-prefix
3809 @vindex wl-reply-subject-prefix
3810 The initial setting is "Re: ".
3811 In the Subject of the reply draft, this string is prepended to the
3812 Subject of being replied.
3813
3814 @item wl-draft-enable-queuing
3815 @vindex wl-draft-enable-queuing
3816 The initial setting is t.
3817 This flag controls off-line transmission.  If non-nil, the draft is
3818 sent off-line.
3819
3820 @item wl-auto-flush-queue
3821 @vindex wl-auto-flush-queue
3822 The initial setting is t.
3823 This flag controls automatic transmission of the queue when Wanderlust
3824 becomes on-line.  If non-nil, the queue is automatically transmitted
3825 (with confirmation by @code{y-or-n-p}).  If you want to transmit it
3826 manually, press @kbd{F} in the folder mode.
3827
3828 @item wl-draft-always-delete-myself
3829 @vindex wl-draft-always-delete-myself
3830 If non-nil, always removes your own address from To and CC when you are
3831 replying to the mail addressed to you.
3832
3833 @item wl-smtp-posting-server
3834 @vindex wl-smtp-posting-server
3835 The initial setting is nil.
3836 This is the SMTP server name for mail transmission.
3837
3838 @item wl-smtp-posting-user
3839 @vindex wl-smtp-posting-user
3840 The initial setting is nil.
3841 This is the user name for SMTP AUTH authentication.
3842 If nil, @code{smtp-authenticate-user} is used.
3843
3844 @item wl-smtp-authenticate-type
3845 @vindex wl-smtp-authenticate-type
3846 The initial setting is nil.
3847 This is the authentication method for SMTP AUTH authentication.
3848 If nil, @code{smtp-authenticate-type} is used.
3849 If it is still nil, authentication will not be carried out.
3850
3851 @item wl-smtp-connection-type
3852 @vindex wl-smtp-connection-type
3853 The initial setting is nil.
3854 This variable specifies how to establish SMTP connections.
3855 If nil, @code{smtp-connection-type} is used.
3856 If it is 'starttls, STARTTLS (RFC2595) is used.
3857
3858 @item wl-nntp-posting-server
3859 @vindex wl-nntp-posting-server
3860 The initial setting is nil.
3861 This is the NNTP server name used for news submission.
3862 If nil, @code{elmo-default-nntp-server} is used.
3863
3864 @item wl-nntp-posting-user
3865 @vindex wl-nntp-posting-user
3866 The initial setting is nil.
3867 This is the user name for AUTHINFO authentication on news submission.
3868 If nil, @code{elmo-default-nntp-user} is used.
3869 If it is still nil, AUTHINFO authentication will not be carried out.
3870
3871 @item wl-nntp-posting-port
3872 @vindex wl-nntp-posting-port
3873 The initial setting is nil.
3874 This is the port number of the NNTP server used for news submission.
3875 If nil, @code{elmo-default-nntp-server} is used.
3876
3877 @item wl-nntp-posting-ssl
3878 @vindex wl-nntp-posting-ssl
3879 The initial setting is nil.
3880 If nil, @code{elmo-default-nntp-ssl} is evaluated.
3881 If non-nil, SSL is used for news submission.
3882 If 'starttls, STARTTLS (RFC2595) connection will be established.
3883
3884 @item wl-pop-before-smtp-user
3885 @vindex wl-pop-before-smtp-user
3886 The initial setting is nil.
3887 This is the POP user name for POP-before-SMTP.
3888 If it is nil, @code{elmo-default-pop3-user} is used.
3889
3890 @item wl-pop-before-smtp-server
3891 @vindex wl-pop-before-smtp-server
3892 The initial setting is nil.
3893 This is the POP server name for POP-before-SMTP.
3894 If it is nil, @code{elmo-default-pop3-server} is used.
3895
3896 @item wl-pop-before-smtp-authenticate-type
3897 @vindex wl-pop-before-smtp-authenticate-type
3898 The initial setting is nil.
3899 This is the authentication method for POP-before-SMTP authentication.
3900 If it is nil, @code{elmo-default-pop3-authenticate} is used.
3901
3902 @item wl-pop-before-smtp-port
3903 @vindex wl-pop-before-smtp-port
3904 The initial setting is nil.
3905 This is the POP port number for POP-before-SMTP.
3906 If it is nil, @code{elmo-default-pop3-port} is used.
3907
3908 @item wl-pop-before-smtp-ssl
3909 @vindex wl-pop-before-smtp-ssl
3910 The initial setting is nil.
3911 This flag controls the use of SSL for POP-before-SMTP.
3912 If it is nil, @code{elmo-default-pop3-ssl} is used.
3913
3914 @item wl-draft-queue-save-variables
3915 @vindex wl-draft-queue-save-variables
3916 Specifies a list of variable to which queued messages are saved on the
3917 off-line transmission.
3918
3919 @item wl-draft-sendlog
3920 @vindex wl-draft-sendlog
3921 The initial setting is t.
3922 If t, transmission log is written in @file{~/.elmo/sendlog}.
3923 It is written when drafts are sent by smtp or qmail, and when they are
3924 saved into folders by fcc or queuing (it is written even if the
3925 transmission fails).
3926 But transmission by im-wl.el is not written in the sendlog and left to
3927 the logging function of imput.
3928
3929 @item wl-draft-sendlog-max-size
3930 @vindex wl-draft-sendlog-max-size
3931 The initial setting is 20000 (in bytes).
3932 If @code{wl-draft-sendlog} is t, the log is rotated when it grows beyond 
3933 the size specified by this variable.
3934 @end table
3935
3936
3937 @c
3938 @c  Disconnected Operations
3939 @c
3940 @node Disconnected Operations, Expire and Archive, Draft, Top
3941 @chapter Off-line Management
3942 @cindex Disconnected Operations
3943
3944 @section Off-line State
3945
3946 Wanderlust has on-line and off-line states.
3947 In the off-line state, you cannot access messages via network, unless
3948 they are cached.
3949
3950 @samp{[ON]} in the mode line indicates the on-line state.
3951 @samp{[--]} in the mode line indicates the off-line state.
3952 In folder or summary modes, press @kbd{M-t} to switch between off-
3953 and on-line.
3954
3955 You can invoke Wanderlust in the off-line state by setting
3956 @code{wl-plugged} to nil in @file{~/.wl} or anything appropriate.
3957
3958 In the off-line mode, @kbd{n} and @kbd{p} command in the summary mode
3959 ignores uncached messages.
3960
3961 Even in the off-line state, provided that relevant messages are cached,
3962 and the variable @code{elmo-enable-disconnected-operation} (described
3963 later) is non-nil, you can:
3964
3965 @itemize @minus
3966 @item transmit messages
3967 @item re-file and copy (IMAP4)
3968 @item create folders (IMAP4)
3969 @item mark (IMAP4)
3970 @item pre-fetch (IMAP4, NNTP)
3971 @end itemize
3972
3973 As soon as Wanderlust becomes on-line, such operations invoked
3974 off-line are reflected in the servers via network.
3975
3976 @section Transmission of Messages
3977
3978 You can send mail/news messages off-line (if you are using im-wl.el, it
3979 is irrelevant).  Messages sent off-line are accumulated in the queue
3980 folder, @samp{+queue}.  These messages are transmitted at once when
3981 Wanderlust becomes on-line.
3982
3983 You can visit @samp{+queue} in the off-line state and confirm content
3984 of messages in the queue.  You can also remove messages.  Removed messages
3985 are not transmitted even in the on-line state.
3986
3987 @section Re-file and Copy (IMAP4)
3988
3989 Re-file and copy operations to IMAP folders invoked during the off-line
3990 state are accumulated in the queue, and reflected in the server side
3991 when Wanderlust becomes on-line.  If you visit destination folders after
3992 off-line re-file or copy, it looks as if messages were appended even in
3993 off-line state.
3994
3995 For the safety reasons, messages re-filed off-line are removed from
3996 source folders only if their Message-ID match messages on the servers.
3997 While the queue is processed, messages that failed to be re-filed or
3998 copied to the specified folders are appended to the folder
3999 @samp{+lost+found}.
4000
4001 @section Creation of Folders (IMAP4)
4002
4003 You can create IMAP folders off-line.  The creation of folders are
4004 reflected in the servers when Wanderlust becomes on-line.  At that time, 
4005 if folders failed to be created on the servers for any reasons, messages
4006 re-filed to such folders are appended to the folder "+lost+found".
4007
4008 @section Marking (IMAP4)
4009
4010 Off-line changes in unread/read and importance mark @samp{$} information
4011 are also reflected in the servers when Wanderlust becomes on-line.
4012
4013 @section Pre-fetching (IMAP4, NNTP)
4014
4015 You can make reservations for pre-fetching messages in IMAP or NNTP
4016 folders.  Reserved messages are marked with @samp{!} but not cached
4017 yet.  When Wanderlust becomes on-line, they are pre-fetched from
4018 servers.
4019
4020 If the variable @code{elmo-enable-disconnected-operation} is nil, these
4021 off-line operations for IMAP4 and NNTP do not take place, and off-line
4022 re-file, copy or suchlike simply results in error.
4023
4024 Because off-line operations use cache files, it is a bad idea to erase
4025 them by hand; it may cause Wanderlust to malfunction.
4026
4027 If you want to remove caches, be sure to execute
4028 @kbd{M-x elmo-cache-expire-by-size}.
4029 @code{elmo-cache-expire-by-size} does not remove caches for messages
4030 relevant to off-line operations.
4031
4032 @section Switching On-line/Off-line per Server/Port
4033
4034 @kbd{M-t} described above switches networking states as a whole, but you 
4035 can switch on-line/off-line per server/port.
4036
4037 Pressing @kbd{C-t} in the folder or summary modes brings you in
4038 wl-plugged-mode shown below, in which you can change the plugged state
4039 for each port.
4040
4041 @example
4042 Queuing:[ON] AutoFlushQueue:[--] DisconnectedOperation:[ON]
4043 [ON](wl-plugged)
4044   [--]hosta
4045     [--]smtp        +queue: 2 msgs (1,2)        @dots{}@r{sending queue}
4046     [--]nntp(119)   +queue: 1 msg (3)           @dots{}@r{sending queue}
4047   [ON]hostb
4048     [--]imap4/cram-md5(143) %#mh/wl(prefetch-msgs:3,mark-as-important:1)
4049                             %inbox(delete-msgids:1)    @dots{}@r{dop queue}
4050     [ON]nntp(119)
4051     [ON]smtp
4052 @end example
4053
4054 The first line indicates status of the following three variables, and
4055 simply pressing @kbd{@key{SPC}} or @kbd{@key{RET}} in each labelled
4056 column modifies the values of these variables.
4057
4058 @example
4059 "Queuing"               wl-draft-enable-queuing
4060 "AutoFlushQueue"        wl-auto-flush-queue
4061 "DisconnectedOperation" elmo-enable-disconnected-operation
4062 @end example
4063
4064 where @samp{[ON]} means its value is t, and @samp{[--]} means nil.
4065
4066 The second and after lines indicate on-line/off-line states of servers
4067 and ports, where @samp{[ON]} stands for on-line and @samp{[--]} for
4068 off-line (in XEmacs, they are shown with icons).  Pressing
4069 @kbd{@key{SPC}} or @kbd{@key{RET}} in each line switches its state.
4070
4071 "sending queue" means messages accumulated in the folder @samp{+queue}
4072 for off-line transmission, and "dop queue" means off-line operations
4073 when @code{elmo-enable-disconnected-operation} is t.
4074 @c If the variable @code{elmo-enable-disconnected-operation} is non-nil, 
4075 @c off-line operations are enabled.
4076
4077 They are displayed if there are any of them.  In the example above,
4078 in the sending queue there are two messages (the first and the second
4079 in the queue folder) for smtp to hosta and one (the third) for nntp to
4080 hosta, and in the dop queue there are one for @samp{%inbox} and two for
4081 @samp{%#mh/wl}.
4082
4083 If you change (wl-plugged) in the second line, the variable
4084 @code{wl-plugged} is changed, so that the mode line indicator and
4085 plugged states of all ports are affected.
4086 If you change plugged states of any servers or ports, wl-plugged in the
4087 second line is affected depending on @code{elmo-plugged-condition}
4088 settings and the plugged state of each port.
4089
4090 @section Invoking Wanderlust in the Off-line State
4091
4092 As described before, if you set @code{wl-plugged} to nil in @file{~/.wl}
4093 or anything appropriate, you can invoke Wanderlust in the off-line
4094 state.  You can specify off-line state on a per server or port basis.
4095 Refer to @code{wl-reset-plugged-alist} also.
4096
4097 Usually, when Wanderlust starts up, the plugged state of each port is
4098 read from @file{~/.folder} and @code{wl-smtp-posting-server},
4099 @code{wl-nntp-posting-server} and so on.  If you want to change the
4100 plugged state of these ports or to add other ports, configure
4101 @code{wl-make-plugged-hook} with a function.
4102
4103 @lisp
4104 (add-hook 'wl-make-plugged-hook
4105           '(lambda ()
4106              (elmo-set-plugged plugged-value(t/nil) server port)
4107                  ;; @r{add or change plugged states of the port of the server}
4108              (elmo-set-plugged plugged-value(t/nil) server)
4109                  ;; @r{if the port is omitted, all ports are affected}
4110                  ;; @r{(you cannot omit the port if you newly add the server)}
4111              ))
4112 @end lisp
4113
4114 @section Customizable Variables
4115
4116 @table @code
4117 @item wl-plugged
4118 @vindex wl-plugged
4119 If this variable is set to nil, Wanderlust starts up in off-line mode from
4120 the beginning.
4121
4122 @item wl-queue-folder
4123 @vindex wl-queue-folder
4124 The initial setting is "+queue".
4125 This is the folder in which messages in the transmission queue are
4126 accumulated.
4127
4128 @item wl-auto-flush-queue
4129 @vindex wl-auto-flush-queue
4130 The initial setting is t.
4131 This flag controls automatic transmission of the queue when Wanderlust
4132 becomes on-line.  If non-nil, the queue is automatically transmitted
4133 (with confirmation by @code{y-or-n-p}).  If you want to transmit it
4134 manually, press @kbd{F} in the folder mode.
4135
4136 @item elmo-enable-disconnected-operation
4137 @vindex elmo-enable-disconnected-operation
4138 The initial setting is nil.  Controls off-line operations regarding IMAP4.
4139 If non-nil, off-line operations are carried out.
4140
4141 @item elmo-lost+found-folder
4142 @vindex elmo-lost+found-folder
4143 The initial setting is "+lost+found".
4144 This is the folder to which messages are saved when they fails to be
4145 appended while the off-line re-file/copy queue is processed.
4146
4147 @item elmo-plugged-condition
4148 @vindex elmo-plugged-condition
4149 The initial setting is 'one.
4150 The value of @code{wl-plugged} reflects the return value of the function 
4151 @code{elmo-plugged-p} (without arguments).
4152 This variable @code{elmo-plugged-condition} specifies the condition on
4153 which the return value of (elmo-plugged-p) should be t depending on the
4154 plugged state of each port.
4155
4156 @example
4157 'one         : plugged if one or more ports are plugged.
4158 'all         : plugged if all ports are plugged.
4159 'independent : reflects wl-plugged (elmo-plugged) regardless of plugged
4160                states of the ports.
4161 function     : reflects the return value of the function
4162  functions available per default
4163  'elmo-plug-on-by-servers
4164              : reflects the plugged state of the servers specified by the
4165                variable elmo-plug-on-servers.
4166  'elmo-plug-on-by-exclude-servers
4167              : reflects the plugged state of the servers that are not
4168                in elmo-plug-on-exclude-servers.
4169                   elmo-plug-on-exclude-servers defaults to
4170                    '("localhost"
4171                      (system-name)
4172                      (system-name)without the domain part)
4173 @end example
4174
4175 @example
4176 Example 1:
4177  (setq elmo-plugged-condition 'all)
4178 Example 2:
4179  (setq elmo-plug-on-servers '("smtpserver" "newsserver"))
4180  (setq elmo-plugged-condition 'elmo-plug-on-by-servers)
4181 Example 3:
4182  (setq elmo-plug-on-exclude-servers '("localhost" "myname"))
4183  (setq elmo-plugged-condition 'elmo-plug-on-by-exclude-servers)
4184 @end example
4185
4186 @item wl-reset-plugged-alist
4187 @vindex wl-reset-plugged-alist
4188 The initial setting is t.  If non-nil, plugged states are initialized on
4189 a per server or port basis when Wanderlust starts up.
4190
4191 If nil, plugged states are retained while Emacs is running.
4192 In other words, they are initialized when Emacs is restarted even if the
4193 value is nil.
4194 @end table
4195
4196 @c
4197 @c  Expire and Archive
4198 @c
4199 @node Expire and Archive, Scoring, Disconnected Operations, Top
4200 @chapter Automatic Expiration and Archiving of Messages
4201 @cindex Expire and Archive
4202
4203 @menu
4204 * Expire::      Expiration and Archiving
4205 * Archive::     Archiving All Messages
4206 @end menu
4207
4208
4209 @node Expire, Archive, Expire and Archive, Expire and Archive
4210 @section Expiration
4211 @cindex Expire Message
4212
4213 Expiration means deletion of old messages which have outlasted a
4214 certain period of time.
4215
4216 @code{wl-expire} supports not only simple deletion, but also moving to
4217 specified archiving folders.
4218
4219 @section How to Use
4220
4221 Configure @code{wl-expire-alist} and press @kbd{e} in the folder mode,
4222 or @kbd{M-e} in the summary mode.
4223
4224 @subsection Configuring @code{wl-expire-alist}
4225
4226 An example configuration of @code{wl-expire-alist} is shown below.
4227 Everything in this @code{wl-expire-alist} makes a great difference in
4228 expiration, so be careful.
4229 I advise you to set @code{wl-expire-use-log} to t, especially in the
4230 initial stage.
4231
4232 @lisp
4233 (setq wl-expire-alist
4234       '(("^\\+trash$"   (date 14) remove)
4235                                   ;; @r{delete}
4236         ("^\\+tmp$"     (date 7) trash)
4237                                   ;; @r{re-file to @code{wl-trash-folder}}
4238         ("^\\+outbox$"  (number 300) "$outbox;lha")
4239                                   ;; @r{re-file to the specific folder}
4240         ("^\\+ml/tmp$"  nil)
4241                            ;; @r{do not expire}
4242         ("^\\+ml/wl$"   (number 500 510) wl-expire-archive-number1 t)
4243                            ;; @r{archive by message number (retaining numbers)}
4244         ("^\\+ml/.*"    (number 300 310) wl-expire-archive-number2 t)
4245                            ;; @r{archive by a fixed number (retaining numbers)}
4246         ("^\\+nikki$"   (date 30) wl-expire-archive-date)
4247                            ;; @r{archive by year and month (numbers discarded)}
4248         ))
4249 @end lisp
4250
4251 Items in the list has the format of:
4252
4253 @example
4254 ("regexp_for_folders"  (specification_of_messages_to_be_deleted) destination)
4255 @end example
4256
4257 @noindent
4258 The folder is examined if it matches "regexp_for_folders" from the
4259 beginning of the list.  If you invoke expiration on the folder that does
4260 not match any of them, nothing will happen.
4261 And if either the second or the third element of the item is nil,
4262 expiration will not take place.
4263
4264 You can use any one of the following for
4265 specification_of_message_to_be_deleted:
4266
4267 @table @code
4268 @item (number n1 [n2])
4269 deletes messages depending on the number of messages in the folder.
4270
4271 n1 is the number of messages which should survive deletion, for example
4272 if its value is 500, the newest 500 messages survive and the rests are
4273 deleted.
4274
4275 n2 is the number of messages in the folder on which expiration should
4276 take place, which defaults to n1 + 1.  For example if its value is 510,
4277 folders with 510 or more messages are expired.
4278 If you configured automatic expiration, frequently used folders may
4279 expire every time it receive messages, and you may be annoyed with the
4280 long delay in reading mail.
4281 In that case, you can set a wide margin between n2 and n1, so that
4282 expiration would not take place until a certain number of messages
4283 accumulate.
4284
4285 Messages with marks in @code{wl-summary-expire-reserve-marks} (marked
4286 with important/new/unread) are not deleted.
4287 If @code{wl-expire-number-with-reserve-marks} is non-nil, the folder
4288 will expire so as to have 500 messages including such ones.
4289 Otherwise, it will have 500 messages except such ones.
4290
4291 @item (date d1)
4292 deletes messages depending on the dates.
4293
4294 Messages dated d1 or more days ago are deleted, for example if its value
4295 is seven, messages seven days old or more are deleted.
4296 Note that the date is the one in the Date field of the message, not when 
4297 the message entered the folder.
4298
4299 Messages with no or invalid Date field does not expire; you might have
4300 to delete them by hand.
4301 @end table
4302
4303 You can use any one of the following in the place of destination:
4304
4305 @table @code
4306 @item 'remove
4307 deletes the messages instantly.
4308
4309 @item 'trash
4310 moves the messages to @code{wl-trash-folder}.
4311
4312 @item string(folder)
4313 moves the messages to the specified folder.
4314
4315 It would be useful for specifying an archiving folder, but because this
4316 does not move important messages, it might be better to use the
4317 standard functions described below.
4318
4319 @item function
4320 invokes the specified function.
4321
4322 To the function, three arguments are passed: a folder name, a list of
4323 messages to be deleted, and msgdb information of the summary.
4324 You can specify function-specific arguments after the name of the
4325 function.
4326 Note that the list contains messages with marks in
4327 @code{wl-summary-expire-reserve-marks}, be careful in writing your own
4328 function.
4329
4330 These are three standard functions; they moves messages to an archive
4331 folder in the specified way.  This means old messages can be compressed
4332 and saved in a file, being deleted from the original folder.
4333
4334 @table @code
4335 @item wl-expire-archive-number1
4336 re-files to archiving folders corresponding to the message numbers of
4337 the messages being deleted.
4338 For example, a message numbered 102 will be re-filed to
4339 @file{wl-00100.zip}, 390 to @file{wl-00300.zip}, and so on.
4340 If @code{wl-expire-archive-files} is 200, messages will be re-filed to
4341 @file{wl-00000.zip}, @file{wl-00200.zip}, @file{wl-00400.zip}, @dots{}.
4342
4343 The archiving folders to which messages are re-filed are determined by
4344 the name of the folder as follows
4345 (in this case, archiving folders are handled as if
4346 @code{elmo-archive-treat-file} were non-nil).
4347
4348 @table @code
4349 @item If the folder type is localdir:
4350
4351 @code{$ArchiveDir/foldername-xxxxx.zip}
4352 For example, @samp{+ml/wl} corresponds to @samp{$ml/wl;zip}
4353 (@file{~/Mail/ml/wl-00100.zip}).
4354
4355 @item The folder type is other than localdir:
4356 @code{$ArchiveDir/foldertype/foldername-xxxxx.zip}
4357
4358 For example, @samp{%#mh/ml/wl} corresponds to
4359 @samp{$imap4/#mh/ml/wl;zip} (@file{~/Mail/imap4/#mh/ml/wl-00100.zip}).
4360 @end table
4361
4362 As you can see, in the case of localdir, the folder type is not included
4363 in the path name, but otherwise it is included.
4364 And you can control the prefix to the archiving folder name by
4365 @code{wl-expire-archive-folder-prefix}.
4366 Refer to @code{wl-expire-archive-folder-prefix} for details.
4367
4368 @item wl-expire-archive-number2
4369 re-files every certain number of messages to archiving folders.
4370
4371 This differs from @samp{wl-expire-archive-number1} in that this re-files
4372 to the folder up to the specified number regardless of message numbers.
4373 The archiving folders to which messages are re-filed are determined in the 
4374 same way as @code{wl-expire-archive-number1}.
4375
4376 @item wl-expire-archive-date
4377 re-files messages depending on its date (year and month) to archive
4378 folders.
4379
4380 For example, a message dated December 1998 is re-filed to
4381 @code{$folder-199812;zip}.
4382 The name of the archiving folders except the date part are determined in
4383 the same way as @code{wl-expire-archive-number1}.
4384 @end table
4385
4386 You can set the first argument to these three standard functions to non-nil
4387 in @code{wl-expire-alist} so as to retain message numbers in the folder.
4388 For example, it can be specified just after the name of the function:
4389
4390 @example
4391 ("^\\+ml/wl$" (number 300 310) wl-expire-archive-number1 t)
4392 @end example
4393
4394 If you omit the argument, consecutive numbers from 1 are assigned for
4395 each archiving folder.
4396 @end table
4397
4398 @subsection Treatment for Important or Unread Messages
4399
4400 If you specify any of 'remove, 'trash, a folder name, or a standard
4401 function, messages with marks in @code{wl-summary-expire-reserve-marks}
4402 (which are called @dfn{reserved messages} thereafter) are retained.
4403
4404 Per default, this variable include the important, new, and unread marks,
4405 so that messages with these marks are not removed.
4406 Note that you cannot include the temporary mark (i.e. temporary marks
4407 are removed anyway), and be sure to process temporary marks before you
4408 invoke expiration.
4409
4410 @subsection Auto Expiration
4411
4412 The following setup invokes expiration when you move into the summary
4413 mode.  There will be no confirmation, so make sure you made no mistake
4414 in regexp and other settings before you set up this.
4415
4416 @lisp
4417 (add-hook 'wl-summary-prepared-pre-hook
4418           'wl-summary-expire)
4419 @end lisp
4420
4421 In the folder mode, you can invoke expiration per group as well as per
4422 folder.  Therefore, if you specify @samp{Desktop} group, all folders
4423 matching @code{wl-expire-alist} expire.
4424
4425 @section Tips
4426
4427 @subsection Treating archive folders.
4428 To treat archive folders created by @code{wl-expire-archive-number1} and so on,
4429 you must set non-nil value to @code{elmo-archive-treat-file}.
4430
4431 @subsection Confirming
4432
4433 If you are to use 'remove, try 'trash at first and see messages move to
4434 @code{wl-trash-folder} as expected, then replace it with 'remove.
4435 It would be dangerous to use 'remove from the beginning.
4436
4437 If you are to use @code{wl-expire-archive-number1} and the like, try to
4438 make a folder of the archiver type ('zip or 'lha) and see if you can
4439 append messages to it.
4440 Even if settings in @code{wl-expire-alist} and @code{elmo-archive} are
4441 correct, messages would not be saved anywhere and disappeared in case
4442 the archiver program fails.
4443
4444 After you make sure you can archive to the folder correctly, you can
4445 invoke expiration and utilize the log.
4446
4447 If you set @code{wl-expire-use-log} to t, @file{~/.elmo/expired-log}
4448 should contain the log, for example:
4449
4450 @example
4451 delete  +ml/wl  (593 594 595 596 597 598 599)
4452 move    +ml/wl -> $ml/wl-00600;tgz;wl  (600 601 602)
4453 @end example
4454
4455 The first column indicates the operation, i.e. delete, copy, or move.
4456 The next is the name of the folder that expired.  In the case of copy
4457 and move, the destination folder is recorded after @samp{->}.
4458 The last is the list of message numbers that are actually deleted or
4459 moved (in the case of copy and move, the number is the one in the source 
4460 folder, rather than the destination folder).
4461
4462 @subsection Re-filing Reserved Messages
4463
4464 The three standard functions copy reserved messages to the archive
4465 folder, but do not delete them from the source folder.  Because
4466 reserved messages and the like always remain, they are recorded in
4467 @file{~/.elmo/expired-alist} so that they are not copied over and over
4468 again.  They are not recorded if copied by @code{wl-summary-archive}.
4469
4470 If you enabled logging, usually "move" is recorded for re-filing, but
4471 instead "copy" and "delete" are recorded separately if reserved messages
4472 are involved.
4473 This is because it actually copies messages including reserved, then
4474 deletes ones except reserved in that case.
4475
4476 @section Customizable Variables
4477
4478 @table @code
4479 @item wl-expire-alist
4480 @vindex wl-expire-alist
4481 The initial setting is nil.
4482 This variable specifies folders and methods to expire.  For details,
4483 refer to @code{wl-expire-alist} settings above.
4484
4485 @item wl-summary-expire-reserve-marks
4486 @vindex wl-summary-expire-reserve-marks
4487 The initial setting is the list below.
4488
4489 @lisp
4490 (list wl-summary-important-mark
4491       wl-summary-new-mark
4492       wl-summary-unread-mark
4493       wl-summary-unread-uncached-mark
4494       wl-summary-unread-cached-mark)
4495 @end lisp
4496
4497 Messages with these marks are retained in the folder, even after
4498 expiration.
4499 Only permanent marks can be listed, not temporary marks.
4500
4501 You can list marks one by one as in the default; you can use the
4502 following settings as well:
4503
4504 @table @code
4505 @item 'all
4506 All messages with permanent marks are retained,
4507 i.e. @code{wl-summary-read-uncached-mark} is included in addition to the 
4508 defaults.
4509
4510 @item 'none
4511 All messages are handled as usual ones that are already read, no matter
4512 what marks they have; even important messages are deleted.
4513 @end table
4514
4515 @item wl-expire-archive-files
4516 @vindex wl-expire-archive-files
4517 The initial setting is 100.
4518 This variable specifies the number of messages to be retained in one
4519 archiving folder.
4520
4521 @item wl-expire-number-with-reserve-marks
4522 @vindex wl-expire-number-with-reserve-marks
4523 The initial setting is nil.
4524 If non-nil, if expiring messages are specified by "number", messages
4525 with @code{wl-summary-expire-reserve-marks} are also retained.
4526
4527 @item wl-expire-archive-get-folder-func
4528 @vindex wl-expire-archive-get-folder-func
4529 The initial setting is 'wl-expire-archive-get-folder.
4530
4531 This variable specifies a function that returns the name of an archiving 
4532 folder for standard functions in the place of destination.
4533 You can use the following three variables for simple modification of
4534 folder names; if you want more complex settings, define your own
4535 function in this variable.
4536
4537 @code{wl-expire-archive-get-folder} can be customized by these
4538 variables:
4539 @itemize @bullet
4540 @item wl-expire-archive-folder-name-fmt
4541 @item wl-expire-archive-folder-type
4542 @item wl-expire-archive-folder-prefix
4543 @end itemize
4544
4545 @item wl-expire-archive-folder-name-fmt
4546 @vindex wl-expire-archive-folder-name-fmt
4547 The initial setting is "%s-%%05d;%s".
4548 This is a format string for archiving folders used in
4549 @code{wl-expire-archive-number1} and @code{wl-expire-archive-number2}.
4550 Note that you must specify the message number by @samp{%%d}, because it
4551 is parsed twice by @code{format}.
4552
4553 If you modify this, adjust @code{wl-expire-archive-folder-num-regexp} as 
4554 well.
4555
4556 @item wl-expire-archive-date-folder-name-fmt
4557 @vindex wl-expire-archive-date-folder-name-fmt
4558 The initial setting is "%s-%%04d%%02d;%s".
4559 This is a format string for archiving folders used in
4560 @code{wl-expire-archive-date}.
4561 Note that you must specify the message number by @samp{%%d}, because it
4562 is parsed twice by @code{format}.
4563 There should be @code{%%d} twice, one for the year and the other for the
4564 month.
4565
4566 If you modify this, adjust
4567 @code{wl-expire-archive-date-folder-num-regexp} as well.
4568
4569 @item wl-expire-archive-folder-type
4570 @vindex wl-expire-archive-folder-type
4571 The initial setting is 'zip.
4572 This variable specifies an archiver type of the archiving folders.
4573
4574 @item wl-expire-archive-folder-prefix
4575 @vindex wl-expire-archive-folder-prefix
4576 The initial setting is nil.
4577 This variable specifies the prefix (directory structure) to archiving
4578 folders.
4579 Exercise extreme caution in using this feature, as it has not been
4580 seriously tested.
4581 In the worst case, there is a fear of destructing archiving folders.
4582
4583 @table @code
4584 @item nil
4585 There will be no prefix.
4586
4587 @item 'short
4588 For example, @samp{+ml/wl} will be prefixed by @samp{wl}, resulting in
4589 @samp{$ml/wl-00000;zip;wl}.
4590
4591 @item t
4592 For example, @samp{+ml/wl} will be prefixed by prefix @samp{ml/wl},
4593 resulting in
4594
4595 @samp{$ml/wl-00000;zip;ml/wl}.
4596 @end table
4597
4598 @item wl-expire-archive-folder-num-regexp
4599 @vindex wl-expire-archive-folder-num-regexp
4600 The initial setting is "-\\([-0-9]+\\);".
4601 This variable specifies the regular expression to be used for getting
4602 message numbers from multiple archiving folders specified by
4603 @code{elmo-list-folders}.
4604 Set it in accordance with @code{wl-expire-archive-folder-name-fmt}.
4605
4606 @item wl-expire-archive-date-folder-num-regexp
4607 @vindex wl-expire-archive-date-folder-num-regexp
4608 The initial setting is "-\\([-0-9]+\\);".
4609 This is the regular expression to be used for getting message numbers
4610 from multiple archiving folders specified by @code{elmo-list-folders}.
4611 Set it in accordance with @code{wl-expire-archive-date-folder-name-fmt}.
4612
4613 @item wl-expire-delete-oldmsg-confirm
4614 @vindex wl-expire-delete-oldmsg-confirm
4615 The initial setting is t.
4616 If non-nil, messages older than the one with the largest number will be
4617 deleted with confirmation.
4618 If nil, they are deleted without confirmation.
4619
4620 This feature is valid only if non-nil is specified as a argument to the
4621 standard functions so as to retain numbers.
4622
4623 @item wl-expire-use-log
4624 @vindex wl-expire-use-log
4625 The initial setting is nil.
4626 If non-nil, expiration logs are recorded in @file{~/.elmo/expired-log}.
4627 They are appended but not truncated or rotated automatically; you might
4628 need to remove it manually.
4629
4630 @item wl-expire-add-seen-list
4631 @vindex wl-expire-add-seen-list
4632 The initial setting is t.
4633
4634 If non-nil, when messages are re-filed by expiration, read/unread
4635 information is passed to the destination folder.
4636
4637 However if you do not read the destination folder from Wanderlust,
4638 @file{seen} under @file{~/.elmo/} grows larger and larger, so you might
4639 want to set this to nil if you are simply saving to some archiving
4640 folders.  Even if its value is nil, messages in the archiving folders
4641 are simply treated as unread; it does not affect expiration itself.
4642
4643 @item wl-expire-folder-update-msgdb
4644 @vindex wl-expire-folder-update-msgdb
4645 The initial setting is t.
4646 If t, in the folder mode, expiration is carried out after updating
4647 summary information.
4648 If you specified a list of regular expressions of folder names, summary
4649 information is updated for matching folders only.
4650 @end table
4651
4652
4653 @node Archive,  , Expire, Expire and Archive
4654 @section Archiving Messages
4655
4656 @subsection Archiving Messages
4657 @kbd{M-x wl-summary-archive} copies the whole folder to archiving
4658 folders.  If there are the archiving folders already, only new messages
4659 are appended.
4660
4661 You can use @code{wl-archive-alist} in order to specify how messages are 
4662 archived according to their folder names, as in @code{wl-expire-alist}.
4663 For example:
4664
4665 @lisp
4666 (setq wl-archive-alist
4667       '(("^\\+tmp$"     wl-archive-date)
4668         ("^\\+outbox$"  wl-archive-number2)
4669         (".*"           wl-archive-number1)
4670         ))
4671 @end lisp
4672
4673 Each item in the list has the following format:
4674
4675 @example
4676 ("folders_regexp"  deleting_function)
4677 @end example
4678
4679 As you can see, you can only use a function after @samp{folders_regexp}.
4680 Per default, there are three functions:
4681
4682 @itemize @bullet
4683 @item wl-archive-number1
4684 @item wl-archive-number2
4685 @item wl-archive-date
4686 @end itemize
4687
4688 As inferred from their names, they work similarly to "expire" versions,
4689 other than the following points:
4690
4691 @itemize @minus
4692 @item No messages are deleted
4693 @item Message numbers are retained even if invoked without arguments
4694 @end itemize
4695
4696 These functions are good to archive all messages in a folder by their
4697 numbers or by their dates.
4698 These are also useful for backup or confirmation purposes before
4699 expiration.
4700 If you try to re-file them after they are archived, they are deleted but 
4701 not re-filed.
4702
4703 Per default, the archiving folders to which messages are copied are
4704 determined automatically by @code{wl-expire-archive-get-folder-func}.
4705 You can copy to a specific folder by invoking with a prefix argument,
4706 i.e. @kbd{C-u M-x wl-summary-archive}.
4707
4708 Note that this feature has not been seriously tested, because you can
4709 simply copy to an archiving folder, for example by
4710 @code{wl-summary-copy-region}.
4711
4712 The archiving folders are determined by the same logic as in
4713 @code{wl-summary-expire}; the following customizable variables are
4714 relevant:
4715
4716 @itemize @bullet
4717 @item wl-expire-archive-files
4718 @item wl-expire-archive-get-folder-func
4719 @item wl-expire-archive-folder-name-fmt
4720 @item wl-expire-archive-folder-type
4721 @item wl-expire-archive-folder-prefix
4722 @item wl-expire-archive-folder-num-regexp
4723 @end itemize
4724
4725 @subsection Customizable Variables
4726
4727 @table @code
4728 @item wl-archive-alist
4729 @vindex wl-archive-alist
4730 The initial setting is '((".*" wl-archive-number1)).
4731
4732 This variable specifies a function that copies to archiving folders.
4733 To the function, three arguments are passed: a folder name, a list of
4734 messages in the folder, and msgdb information of the summary.
4735 Needless to say, you can use your own function.
4736 @end table
4737
4738
4739 @c
4740 @c  Scoring
4741 @c
4742 @node Scoring, Customization, Expire and Archive, Top
4743 @chapter Score of the Messages
4744 @cindex Scoring
4745 @c @cindex Kill File
4746
4747 Scoring is the function that associates a score (value) with each
4748 message, and marks as read or deletes from the summary according to it.
4749
4750 You can put temp or important marks on essential messages, or read marks
4751 on the ones you do not want to read, for example spam articles.
4752
4753 This scoring function has a capability and a format similar to the one
4754 that Gnus has, although there are some unsupported features and
4755 Wanderlust specifics.
4756
4757 @menu
4758 * Score Commands::             Score Commands
4759 * Score File Format::          Score File Format
4760 @end menu
4761
4762
4763 @node Score Commands, Score File Format, Scoring, Scoring
4764 @section Score Commands
4765 @cindex Score Commands
4766
4767 @subsection Score File Specification
4768
4769 @code{wl-score-folder-alist} specifies score files or variables in which 
4770 scores are defined, corresponding to folder names.
4771
4772 @lisp
4773 (setq wl-score-folder-alist
4774       '(("^-.*"
4775          "news.SCORE"
4776          "my.SCORE")
4777         (".*"
4778          "all.SCORE")))
4779 @end lisp
4780
4781 If paths to the score files are omitted, the directory specified in the
4782 variable @code{wl-score-files-dir} is assumed.
4783
4784 No matter what you write in @code{wl-score-folder-alist}, the default
4785 score file @code{wl-score-default-file} (@file{all.SCORE}) is always
4786 read (it does not have to exist).
4787 Therefore, in the example above, the three score files,
4788 @file{news.SCORE}, @file{my.SCORE}, and @file{all.SCORE} are read for
4789 the folders that matches @samp{^-.*}.
4790
4791 @subsection Scored Messages
4792
4793 Scores are attached to the messages that are specified by
4794 @code{wl-summary-score-marks} temporarily when the summary is updated;
4795 when you exit from the summary, the scores are removed and reverts to
4796 the defaults.
4797
4798 @subsection Creation of Score Files
4799
4800 In the summary buffer, move to an appropriate message and type @kbd{L}.
4801 Then type @kbd{s}, @kbd{s}, and @kbd{p} at a prompt in a mini-buffer.
4802 The string in Subject is presented.  Edit it and press @kbd{@key{RET}}.
4803
4804 This makes -1000 are scored for messages with the same Subject as the
4805 string you entered.  That is, such a score file is created
4806 automatically.
4807
4808 Then, try typing @kbd{h} and @kbd{e} in the same summary buffer.
4809 The score file you just made appears.
4810 This buffer is called "score editing buffer" thereafter.
4811 When you type @kbd{C-c C-e} in it, you are prompted in the mini-buffer
4812 as you are previously; type @kbd{a}.  Then a score entry for "From"
4813 should be inserted.
4814 In this way, you can create a score file easily either in the summary
4815 buffer or in the score editing buffer.
4816
4817 By the way, you might be aware the numbers of key strokes are different
4818 between @kbd{s s p} and @kbd{a}.
4819 This is determined by @code{wl-score-header-default-entry}.
4820 This variable specifies the default score entries corresponding to
4821 header fields.
4822 For example, for "subject" field, a type and a time limit are prompted,
4823 but for "from" field, they are fixed upon automatically as substring and
4824 permanent respectively.
4825 However, score values can be modified by the prefix argument.
4826 Typing @kbd{?} at the mini-buffer shows a help on keys and corresponding 
4827 headers and types.
4828
4829 At last, type @kbd{C-c C-c} in the score editing buffer.  This saves the 
4830 score file and terminates the edit mode.  Typing @kbd{C-c C-c} after
4831 erasing contents of the buffer deletes the score file being edited.
4832
4833 @subsection Tips
4834
4835 @subsubsection Selecting Score Files
4836
4837 You can change score files to which scores are appended by
4838 @code{wl-summary-increase-score} and @code{wl-summary-lower-score} by
4839 @code{wl-score-change-score-file}.
4840
4841 @subsubsection Summing Up the Score
4842
4843 If you add the same entries by @code{wl-summary-increase-score},
4844 @code{wl-summary-lower-score}, and @code{wl-score-edit-insert-entry},
4845 scores for the entry is summed up.
4846
4847 For example, if you create @samp{from} entry with the score of -1000 by
4848 @kbd{L a} and again @samp{from} with -200, one entry with the score of
4849 -1200 will be created as a result.
4850
4851 @subsubsection Creating Thread Key
4852
4853 Creating @samp{Thread} key by @code{wl-summary-increase-score} or
4854 @code{wl-summary-lower-score} appends @samp{Message-ID} of all children.
4855
4856 @subsubsection Creating Followup Key
4857
4858 Creating @samp{Followup} key by @code{wl-summary-increase-score} or
4859 @code{wl-summary-lower-score} appends @samp{Message-ID} of the message
4860 at the cursor to @samp{References} key.
4861 If @code{wl-score-auto-make-followup-entry} is non-nil,
4862 @samp{Message-ID} of all messages to be followed up within dates
4863 specified by @code{wl-score-expiry-days}.
4864
4865 @subsection Key Bindings
4866
4867 @table @kbd
4868 @item K
4869 @kindex K (Summary)
4870 @findex wl-summary-increase-score
4871 Increases the score for the current message.
4872 And the score entry is appended to the score file at the same moment.
4873 You can specify the score value by a prefix argument.
4874
4875 @item L
4876 @kindex L (Summary)
4877 @findex wl-summary-lower-score
4878 Decreases the score for the current message.
4879 And the score entry is appended to the score file at the same moment.
4880 You can specify the score value by a prefix argument.
4881
4882 @item h R
4883 @kindex h R (Summary)
4884 @findex wl-summary-rescore
4885 Re-applies the scoring.
4886 However, already scored messages are not scored anew.
4887
4888 @item h c
4889 @kindex h c (Summary)
4890 @findex wl-score-change-score-file
4891 Changes the score file currently selected.
4892
4893 @item h e
4894 @kindex h e (Summary)
4895 @findex wl-score-edit-current-scores
4896 Edits the score file currently selected.
4897 If there are multiple score files, the previously specified one is
4898 selected.
4899
4900 @item h f
4901 @kindex h f (Summary)
4902 @findex wl-score-edit-file
4903 Edits an arbitrary score file and selects it.
4904
4905 @item h F
4906 @kindex h F (Summary)
4907 @findex wl-score-flush-cache
4908 Erases caches associated to the score files that are read.
4909 If you modified score files directly (from other than Wanderlust), you
4910 need to re-read them after erasing the cache.
4911
4912 @item h m
4913 @kindex h m (Summary)
4914 @findex wl-score-set-mark-below
4915 Specifies the criterion for scores to be marked as read.
4916 Messages with scores less than this value are marked as read.
4917
4918 @item h x
4919 @kindex h x (Summary)
4920 @findex wl-score-set-expunge-below
4921 Specifies the criterion for scores to be deleted from the summary.
4922 Messages with scores less than this value are deleted.
4923 "Deleted" means it is not shown; they are not removed from the summary
4924 information or the folder.
4925 The deleted messages can be shown by rescan-noscore again.
4926 @end table
4927
4928 @subsection Key Bindings in the Score Editing Buffer
4929
4930 @table @kbd
4931 @item C-c C-k
4932 @kindex C-c C-k (Score Mode)
4933 @findex wl-score-edit-kill
4934 Abandons the file being edited.
4935
4936 @item C-c C-c
4937 @kindex C-c C-c (Score Mode)
4938 @findex wl-score-edit-exit
4939 Saves the file being edited, and quits from the edit mode.
4940
4941 @item C-c C-p
4942 @kindex C-c C-p (Score Mode)
4943 @findex wl-score-pretty-print
4944 Re-draws the score.
4945
4946 @item C-c C-d
4947 @kindex C-c C-d (Score Mode)
4948 @findex wl-score-edit-insert-date
4949 Inserts the number of dates from Dec. 31, 1 B.C.
4950 It is used for creating the third factor of time-limited scores.
4951
4952 @item C-c C-s
4953 @kindex C-c C-s (Score Mode)
4954 @findex wl-score-edit-insert-header
4955 Inserts the header of the message selected in the summary buffer.
4956
4957 @item C-c C-e
4958 @kindex C-c C-e (Score Mode)
4959 @findex wl-score-edit-insert-entry
4960 Inserts the score entry of the message selected in the summary buffer.
4961 @end table
4962
4963 @subsection Customizable Variables
4964
4965 @table @code
4966 @item wl-summary-default-score
4967 @vindex wl-summary-default-score
4968 The initial setting is zero.
4969 This variable specifies the default value of the score.
4970 The score is increased or decreased based upon this value.
4971
4972 @item wl-summary-important-above
4973 @vindex wl-summary-important-above
4974 The initial setting is nil.
4975 Messages with scores larger than this value are attached with the
4976 important mark (@samp{$}).
4977 If nil, no important marks are attached.
4978
4979 @item wl-summary-temp-above
4980 @vindex wl-summary-temp-above
4981 The initial setting is nil.
4982 Messages with scores larger than this value are attached with the temp
4983 mark (@samp{*}).
4984 If nil, no temp marks are attached.
4985
4986 @item wl-summary-mark-below
4987 @vindex wl-summary-mark-below
4988 The initial setting is zero.
4989 Messages with scores smaller than this value are marked as read.
4990
4991 @item wl-summary-expunge-below
4992 @vindex wl-summary-expunge-below
4993 The initial setting is nil.
4994 Messages with scores smaller than this value are deleted from the
4995 summary.
4996 If nil, they are not deleted.
4997
4998 @item wl-summary-score-marks
4999 @vindex wl-summary-score-marks
5000 The initial setting is '("N").
5001 Messages with these marks are scored.
5002
5003 @item wl-use-scoring
5004 @vindex wl-use-scoring
5005 The initial setting is t.
5006 If non-nil, scoring is enabled.
5007
5008 @item wl-score-files-dir
5009 @vindex wl-score-files-dir
5010 The initial setting is "~/.elmo/".
5011 The default directory for score files.
5012
5013 @item wl-score-interactive-default-score
5014 @vindex wl-score-interactive-default-score
5015 The initial setting is 1000.
5016 This value is used as a score when a score factor is nil in the score
5017 file.
5018 It is also used in @code{wl-summary-increase-score} and
5019 @code{wl-summary-lower-score}, on condition that the value of
5020 @code{wl-score-header-default-entry} is nil.
5021
5022 @item wl-score-expiry-days
5023 @vindex wl-score-expiry-days
5024 The initial setting is 7.
5025 This is the number of days before time-limited scores are deleted.
5026
5027 @item wl-score-update-entry-dates
5028 @vindex wl-score-update-entry-dates
5029 The initial setting is t.
5030 If non-nil, it enables deletion of time-limited scores.
5031
5032 @item wl-score-header-default-entry
5033 @vindex wl-score-header-default-entry
5034 Specifies the default value for each header field for score entries
5035 created by @code{wl-summary-increase-score},
5036 @code{wl-summary-lower-score}, and @code{wl-score-edit-insert-entry}.
5037
5038 @item wl-score-simplify-fuzzy-regexp
5039 @vindex wl-score-simplify-fuzzy-regexp
5040 In the case of a type of a score entry is "fuzzy", this specifies a
5041 regular expression to be deleted from the string.
5042 Because this is usually used for Subject, the default is prefixes that
5043 are attached by mailing list programs.
5044
5045 @item wl-summary-rescore-partial-threshold
5046 @vindex wl-summary-rescore-partial-threshold
5047 The initial setting is 200.
5048 When sync-all or rescan is executed, if there are messages more than
5049 this value, only the last same number of messages as this value are
5050 scored.
5051
5052 @item wl-summary-auto-sync-marks
5053 @vindex wl-summary-auto-sync-marks
5054 If non-nil, unread/important marks are synchronized when the summary
5055 does.
5056 Unread marks reflect information on the IMAP4 server.
5057 Important marks reflect information on the IMAP4 server (flagged or
5058 not), and contents of 'mark folder.
5059 The initial setting is t.
5060 @end table
5061
5062
5063 @node Score File Format,  , Score Commands, Scoring
5064 @section Score File Format
5065 @cindex Score File Format
5066
5067 The format of score files are the same as Gnus, and basically you can
5068 use Gnus score files as they are.  But they are not fully compatible
5069 because some keys are not supported and there are Wanderlust specifics.
5070
5071 @example
5072 (("subject"
5073   ("for sale" -1000 nil s)
5074   ("profit" -1000 nil s))
5075  ("from"
5076   ("spam@@spamspamspam" -10000 nil s))
5077  ("followup"
5078   ("my@@address" 3001 nil s))
5079  ("chars"
5080   (1000000 -10 nil >))
5081  (important 5000)
5082  (temp 3000)
5083  (mark 0)
5084  (expunge -3000))
5085 @end example
5086
5087 @table @code
5088 @item string
5089 If the key is a string, it is the name of the header to be matched.
5090 The following keys are available:
5091 @code{Subject}, @code{From}, @code{Date}, @code{Message-ID},
5092 @code{References}, @code{To}, @code{Cc}, @code{Chars}, @code{Lines},
5093 @code{Xref}, @code{Extra}, @code{Followup}, @code{Thread}
5094 @code{Chars} and @code{Lines} mean the size and the number of lines of
5095 the message, respectively.  @code{Extra}, @code{Followup}, @code{Thread}
5096 are described later.
5097 The rest corresponds the field of the same name.
5098
5099 Arbitrary numbers of core entries are specified after the key.
5100 Each score entry consists of these five factors:
5101
5102 @enumerate
5103 @item
5104 A factor that matches header.  This should be a number in the cases of
5105 "lines" and "chars", otherwise a string.
5106
5107 @item
5108 A score factor.  When the first item matches, the score of the message
5109 is increased or decreased by this value.
5110
5111 @item
5112 A time limiting factor.  If nil, the score is permanent, and in the case
5113 of a number, the score is deleted if it does not match for days
5114 (@code{wl-score-expiry-days}) from the date specified by this.
5115 The date is since Dec. 31, 1 B.C.
5116
5117 @item
5118 A type factor.  This specifies the way the first factor matches.
5119 Available types depend on keys.
5120
5121 @table @dfn
5122 @item From, Subject, References, Message-ID
5123 For these keys in string, @code{r} and @code{R} (regexp),
5124 @code{s} and @code{S} (substring), @code{e} and @code{E} (exact match),
5125 as well as @code{f} and @code{F} (fuzzy) can be used.
5126 @code{R}, @code{S}, @code{E}, and @code{F} are case sensitive.
5127
5128 @item Lines, Chars
5129 For these keys, the following five numerical relative operators can be
5130 used: @code{<}, @code{>}, @code{=}, @code{>=}, @code{<=}.
5131
5132 @item Followup
5133 This key matches @code{From} header, and scores all follow-ups to the
5134 message.
5135 For example, it would be useful for increasing scores for follow-ups to
5136 you own article.
5137
5138 You can use the same types as @code{From} except for @code{f}.
5139 And a @samp{Followup} entry is automatically appended to the score file.
5140
5141 @item Thread
5142 This key scores (sub-)threads beginning with @code{Message-ID} @var{x}.
5143 A @samp{Thread} entry is automatically appended for each article that
5144 has @var{x} in the @code{References} header.
5145 You can make sure the whole thread including messages that does not have
5146 all ancestors @code{Message-ID} in @code{References} is scored.
5147
5148 You can use the same types as @code{References} except for @code{f}.
5149 And a @samp{Thread} entry is automatically appended to the score file.
5150 @end table
5151
5152 @item
5153 A factor for extension header.  This is meaningful only if the key is
5154 @code{Extra}.
5155 This specifies headers to be matched other than standard headers like
5156 @code{Subject} and @code{From}.
5157 Note that you should specify the header in
5158 @code{elmo-msgdb-extra-fields} also.
5159 Therefore it does not work in folders where extension headers cannot be
5160 retrieved.
5161
5162 @end enumerate
5163
5164 The sum of these scores @emph{after all factors are applied} becomes the 
5165 score of the message.
5166
5167 @cindex Score File Atoms
5168 @item mark
5169 Messages with a score less than this value is marked as read.
5170 The default is @code{wl-summary-mark-below}.
5171
5172 @item expunge
5173 Messages with a score less than this value is deleted from the summary.
5174 The default is @code{wl-summary-expunge-below}.
5175
5176 @item mark-and-expunge
5177 Both @code{mark} and @code{expunge} are applied,
5178 i.e. messages with a score less than this value is marked as read and
5179 deleted from the summary.
5180
5181 @item temp
5182 Messages with a score greater than this value is attached with temp
5183 marks.
5184 The default is @code{wl-summary-temp-above}.
5185
5186 @item important
5187 Messages with a score greater than this value is attached with important
5188 marks.
5189 The default is @code{wl-summary-important-above}.
5190 @end table
5191
5192 @subsection Caveats
5193
5194 Not to mention the @code{extra} key, if @code{lines} or @code{xref} keys 
5195 are used, you need to set @code{elmo-msgdb-extra-fields}.
5196
5197 @lisp
5198 (setq elmo-msgdb-extra-fields '("lines" "xref"))
5199 @end lisp
5200
5201 There are other restrictions as shown below:
5202
5203 @itemize @bullet
5204 @item Because @samp{References} field in the summary information
5205 contains only the last @samp{Message-ID}, @code{references} key matches
5206 the last one only.
5207 @end itemize
5208
5209 Keys that can be seen by folder of types:
5210
5211 @example
5212                         chars lines xref  extra
5213 localdir,localnews        Y     E     E     E
5214 nntp (supporting xover)   Y     E     E     N
5215      (otherwise)          N     E     E     E
5216 imap4                     Y     E     E     E
5217 pop3                      N     E     E     E
5218
5219                 Y: can be seen
5220                 N: cannot be seen (ignored)
5221                 E: can be seen with @code{elmo-msgdb-extra-fields} settings
5222 @end example
5223
5224
5225 @c
5226 @c  Customization
5227 @c
5228 @node Customization, Mailing List, Scoring, Top
5229 @chapter Customizing Wanderlust
5230 @cindex Customization
5231
5232 @menu
5233 * Living with other packages:: Living with other packages
5234 * Highlights::                 Highlights
5235 * Advanced Settings::          Advanced Settings
5236 * Customizable Variables::     Customizable Variables
5237 @end menu
5238
5239
5240 @node Living with other packages, Highlights, Customization, Customization
5241 @section Living with other packages
5242
5243 Examples with other packages.
5244
5245 @menu
5246 * BBDB::                        BBDB
5247 * supercite::                   supercite.el
5248 * mu-cite::                     mu-cite.el
5249 * x-face-mule::                 x-face-mule.el
5250 * dired-dd::                    dired-dd.el
5251 @end menu
5252
5253
5254 @node BBDB, supercite, Living with other packages, Living with other packages
5255 @subsection bbdb.el
5256 @pindex BBDB
5257
5258 Place @file{util/bbdb-wl.el} on the load-path and do the following
5259 settings.
5260
5261 If BBDB is on the load-path at the installation, @file{bbdb-wl.el} is
5262 byte-compiled and installed.
5263 @xref{Install}.
5264
5265 @lisp
5266 (require 'bbdb-wl)
5267
5268 (bbdb-wl-setup)
5269 ;; @r{enable pop-ups}
5270 (setq bbdb-use-pop-up t)
5271 ;; @r{auto collection}
5272 (setq bbdb/mail-auto-create-p t)
5273 (setq signature-use-bbdb t)
5274 (setq bbdb-north-american-phone-numbers-p nil)
5275 ;; @r{shows the name of bbdb in the summary} :-)
5276 (setq wl-summary-from-func 'bbdb-wl-from-func)
5277 ;; @r{automatically add mailing list fields}
5278 (add-hook 'bbdb-notice-hook 'bbdb-auto-notes-hook)
5279 (setq bbdb-auto-notes-alist '(("X-ML-Name" (".*$" ML 0))))
5280 @end lisp
5281
5282 @node supercite, mu-cite, BBDB, Living with other packages
5283 @subsection sc.el(supercite), sc-register.el
5284 @pindex sc
5285 @pindex supercite
5286
5287 The same setting as usual mailers should be OK.  The following is an
5288 example of settings.
5289
5290 @lisp
5291 (autoload 'sc-cite-original "sc" nil t)
5292 (setq mail-yank-hooks 'sc-cite-original)
5293 (setq sc-preferred-header-style 1)
5294 (setq sc-electric-references-p nil)
5295 (setq sc-citation-leader "")
5296 (setq sc-load-hook '(lambda () (require 'sc-register)))
5297 (setq sc-preferred-attribution 'registeredname)
5298 @end lisp
5299
5300
5301 @node mu-cite, x-face-mule, supercite, Living with other packages
5302 @subsection mu-cite.el
5303 @pindex mu-cite
5304
5305 The same setting as usual mailers should be OK.  The following is an
5306 example of settings.
5307
5308 If you use mu-cite version 8.0 or earlier:
5309
5310 @lisp
5311 (autoload 'mu-cite/cite-original "mu-cite" nil t)
5312 (setq mail-citation-hook 'mu-cite/cite-original)
5313 @end lisp
5314
5315 If you use mu-cite version 8.1 or later:
5316
5317 @lisp
5318 (autoload 'mu-cite-original "mu-cite" nil t)
5319 (add-hook 'mail-citation-hook (function mu-cite-original))
5320 @end lisp
5321
5322 @node x-face-mule, dired-dd, mu-cite, Living with other packages
5323 @subsection x-face-mule.el
5324 @pindex x-face-mule
5325 @pindex bitmap-mule
5326
5327 It depends on the version of x-face-mule.
5328 If you use x-face-mule 0.19 or older, do the following:
5329
5330 @lisp
5331 (setq wl-highlight-x-face-func
5332       (function
5333        (lambda (beg end)
5334         (x-face-mule:x-face-decode-message-header))))
5335
5336 If you use x-face-mule 0.20 or later, try the following.
5337
5338 (setq wl-highlight-x-face-func
5339       (function
5340        (lambda (beg end)
5341         (x-face-mule-x-face-decode-message-header))))
5342 (require 'x-face-mule)
5343 @end lisp
5344
5345 Use these settings when you use @file{x-face-mule.el} attached to
5346 bitmap-mule 8.0 or later.
5347
5348 @lisp
5349 (autoload 'x-face-decode-message-header "x-face-mule")
5350 (setq wl-highlight-x-face-func
5351       (function x-face-decode-message-header))
5352 @end lisp
5353
5354 If there is an encoded X-Face string in a file @file{~/.xface} (the value
5355 of the variable @code{wl-x-face-file}), it is inserted as a X-Face field
5356 in the draft buffer (if @code{wl-auto-insert-x-face} is non-nil).
5357
5358
5359 @node dired-dd,  , x-face-mule, Living with other packages
5360 @subsection dired-dd(Dired-DragDrop)
5361 @pindex Dired-DragDrop
5362 @pindex Dired-DD
5363 @cindex Drag and Drop
5364
5365 If you embed @file{dired-dd-mime.el} in the dired-dd package, you can
5366 compose multi-part by simple Drag&Drop from dired to the draft buffer
5367 being edited in GNU Emacs (this feature is not Wanderlust specific, but
5368 general-purpose for tm/SEMI).
5369
5370 @lisp
5371 ;; @r{dired-dd:} http://www.asahi-net.or.jp/~pi9s-nnb/dired-dd-home.html
5372 (add-hook
5373  'dired-load-hook
5374  (function
5375   (lambda ()
5376     (load "dired-x")
5377     ;; @r{Set dired-x variables here.}
5378     ;; @r{To and flo@dots{}}
5379     (if window-system
5380         (progn (require 'dired-dd)
5381                (require 'dired-dd-mime))))))
5382 @end lisp
5383
5384
5385 @node Highlights, Advanced Settings, Living with other packages, Customization
5386 @section Highlights
5387
5388 @subsection Customizable Variables
5389
5390 @table @code
5391 @item  wl-summary-highlight
5392 @vindex wl-summary-highlight
5393 The initial setting is t.
5394 If non-nil, the summary is highlighted.
5395
5396 @item  wl-highlight-max-summary-lines
5397 @vindex wl-highlight-max-summary-lines
5398 The initial setting is 10000.
5399 The summary is not highlighted if it has more lines than this value.
5400
5401 @item  wl-summary-highlight-partial-threshold
5402 @vindex wl-summary-highlight-partial-threshold
5403 The initial setting is 1000.
5404 This is a threshold whether the whole summary is highlighted.
5405 If there are more lines of messages in the summary, it is partially
5406 highlighted.
5407
5408 @item  wl-summary-partial-highlight-above-lines
5409 @vindex wl-summary-partial-highlight-above-lines
5410 The initial setting is 30.
5411 If there are more lines of messages than
5412 @code{wl-summary-highlight-partial-threshold} in the summary, messages
5413 after the point that is the same number of lines as this value above the
5414 cursor line are highlighted partially.
5415 (If this value is nil, the last same number of lines as the value of
5416 @code{wl-summary-highlight-partial-threshold} are highlighted.)
5417
5418 @item wl-highlight-body-too
5419 @vindex  wl-highlight-body-too
5420 The initial setting is t.
5421 If non-nil, bodies of drafts and messages are also highlighted.
5422
5423 @item  wl-highlight-message-header-alist
5424 @vindex wl-highlight-message-header-alist
5425 When highlighting headers of drafts and messages, this variable
5426 specifies which faces are allocated to important
5427 (@code{wl-highlight-message-important-header-contents}), secondly
5428 important (@code{wl-highlight-message-important-header-contents2}), and
5429 unimportant (@code{wl-highlight-message-unimportant-header-contents})
5430 message headers.
5431 Similarly, it can be used for allocating arbitrary faces to arbitrary
5432 regular expressions.
5433
5434 @item wl-highlight-citation-prefix-regexp
5435 @vindex  wl-highlight-citation-prefix-regexp
5436 Specifies a regular expression to which quoted lines in bodies of 
5437 drafts and messages match.
5438 Bodies matching to this regular expression are highlighted by the faces
5439 specified by (@code{wl-highlight-message-cited-text-*}).
5440
5441 @item  wl-highlight-highlight-citation-too
5442 @vindex wl-highlight-highlight-citation-too
5443 The initial setting is nil.
5444 If non-nil, the quoting regular expression itself given by
5445 @code{wl-highlight-citation-prefix-regexp} is also highlighted.
5446
5447 @item  wl-highlight-citation-header-regexp
5448 @vindex wl-highlight-citation-header-regexp
5449 Specifies a regular expression that denotes beginning of quotation.
5450 Bodies matching to this regular expression are highlighted by the face
5451 specified by @code{wl-highlight-message-headers}.
5452
5453 @item  wl-highlight-max-message-size
5454 @vindex wl-highlight-max-message-size
5455 The initial setting is 10000.
5456 If a message is larger than this value, it will not be highlighted.
5457 With this variable, highlight is suppressed for uuencode or huge digest
5458 messages.
5459
5460 @item  wl-highlight-signature-separator
5461 @vindex wl-highlight-signature-separator
5462 Specifies regular expressions that denotes the boundary of a signature.
5463 It can be a regular expression, or a list of ones.
5464 Messages after the place that matches this regular expression are
5465 highlighted by the face specified by
5466 @code{wl-highlight-message-signature}.
5467
5468 @item  wl-max-signature-size
5469 @vindex wl-max-signature-size
5470 The initial setting is 400.
5471 This is the largest size for a signature to be highlighted.
5472
5473 @item wl-use-highlight-mouse-line
5474 @vindex  wl-use-highlight-mouse-line
5475 The initial setting is t.
5476 If non-nil, the line pointed by the mouse is highlighted in the folder
5477 mode, summary mode, and the like.
5478 @end table
5479
5480 @subsection Setting Colors and Fonts of the Characters
5481
5482 If you want to change colors or fonts of the characters, you need to
5483 modify faces defined in Wanderlust.  Use set-face-font if you want to
5484 change fonts, and set-face-foreground for colors, and so on.
5485 You cannot write face settings in @file{.emacs}; write in @file{~/.wl}.
5486
5487 For example, if you want to change the color for signatures to yellow,
5488 write
5489
5490 @lisp
5491 (set-face-foreground 'wl-highlight-message-signature "yellow")
5492 @end lisp
5493
5494 @noindent
5495 in @file{~/.wl}.
5496
5497 Faces defined in Wanderlust:
5498
5499 @table @code
5500 @item wl-highlight-message-headers
5501 The face for field names of message headers.
5502
5503 @item wl-highlight-message-header-contents
5504 The face for field bodies of message headers.
5505
5506 @item wl-highlight-message-important-header-contents
5507 The face for important parts of message headers.
5508 Per default, this face is used for a body of Subject field.
5509 You can change its value by editing
5510 @code{wl-highlight-message-header-alist}.
5511
5512 @item wl-highlight-message-important-header-contents2
5513 The face for secondly important parts of message headers.
5514 Per default, this face is used for bodies of From and To fields.
5515 You can change its value by editing
5516 @code{wl-highlight-message-header-alist}.
5517
5518 @item wl-highlight-message-unimportant-header-contents
5519 The face for unimportant parts of message headers.
5520 Per default, this face is used for bodies of X- fields User-Agent fields.
5521 You can change its value by editing
5522 @code{wl-highlight-message-header-alist}.
5523
5524 @item wl-highlight-message-citation-header
5525 The face for headers of quoted messages.
5526
5527 @item wl-highlight-message-cited-text-*
5528 The face for texts of quoted messages.
5529 The last "*" is a single figure so that 10 different colors can be used
5530 according to citation levels.
5531
5532 @item wl-highlight-message-signature
5533 The face for signatures of messages.
5534 The initial settings are khaki for light background colors, and
5535 DarkSlateBlue for dark background colors.
5536
5537 @item wl-highlight-header-separator-face
5538 The face for header separators of draft messages.
5539
5540 @item wl-highlight-summary-important-face
5541 The face for message lines with important marks in the summary.
5542
5543 @item wl-highlight-summary-new-face
5544 The face for message lines with new marks in the summary.
5545
5546 @item wl-highlight-summary-displaying-face
5547 The face for the message line that is currently displayed.
5548 This face is overlaid.
5549
5550 @item wl-highlight-thread-indent-face
5551 The face for the threads that is currently displayed.
5552
5553 @item wl-highlight-summary-unread-face
5554 The face for message lines with unread marks in the summary.
5555
5556 @item wl-highlight-summary-deleted-face
5557 The face for message lines with delete marks in the summary.
5558
5559 @item wl-highlight-summary-refiled-face
5560 The face for message lines with re-file marks in the summary.
5561
5562 @item wl-highlight-refile-destination-face
5563 The face for re-file information part of message lines with re-file
5564 marks in the summary.
5565
5566 @item wl-highlight-summary-copied-face
5567 The face for message lines with copy marks in the summary.
5568
5569 @item wl-highlight-summary-target-face
5570 The face for message lines with temp marks @samp{*} in the summary.
5571
5572 @item wl-highlight-summary-thread-top-face
5573 The face for message lines that are on the top of the thread in the
5574 summary.
5575
5576 @item wl-highlight-summary-normal-face
5577 The face for message lines that are not on top of the thread in the
5578 summary.
5579
5580 @item wl-highlight-folder-unknown-face
5581 The face for folders that are not known to have how many unsync messages
5582 in the folder mode.
5583
5584 @item wl-highlight-folder-zero-face
5585 The face for folders that have no unsync messages in the folder mode.
5586
5587 @item wl-highlight-folder-few-face
5588 The face for folders that have some unsync messages in the folder mode.
5589
5590 @item wl-highlight-folder-many-face
5591 The face for folders that have many unsync messages in the folder mode.
5592 The boundary between `some' and `many' is specified by the variable
5593 @code{wl-folder-many-unsync-threshold}.
5594
5595 @item wl-highlight-folder-unread-face
5596 The face for folders that have no unsync but unread messages in the
5597 folder mode.
5598
5599 @item wl-highlight-folder-killed-face
5600 The face for folders that are deleted from the access group in the
5601 folder mode.
5602
5603 @item wl-highlight-folder-opened-face
5604 The face for open groups in the folder mode.
5605 It is meaningful when @code{wl-highlight-group-folder-by-numbers} is nil.
5606
5607 @item wl-highlight-folder-closed-face
5608 The face for close groups in the folder mode.
5609 It is meaningful when @code{wl-highlight-group-folder-by-numbers} is nil.
5610
5611 @item wl-highlight-folder-path-face
5612 The face for the path to the currently selected folder in the folder
5613 mode.
5614
5615 @item wl-highlight-logo-face
5616 The face for logo in the demo.
5617
5618 @item wl-highlight-demo-face
5619 The face for strings (for example, a version number) in the demo.
5620 @end table
5621
5622 @node Advanced Settings, Customizable Variables, Highlights, Customization
5623 @section Advanced Settings
5624
5625 @menu
5626 * Draft for Reply::             Draft for Reply
5627 * Thread Format::               Appearance of Thread
5628 * User-Agent Header::           User-Agent Header
5629 @end menu
5630
5631
5632 @node Draft for Reply, Thread Format, Advanced Settings, Advanced Settings
5633 @subsection Draft for Replay
5634
5635 If you want, when you replying to articles in mailing lists, the address
5636 in Reply-To field of the original message to be prepared to To field of
5637 the reply draft by simply pressing @kbd{a} in the summary mode, try the
5638 following settings:
5639
5640 @lisp
5641 (setq wl-draft-reply-without-argument-list
5642       '(("Mail-Followup-To" . (("Mail-Followup-To") nil ("Newsgroups")))
5643         ("Followup-To" . (nil nil ("Followup-To")))
5644         (("X-ML-Name" "Reply-To") . (("Reply-To") nil nil))
5645         ("From" . (("From") ("To" "Cc") ("Newsgroups")))))
5646 @end lisp
5647
5648 @noindent
5649 (Only if there are both of "X-ML-Name" and "Reply-To" fields in the
5650 original message, Reply-To: field in the original is copied to To:
5651 field.)
5652
5653 @node Thread Format, User-Agent Header, Draft for Reply, Advanced Settings
5654 @subsection Appearance of Threads
5655
5656 @example
5657   389  09/18(Fri)01:07 [ Teranishi         ] wl-0.6.3
5658   390  09/18(Fri)07:25 +-[ Tsumura-san       ]
5659   391  09/18(Fri)19:24 +-[ Murata-san        ]
5660   392  09/20(Sun)21:49 +-[ Okunishi-san      ]
5661   396  09/20(Sun)22:11 | +-[ Tsumura-san       ]
5662   398  09/21(Mon)00:17 |   +-[ Tsumura-san       ]
5663   408  09/21(Mon)22:37 |     +-[ Okunishi-san      ]
5664   411  09/22(Tue)01:34 |       +-[ Tsumura-san       ]
5665   412  09/22(Tue)09:28 |       +-[ Teranishi         ]
5666   415  09/22(Tue)11:52 |         +-[ Tsumura-san       ]
5667   416  09/22(Tue)12:38 |           +-[ Teranishi         ]
5668   395  09/20(Sun)21:49 +-[ Okunishi-san      ]
5669   397  09/21(Mon)00:15 +-[ Okunishi-san      ]
5670 @end example
5671
5672 Settings to make appearance of threads like shown above:
5673
5674 @lisp
5675 (setq wl-thread-indent-level 2)
5676 (setq wl-thread-have-younger-brother-str "+")
5677 (setq wl-thread-youngest-child-str       "+")
5678 (setq wl-thread-vertical-str             "|")
5679 (setq wl-thread-horizontal-str           "-")
5680 (setq wl-thread-space-str                " ")
5681 @end lisp
5682
5683 If you do not want to see branches, do the following:
5684
5685 @lisp
5686 (setq wl-thread-indent-level 2)
5687 (setq wl-thread-have-younger-brother-str " ")
5688 (setq wl-thread-youngest-child-str       " ")
5689 (setq wl-thread-vertical-str             " ")
5690 (setq wl-thread-horizontal-str           " ")
5691 (setq wl-thread-space-str                " ")
5692 @end lisp
5693
5694
5695 @node User-Agent Header,  , Thread Format, Advanced Settings
5696 @subsection User-Agent
5697
5698 If you are eccentric enough to elaborate X-Mailer or User-Agent fields,
5699 define a function that inserts appropriate strings as you like, and set
5700 it to @code{wl-generate-mailer-string-func}.
5701
5702 The following is an example.
5703
5704 @lisp
5705 (setq wl-generate-mailer-string-func
5706       (function
5707        (lambda ()
5708          (concat "X-Mailer: "
5709                  (format "%s/%s (%s)" wl-appname wl-version wl-codename)))))
5710 @end lisp
5711
5712 @node Customizable Variables,  , Advanced Settings, Customization
5713 @section Customizable Variables
5714
5715 Customizable variables that have not been described yet:
5716
5717 @table @code
5718 @item wl-default-folder
5719 @vindex wl-default-folder
5720 The initial setting is "%inbox".  This is the default value for moving to
5721 a folder and the like.
5722
5723 @item wl-draft-folder
5724 @vindex wl-draft-folder
5725 The initial setting is "+draft".  It is the folder to which drafts are
5726 saved.  It must be a localdir folder.
5727
5728 @item wl-trash-folder
5729 @vindex wl-trash-folder
5730 The initial setting is "+trash".  It is the wastebasket folder.
5731 If you changed this variable, you had better restart Wanderlust.
5732
5733 @item wl-interactive-exit
5734 @vindex wl-interactive-exit
5735 The initial setting is t.
5736 If non-nil, you are asked for confirmation when Wanderlust terminates.
5737
5738 @item wl-interactive-send
5739 @vindex wl-interactive-send
5740 The initial setting is nil.
5741 If non-nil, you are asked for confirmation when mail is sent.
5742
5743 @item wl-folder-sync-range-alist
5744 @vindex wl-folder-sync-range-alist
5745 The initial setting is the list shown below:
5746 @example
5747 (("^&.*$" . "all")
5748  ("^\\+draft$\\|^\\+queue$" . "all"))
5749 @end example
5750 This is an associative list of regular expressions of folder names and
5751 update range of the summary.
5752 Update range is one of the "all", "update", "rescan", "rescan-noscore", "first"
5753  and "last". If a folder do not match, "update" is used.
5754
5755 @item wl-ask-range
5756 @vindex wl-ask-range
5757 The initial setting is t.
5758 If nil, the value of @code{wl-folder-sync-range-alist} is used for
5759 updating the summary when you changed folders.
5760
5761 @item wl-mime-charset
5762 @vindex wl-mime-charset
5763 The initial setting is 'x-ctext.
5764 This is the MIME charset for messages that are not MIME (e.g. without
5765 Content-Type). This value also used as default charset for summary.
5766 (If you want to share Summary on Nemacs and other Emacsen,
5767 set this value as 'iso-2022-jp.)
5768
5769 @item wl-search-mime-charset
5770 @vindex wl-search-mime-charset
5771 The initial setting is 'iso-2022-jp.
5772 This is used as a MIME charset for searching.
5773
5774 @item wl-highlight-folder-with-icon
5775 @vindex wl-highlight-folder-with-icon
5776 This is meaningful for XEmacs only.  The initial setting depends on
5777 XEmacs (t for XEmacs with icons).
5778
5779 @item wl-strict-diff-folders
5780 @vindex wl-strict-diff-folders
5781 This is a list of regular expressions of folders.
5782 Unread messages are checked, for example when you press @kbd{s} in
5783 the folder mode, usually in a brief way (rapidly processed but not
5784 accurate).
5785 The folders matching this variable are seriously checked.
5786 You may want to set this variable so as to match conditional filter
5787 folders for IMAP4 folders.
5788 The initial setting is nil.
5789
5790 @item wl-folder-use-server-diff
5791 @vindex wl-folder-use-server-diff
5792 When unread messages are checked, for example when you press @kbd{s} in
5793 the folder mode, usually (the number of messages on the server) - (the
5794 number of local messages) will be the number of unread messages.
5795 However, if this variable is non-nil, the number of unread messages on
5796 the server is checked.  This affects IMAP4 folders only, but IMAP4
5797 folders in mail boxes matching
5798 @code{elmo-imap4-disuse-server-flag-mailbox-regexp} are not checked for
5799 the number of unread messages on the server, even if they matches this
5800 variable.  The initial setting is t.
5801
5802 @item wl-auto-check-folder-name
5803 @vindex wl-auto-check-folder-name
5804 The initial setting is nil.
5805 If non-nil, the folder with the name of the value is checked for unread
5806 messages at the start.
5807 If it is 'none, no folders are checked.
5808 If it is a list, all folders in the list are checked at the start.
5809
5810 @item wl-auto-uncheck-folder-list
5811 @vindex wl-auto-uncheck-folder-list
5812 The initial setting is '("\\$.*").
5813 Folders with the name matching this variable are not checked for unread
5814 messages at the start, even if they are included in the groups in
5815 @code{wl-auto-check-folder-name}.
5816
5817 @item wl-auto-check-folder-list
5818 @vindex wl-auto-check-folder-list
5819 The initial setting is nil.
5820 Folders with the name matching this variable are always checked for
5821 unread messages at the start, if they are included in the groups in
5822 @code{wl-auto-check-folder-name}.
5823 This takes precedence over @code{wl-auto-uncheck-folder-list}.
5824
5825 @item wl-no-save-folder-list
5826 @vindex wl-no-save-folder-list
5827 The initial setting is '("^/.*$").
5828 This is a list of regular expressions of folders not to be saved.
5829
5830 @item wl-save-folder-list
5831 @vindex wl-save-folder-list
5832 The initial setting is nil.
5833 This is a list of regular expressions of folders to be saved.
5834 This takes precedence over @code{wl-no-save-folder-list}.
5835
5836 @item wl-folder-mime-charset-alist
5837 @vindex wl-folder-mime-charset-alist
5838 The initial setting is the list shown below:
5839
5840 @lisp
5841 '(("^-alt\\.chinese" . big5)
5842   ("^-relcom\\." . koi8-r)
5843   ("^-tw\\." . big5)
5844   ("^-han\\." . euc-kr)
5845   )
5846 @end lisp
5847
5848 This is an associative list of regular expressions of folder names and
5849 MIME charsets.
5850 If a folder do not match, @code{wl-mime-charset} is used.
5851
5852 @item wl-folder-init-load-access-folders
5853 @vindex wl-folder-init-load-access-folders
5854 The initial setting is nil.
5855 This is a list of access groups to be loaded specifically at the start.
5856 If it is  nil, @code{wl-folder-init-no-load-access-folders} is referred.
5857
5858 @item wl-folder-init-no-load-access-folders
5859 @vindex wl-folder-init-no-load-access-folders
5860 The initial setting is nil.
5861 This is a list of access groups not to be loaded specifically at the
5862 start.
5863 It is ignored if @code{wl-folder-init-load-access-folders} is non-nil.
5864
5865 @item wl-delete-folder-alist
5866 @vindex wl-delete-folder-alist
5867 The initial setting is '(("^-" . remove)).
5868 This list determines disposition of messages with delete marks.
5869 Each item in the list is a folder and destination; you can specify any
5870 one of the following in the place of destination:
5871
5872 @example
5873 'remove or 'null : deletes the messages instantly.
5874 string           : moves the messages to the specific folder.
5875 'trash or others : moves the messages to `wl-trash-folder'.
5876 @end example
5877
5878 @item wl-refile-policy-alist
5879 @vindex wl-refile-policy-alist
5880 The initial setting is '(("^[-=]" . copy) (".*" . move)).
5881 This list determines whether messages with re-file marks are moved or
5882 copied.
5883 Each item in the list is a cons cell of a folder and copy or move.
5884
5885 @item wl-x-face-file
5886 @vindex wl-x-face-file
5887 The initial setting is "~/.xface".
5888 The name of the file that contains encoded X-Face strings.
5889 @xref{x-face-mule}.
5890
5891 @item wl-demo-display-logo
5892 @vindex wl-demo-display-logo
5893 If non-nil, bitmap image is shown on the opening demo.
5894
5895 @item elmo-use-database
5896 @vindex  elmo-use-database
5897 This is meaningful for XEmacs only.  The initial setting depends on
5898 XEmacs (t for XEmacs with dbm).
5899 If non-nil, Message-ID is controlled by dbm.
5900
5901 @item elmo-passwd-alist-file-name
5902 @vindex  elmo-passwd-alist-file-name
5903 The initial setting is "passwd".
5904 This is the name of the file in which passwords are saved.
5905 @code{elmo-passwd-alist-save} saves current passwords to the file.
5906
5907 @item elmo-nntp-list-folders-use-cache
5908 @vindex elmo-nntp-list-folders-use-cache
5909 The initial setting is 600 (in seconds).
5910 This is period in seconds during which results of @samp{list} and
5911 @samp{list active} in NNTP are cached.  If it is nil, they are not
5912 cached.
5913
5914 @item elmo-nntp-max-number-precedes-list-active
5915 @vindex elmo-nntp-max-number-precedes-list-active
5916 The initial setting is nil.
5917 If non-nil, the number of article obtained by @samp{list active} in NNTP
5918 are used as the maximum article number of the folder.
5919 Set this to t if you are using for example INN 2.3 as an NNTP server,
5920 and if the number of read messages is not correct.
5921
5922 @item elmo-nntp-default-use-listgroup
5923 @vindex elmo-nntp-default-use-listgroup
5924 The initial setting is t.
5925 If non-nil, @samp{listgroup} is used for checking the total number of
5926 articles.
5927 If it is nil, @samp{group} is used.  In the latter case, the processing
5928 will be a little faster at the sacrifice of accuracy.
5929
5930 @item elmo-pop3-send-command-synchronously
5931 @vindex elmo-pop3-send-command-synchronously
5932 The initial setting is nil.
5933 If non-nil, POP3 commands are issued synchronously.  Some implementation
5934 of POP3 server fails to get summary information without this setting.
5935 You may have to set this variable to t, if the process hangs while
5936 looking up POP3.
5937
5938 @item elmo-dop-flush-confirm
5939 @vindex elmo-dop-flush-confirm
5940 The initial setting is t.
5941 If non-nil, you are asked for confirmation if accumulated off-line
5942 operations are executed.
5943 @end table
5944
5945
5946 @c
5947 @c  Mailing List
5948 @c
5949 @node Mailing List, Addition, Customization, Top
5950 @chapter Wanderlust Mailing List
5951
5952 @display
5953 Wanderlust Mailing List @t{<wl@@lists.airs.net>}
5954 @end display
5955
5956 Topics related to Wanderlust are discussed in the mailing list.
5957 The latest version is also announced there (in Japanese, sorry).
5958
5959 A guide can be obtained automatically by sending mail to
5960 @t{wl-ctl@@lists.airs.net} with the body
5961
5962 @example
5963 # guide
5964 @end example
5965 Please send bug reports or patches to the mailing list.
5966 You can post to the mailing list even though you are not a member of it.
5967
5968 I would like to express my thanks to the members of the mailing list for 
5969 valuable advice and many pieces of code they contributed.
5970
5971
5972 @c
5973 @c  Addition
5974 @c
5975 @node Addition, Index, Mailing List, Top
5976 @chapter Additional Information
5977
5978 @section Brief History
5979
5980 @example
5981 1998  3/05    Tried to make a prototype that displays MH messages in threads.
5982       3/10    Made a msgdb mechanism by elisp.
5983       3/26    IMAP and NNTP can be displayed in threads.
5984       4/13    Began to assemble thread display modules as elmo.
5985       5/01    Finished 0.1.0, initial version with many defects.
5986       6/12    I made a slip of the tongue and said I was writing elisp
5987               mailer supporting IMAP
5988       6/16    0.1.3 was announced at tm-ja, elisp ML.
5989       6/22    Thanks to Kitame-san, the mailing list started at northeye.org.
5990       7/01    Support for mm-backend (0.3.0).
5991       8/25    multi folder added (0.5.0).
5992       8/28    filter folder added (0.5.1).
5993       9/10    You can open/close threads (0.6.0).
5994       9/11    fldmgr by Murata-san made editing folders easy.
5995       9/18    lha folders added by Okunishi-san (0.6.3).
5996       9/24    Display of branches of threads (0.6.5).
5997       9/28    Compression folder supporting multiple archivers by Okunishi-san.
5998      10/28    Off-line operations (0.7.4).
5999      12/09    Becomes beta version.
6000      12/21    wl-expire by Murata-san.
6001 1999  2/03    auto-refile by Tsumura-san.
6002       4/28    wl-template by Murata-san.
6003       5/18    Released 1.0.0 stable.
6004       7/5     Scoring by Murata-san (2.1.0).
6005 @end example
6006
6007 See @file{ChangeLog} for details.
6008
6009 @section The Name
6010
6011 According to a dictionary, Wanderlust has the meaning:
6012
6013 @display
6014 wanderlust
6015   n eager longing for or impulse towards travelling in distant lands
6016   [Ger, fr wandern to wander + lust desire, pleasure]
6017 @end display
6018
6019 @noindent
6020 but I had no profound intention.
6021 (if farfetched, IMAP @t{=>} you can read mail anywhere @t{=>} desire to
6022 wander ?)
6023
6024 Elmo is the abbreviation of @samp{Elisp Library for Message
6025 Orchestration}.
6026 At first I meant the red puppet in the Sesame Street, but you may
6027 associate it with
6028 Wandering @t{=>} Drifting @t{=>} Guidepost @t{=>} St.@: Elmo's fire @t{=>} elmo.
6029
6030 @section Code Names
6031
6032 Each versions has code names (they are almost jokes).
6033 Currently they are picked up alphabetically from the top 40 hits of
6034 U.S. Billboard magazines in 1980s.
6035
6036 (@samp{http://www.summer.com.br/~pfilho/html/top40/index.html})
6037
6038
6039 @node Index,  , Addition, Top
6040 @unnumbered Index
6041
6042 @menu
6043 * Concept Index::               Concept Index
6044 * Key Index::                   Key Index
6045 * Variable Index::              Variable Index
6046 * Function Index::              Function Index
6047 @end menu
6048
6049 @node Concept Index, Key Index, Index, Index
6050 @unnumberedsec Concept Index
6051 @printindex cp
6052
6053 @node Key Index, Variable Index, Concept Index, Index
6054 @unnumberedsec Key Index
6055 @printindex ky
6056
6057 @node Variable Index, Function Index, Key Index, Index
6058 @unnumberedsec Variable Index
6059 @printindex vr
6060
6061 @node Function Index,  , Variable Index, Index
6062 @unnumberedsec Function Index
6063 @printindex fn
6064
6065 @summarycontents
6066 @contents
6067 @bye