Added description about auto-refile.
[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/12 00:04:16 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 (@code{wl-summary-toggle-thread})
2652
2653 @item l
2654 @kindex l (Summary)
2655 @findex wl-summary-toggle-disp-folder
2656 Toggle displaying of folder window.
2657 (@code{wl-summary-toggle-disp-folder})
2658
2659 @item v
2660 @kindex v (Summary)
2661 Toggle displaying of message window.
2662 @findex wl-summary-toggle-disp-msg
2663 (@code{wl-summary-toggle-disp-msg})
2664
2665 @item V
2666 @kindex V (Summary)
2667 Move to the virtual folder with the condition specified.
2668 If called with prefix argument and current folder is virtual, exit it.
2669 @findex wl-summary-virtual
2670 (@code{wl-summary-virtual})
2671
2672 @item @key{TAB}
2673 @kindex @key{TAB} (Summary)
2674 @findex wl-summary-goto-last-displayed-msg
2675 Jump to the message which is displayed last.
2676 (@code{wl-summary-goto-last-displayed-msg})
2677
2678 @item ?
2679 @kindex ? (Summary)
2680 Put @samp{*} mark on the messages that satisfies the specified condition.
2681 @findex wl-summary-pick
2682 (@code{wl-summary-pick})
2683
2684 @item R
2685 @kindex R (Summary)
2686 @findex wl-summary-mark-as-read
2687 Mark as read the message at the current cursor point.
2688 (@code{wl-summary-mark-as-read})
2689
2690 @item i
2691 @kindex i (Summary)
2692 Prefetch the message at the current cursor point.
2693 @findex wl-summary-prefetch
2694 (@code{wl-summary-prefetch})
2695
2696 @item x
2697 @kindex x (Summary)
2698 Execute @samp{D}, @samp{o} and @samp{O} marks.
2699 @findex wl-summary-exec
2700 (@code{wl-summary-exec})
2701
2702 @item *
2703 @kindex * (Summary)
2704 @findex wl-summary-target-mark-line
2705 Put target mark on the message at the current cursor point.
2706 (@code{wl-summary-target-mark-line})
2707
2708 @item o
2709 @kindex o (Summary)
2710 Put refile mark on the message at the current cursor point.
2711 @findex wl-summary-refile
2712 (@code{wl-summary-refile})
2713
2714 @item C-o
2715 @kindex C-o (Summary)
2716 Execute auto refile.
2717 @findex wl-summary-auto-refile
2718 (@code{wl-summary-auto-refile})
2719
2720 @item O
2721 @kindex O (Summary)
2722 Put copy mark on the message at the current cursor point.
2723 @findex wl-summary-copy
2724 (@code{wl-summary-copy})
2725
2726 @item M-o
2727 @kindex M-o (Summary)
2728 Put refile mark on the message at the current cursor point with the destination
2729 previously specified.
2730 @findex wl-summary-refile-prev-destination
2731 (@code{wl-summary-refile-prev-destination})
2732
2733 @item d
2734 @kindex d (Summary)
2735 @findex wl-summary-delete
2736 Put delete mark on the message at the current cursor point.
2737 (@code{wl-summary-delete})
2738
2739 @item u
2740 @kindex u (Summary)
2741 @findex wl-summary-unmark
2742 Unmark the temporal mark on the message at the current cursor point.
2743 (@code{wl-summary-unmark})
2744
2745 @item U
2746 @kindex U (Summary)
2747 Unmark all the temporal marks.
2748 @findex wl-summary-unmark-all
2749 (@code{wl-summary-unmark-all})
2750
2751 @item r R
2752 @kindex r R (Summary)
2753 @findex wl-summary-mark-as-read-region
2754 Mark as read messages in the specified region.
2755 (@code{wl-summary-mark-as-read-region})
2756
2757 @item r $
2758 @kindex r $ (Summary)
2759 @findex wl-summary-mark-as-important-region
2760 Mark as important @samp{$} messages in the specified region.
2761 If @samp{$} already exists, it is deleted.
2762 (@code{wl-summary-mark-as-important-region})
2763
2764 @item r !
2765 @kindex r ! (Summary)
2766 @findex wl-summary-mark-as-unread-region
2767 Mark as unread messages in the specified region.
2768 (@code{wl-summary-mark-as-unread-region})
2769
2770 @item r i
2771 @kindex r i (Summary)
2772 @findex wl-summary-prefetch-region
2773 Prefetch messages in the specified region.
2774 (@code{wl-summary-prefetch-region})
2775
2776 @item r x
2777 @kindex r x (Summary)
2778 @findex wl-summary-exec-region
2779 Execute @samp{D}, @samp{o} and @samp{O} marks on the messages in the
2780 specified region.
2781 (@code{wl-summary-exec-region})
2782
2783 @item r *
2784 @kindex r * (Summary)
2785 @findex wl-summary-target-mark-region
2786 Put target mark on the messages in the specified region.
2787 (@code{wl-summary-target-mark-region})
2788
2789 @item r o
2790 @kindex r o (Summary)
2791 @findex wl-summary-refile-region
2792 Put refile mark on the messages in the specified region.
2793 (@code{wl-summary-refile-region})
2794
2795 @item r O
2796 @kindex r O (Summary)
2797 @findex wl-summary-copy-region
2798 Put copy mark on the messages in the specified region.
2799 (@code{wl-summary-copy-region})
2800
2801 @item r d
2802 @kindex r d (Summary)
2803 @findex wl-summary-delete-region
2804 Put delete mark on the messages in the specified region.
2805 (@code{wl-summary-delete-region})
2806
2807 @item r u
2808 @kindex r u (Summary)
2809 @findex wl-summary-unmark-region
2810 Delete temporal mark on the messages in the specified region.
2811 (@code{wl-summary-unmark-region})
2812
2813 @item r y
2814 @kindex r y (Summary)
2815 Save messages in the specified region.
2816 @findex wl-summary-save-region
2817 (@code{wl-summary-save-region})
2818
2819 @item t R
2820 @kindex t R (Summary)
2821 @findex wl-thread-mark-as-read
2822 Mark as read messages which are the descendant of the current thread.
2823 With prefix argument, it affects on the all messages in the thread tree.
2824 (@code{wl-thread-mark-as-read})
2825
2826 @item t $
2827 @kindex t $ (Summary)
2828 @findex wl-thread-mark-as-important
2829 Put important mark @samp{$} on the messages which are the 
2830 descendant of the current thread.
2831 If @samp{$} mark exists, it is deleted.
2832 With prefix argument, it affects on the all messages in the thread tree.
2833 (@code{wl-thread-mark-as-important})
2834
2835 @item t !
2836 @kindex t ! (Summary)
2837 @findex wl-thread-mark-as-unread
2838 Mark as unread messages which are the descendant of the current thread.
2839 With prefix argument, it affects on the all messages in the thread tree.
2840 (@code{wl-thread-mark-as-unread})
2841
2842 @item t i
2843 @kindex t i (Summary)
2844 @findex wl-thread-prefetch
2845 Prefetch messages which are the descendant of the current thread.
2846 With prefix argument, it affects on the all messages in the thread tree.
2847 (@code{wl-thread-prefetch})
2848
2849 @item t x
2850 @kindex t x (Summary)
2851 @findex wl-thread-exec
2852 Execute @samp{D}, @samp{o} and @samp{O} marks on the messages which are
2853 the descendant of the current thread.  With prefix argument, it affects
2854 on the all messages in the thread tree.
2855 (@code{wl-thread-exec})
2856
2857 @item t *
2858 @kindex t * (Summary)
2859 @findex wl-thread-target-mark
2860 Put target mark @samp{*} on the messages which are the descendant of the
2861 current thread.  With prefix argument, it affects on the all messages in
2862 the thread tree.
2863 (@code{wl-thread-target-mark})
2864
2865 @item t o
2866 @kindex t o (Summary)
2867 @findex wl-thread-refile
2868 Put refile mark on the messages which are the descendant of the current thread.
2869 With prefix argument, it affects on the all messages in the thread tree.
2870 (@code{wl-thread-refile})
2871
2872 @item t O
2873 @kindex t O (Summary)
2874 @findex wl-thread-copy
2875 Put copy mark on the messages which are the descendant of the current thread.
2876 With prefix argument, it affects on the all messages in the thread tree.
2877 (@code{wl-thread-copy})
2878
2879 @item t d
2880 @kindex t d (Summary)
2881 @findex wl-thread-delete
2882 Put delete mar on the messages which are the descendant of the current thread.
2883 With prefix argument, it affects on the all messages in the thread tree.
2884 (@code{wl-thread-delete})
2885
2886 @item t u
2887 @kindex t u (Summary)
2888 @findex wl-thread-unmark
2889
2890 Unmark temporal mark on the messages which are the descendant of the
2891 current thread. With prefix argument, it affects on the all messages in
2892 the thread tree. 
2893 (@code{wl-thread-unmark})
2894
2895 @item t y
2896 @kindex t y (Summary)
2897 @findex wl-thread-save
2898 Save messages which are the descendant of the current thread.
2899 With prefix argument, it affects on the all messages in the thread tree.
2900 (@code{wl-thread-save})
2901
2902 @item m i
2903 @kindex m i (Summary)
2904 @findex wl-summary-target-mark-prefetch
2905 Prefetch all messages which have target mark @samp{*}.
2906 (@code{wl-summary-target-mark-prefetch})
2907
2908 @item m R
2909 @kindex m R (Summary)
2910 @findex wl-summary-target-mark-mark-as-read
2911 Mark as read all messages which have target mark @samp{*}.
2912 (@code{wl-summary-target-mark-mark-as-read})
2913
2914 @item m $
2915 @kindex m $ (Summary)
2916 @findex wl-summary-target-mark-mark-as-important
2917 Mark as important all messages which have target mark @samp{*}.
2918 If already marked as @samp{$}, it is deleted.
2919 (@code{wl-summary-target-mark-mark-as-important})
2920
2921 @item m !
2922 @kindex m ! (Summary)
2923 @findex wl-summary-target-mark-mark-as-unread
2924 Mark as unread all messages which have target mark @samp{*}.
2925 (@code{wl-summary-target-mark-mark-as-unread})
2926
2927 @item m o
2928 @kindex m o (Summary)
2929 @findex wl-summary-target-mark-refile
2930 Put refile mark on the messages which have target mark @samp{*}.
2931 (@code{wl-summary-target-mark-refile})
2932
2933 @item m O
2934 @kindex m O (Summary)
2935 @findex wl-summary-target-mark-copy
2936 Put copy mark on the messages which have target mark @samp{*}.
2937 (@code{wl-summary-target-mark-copy})
2938
2939 @item m d
2940 @kindex m d (Summary)
2941 @findex wl-summary-target-mark-delete
2942 Put delete mark on the messages which have target mark @samp{*}.
2943 (@code{wl-summary-target-mark-delete})
2944
2945 @item m y
2946 @kindex m y (Summary)
2947 @findex wl-summary-target-mark-save
2948 Save messages which have target mark @samp{*}.
2949 (@code{wl-summary-target-mark-save})
2950
2951 @item m u
2952 @kindex m u (Summary)
2953 Unmark all temporal marks.
2954 (@code{wl-summary-delete-all-temp-marks})
2955 @findex wl-summary-delete-all-temp-marks
2956
2957 @item m a
2958 @kindex m a (Summary)
2959 Put target mark @samp{*} on the all messages.
2960 (@code{wl-summary-target-mark-all})
2961 @findex wl-summary-target-mark-all
2962
2963 @item m t
2964 @kindex m t (Summary)
2965 Put target mark @samp{*} on the messages in the current thread.
2966 @findex wl-summary-target-mark-thread
2967 (@code{wl-summary-target-mark-thread})
2968
2969 @item m r
2970 @kindex m r (Summary)
2971 @findex wl-summary-target-mark-region
2972 Put target mark @samp{*} on the messages in the specified region.
2973 (@code{wl-summary-target-mark-region})
2974
2975 @item m A
2976 @kindex m A (Summary)
2977 @findex wl-summary-target-mark-reply-with-citation
2978 Prepare a draft which cites all messages which have target mark @samp{*}.
2979 (@code{wl-summary-target-mark-reply-with-citation})
2980
2981 @item m f
2982 @kindex m f (Summary)
2983 @findex wl-summary-target-mark-forward
2984 Prepare a draft which forwards all messages which have target mark @samp{*}.
2985 (@code{wl-summary-target-mark-forward})
2986
2987 @item m U
2988 @kindex m U (Summary)
2989 @findex wl-summary-target-mark-uudecode
2990 Uudecode the messages which have target mark @samp{*}.
2991 (@code{wl-summary-target-mark-uudecode})
2992
2993 @item m ?
2994 @kindex m ? (Summary)
2995 @findex wl-summary-target-mark-pick
2996 Pick messages from the @samp{*} marked messages. 
2997 That is, @samp{*} marks on the messages are remained
2998 if the specified condition is satisfied.
2999 (@code{wl-summary-target-mark-pick})
3000
3001 @item M-t
3002 @kindex M-t (Summary)
3003 @findex wl-toggle-plugged
3004 Toggle offline/online status of Wanderlust.
3005 (@code{wl-toggle-plugged})
3006
3007 @item C-t
3008 @kindex C-t (Summary)
3009 Start Wanderlust's plug-status manager.
3010 (@code{wl-plugged-change})
3011
3012 @item C-c C-o
3013 @kindex C-c C-o (Summary)
3014 @findex wl-jump-to-draft-buffer
3015 Move to the draft buffer if available.  If multiple draft buffer exists,
3016 moved to one after another.  If prefix argument is specified, load draft
3017 folder's message to the draft buffer and jump to it.
3018 (@code{wl-jump-to-draft-buffer})
3019 @end table
3020
3021 @section Customize variables
3022
3023 @table @code
3024 @item wl-summary-move-order
3025 @vindex wl-summary-move-order
3026 The initial setting is 'unread.
3027 Specify cursor moving policy.
3028 If you want to precede new messages, set 'new.
3029 If you want to precede unread messages, set 'unread.
3030 If nil, proceed to next message.
3031
3032 @item wl-auto-select-first
3033 @vindex wl-auto-select-first
3034 The initial setting is nil.
3035 If non-nil, first message is automatically displayed.
3036
3037 @item wl-auto-select-next
3038 @vindex wl-auto-select-next
3039 The initial setting is nil.
3040 If non-nil, jump to next summary automatically.
3041 If 'unread, jump to next unread folder's summary after confirmation.
3042 If 'skip-no-unread, unread folders are automatically skipped.
3043
3044 @item wl-thread-insert-opened
3045 @vindex wl-thread-insert-opened
3046 The initial setting is nil.
3047 If non-nil, thread is inserted as opened.
3048
3049 @item wl-thread-open-reading-thread
3050 @vindex wl-thread-open-reading-thread
3051 The initial setting is t.
3052 If non-nil, reading thread is automatically opened though it is closed thread.
3053
3054 @item wl-summary-exit-next-move
3055 @vindex wl-summary-exit-next-move
3056 The initial setting is t.
3057 If non-nil, move to next folder at summary exit.
3058
3059 @item wl-folder-move-cur-folder
3060 @vindex wl-folder-move-cur-folder
3061 The initial setting is nil.
3062 If non-nil, cursor position on the folder is moved.
3063
3064 @item wl-summary-weekday-name-lang
3065 @vindex  wl-summary-weekday-name-lang
3066 The initial setting is "ja".
3067 Specify language of the weekday.
3068 "en" displays English, "fr" displays French, "de" displays Deutsch.
3069
3070 @item wl-summary-fix-timezone
3071 @vindex  wl-summary-fix-timezone
3072 The initial setting is "JST".
3073 Timezone to adjust summary's timezone.
3074 If nil, adjust to UTC.
3075
3076 @item wl-use-petname
3077 @vindex  wl-use-petname
3078 The initial setting is t.
3079 If non-nil, sender part displays nickname.
3080
3081 @item wl-break-pages
3082 @vindex  wl-break-pages
3083 The initial setting is t.
3084 If non-nil, message is splitted as pages by @samp{^L}.
3085
3086 @item wl-message-window-size
3087 @vindex  wl-message-window-size
3088 The initial setting is '(1 . 4).
3089 A cons cell to specify the rate of summary and message window.
3090 car:cdr corresponds summary:message.
3091
3092 @item wl-summary-recenter
3093 @vindex  wl-summary-recenter
3094 The initial setting is t.
3095 If non-nil, cursor point is moved to the center of the summary window.
3096
3097 @item wl-summary-indent-length-limit
3098 @vindex  wl-summary-indent-length-limit
3099 The initial setting is 46.
3100 Specify the limit of thread indent level.
3101 If nil, max indent level is unlimited.
3102
3103 @item wl-summary-no-from-message
3104 @vindex  wl-summary-no-from-message
3105 The initial setting is "nobody@@nowhere?".
3106 A string which is displayed when there's no From: field in the message.
3107
3108 @item wl-summary-no-subject-message
3109 @vindex  wl-summary-no-subject-message
3110 The initial setting is "(WL:No Subject in original.)".
3111 A string which is displayed when there's no Subject: field in the message.
3112
3113 @item wl-summary-width
3114 @vindex  wl-summary-width
3115 The initial setting is 80.
3116 Width of summary line. If nil, summary line's width is as is.
3117
3118 @item wl-use-folder-petname
3119 @vindex  wl-use-folder-petname
3120 The initial setting is '(modeline).
3121 A list of display policy (symbol) of folder nickname.
3122 Available symbols are:
3123
3124 @table @code
3125 @item modeline
3126 Display folder petname on modeline.
3127 @item ask-folder
3128 Destination folder is notified as nickname if
3129 @code{wl-auto-select-next} is non-nil.
3130 @item read-folder
3131 You can input folder name by nickname in the function
3132 @code{wl-summary-read-folder}.
3133 @end table
3134
3135 @item wl-summary-move-direction-toggle
3136 @vindex  wl-summary-move-direction-toggle
3137 The initial setting is t.
3138 If non-nil, last executed @kbd{p}, @kbd{P}, @kbd{n}, @kbd{N} toggles
3139 the direction of cursor move.
3140 If you want to aware of reading direction, set this to t.
3141
3142 @item wl-from-width
3143 @vindex wl-from-width
3144 The initial setting is 17.
3145 Width of sender part of summary line.
3146
3147 @item wl-summary-divide-thread-when-subject-changed
3148 @vindex wl-summary-divide-thread-when-subject-changed
3149 The initial setting is nil.
3150 If non-nil, thread is splitted if the subject is changed.
3151
3152 @item wl-summary-search-via-nntp
3153 @vindex wl-summary-search-via-nntp
3154 The initial setting is 'confirm.
3155 If non-nil and @code{wl-summary-jump-to-msg-by-message-id} failed,
3156 call @code{wl-summary-jump-to-msg-by-message-id-via-nntp} and
3157 search message from the NNTP server @code{elmo-default-nntp-server}.
3158 The value of @code{elmo-default-nntp-user}, @code{elmo-default-nntp-port}, 
3159 @code{elmo-default-nntp-ssl} are used. If 'confirm, server name can
3160 be specified. You can specify NNTP folder format like 
3161 @samp{-:username@@servername:119!}.
3162
3163 @item wl-summary-keep-cursor-command
3164 @vindex wl-summary-keep-cursor-command
3165 The initial setting is 
3166 '(wl-summary-goto-folder wl-summary-goto-last-visited-folder).
3167 When you entered to summary by these commands and the target summary
3168 buffer already exists, summary status is not automatically updated and 
3169 cursor position is saved.
3170
3171 @item wl-summary-update-confirm-threshold
3172 @vindex wl-summary-update-confirm-threshold
3173 The initial setting is 500.
3174 If updated message number is larger than this value, 
3175 confirm whether drop them or not.
3176
3177 @item wl-summary-always-sticky-folder-list
3178 @vindex wl-summary-always-sticky-folder-list
3179 The initial setting is nil.
3180 @code{wl-summary-always-sticky-folder-list} specifies the folders that are
3181 automatically sticked. Each element is regexp of folder name.
3182
3183 @item wl-summary-reserve-mark-list
3184 @vindex wl-summary-reserve-mark-list
3185 The initial setting is '("o" "O" "D").
3186 If a message is already marked as temporal marks in this list, 
3187 the message is not marked by any mark command.
3188
3189 @item wl-summary-skip-mark-list
3190 @vindex wl-summary-skip-mark-list
3191 The initial setting is '("D").
3192 If a message is already marked as temporal marks in this list, 
3193 the message is skipped at cursor move.
3194
3195 @item wl-fetch-confirm-threshold
3196 @vindex wl-fetch-confirm-threshold
3197 The initial setting is 30000 (bytes).
3198 If displaying message has larger size than this value,
3199 Wanderlust confirms whether fetch the message or not.
3200 If nil, the message is fetched without confirmation.
3201
3202 @item wl-prefetch-threshold
3203 @vindex wl-prefetch-threshold
3204 The initial setting is 30000 (bytes). 
3205 If prefetching message has larger size than this value and
3206 @code{wl-prefetch-confirm} is non-nil,
3207 Wanderlust confirms whether prefetch the message or not.
3208 If @code{wl-prefetch-threshold} is nil, the message is prefetched
3209 without confirmation.
3210
3211 @item wl-prefetch-confirm
3212 @vindex wl-prefetch-confirm
3213 The initial setting is t. If non-nil, 
3214 Wanderlust confirms whether prefetch the message or not if the
3215 message has larger size than @code{wl-prefetch-threshold}.
3216
3217 @item wl-cache-fetch-threshold
3218 @vindex wl-cache-fetch-threshold
3219 The initial setting is 30000 (bytes).
3220 The messages which have larger size than @code{wl-fetch-confirm-threshold}
3221 are skipped buffer caching mechanism. If nil, any messages are prefetched by
3222 buffer caching mechanism.
3223
3224 @item elmo-imap4-use-cache
3225 @vindex elmo-imap4-use-cache
3226 The initial setting is t.
3227 If non-nil, messages read via IMAP4 are cached.
3228
3229 @item elmo-nntp-use-cache
3230 @vindex elmo-nntp-use-cache
3231 The initial setting is t.
3232 If non-nil, messages read via NNTP are cached.
3233
3234 @item elmo-pop3-use-cache
3235 @vindex elmo-pop3-use-cache
3236 The initial setting is t.
3237 If non-nil, messages read via POP3 are cached.
3238 @end table
3239
3240 @c
3241 @c  Message
3242 @c
3243 @node Message, Draft, Summary, Top
3244 @chapter Message Buffer
3245
3246 Message Buffers utilize MIME-View mode of SEMI/tm.
3247 For operational procedures and key bindings, refer to respective
3248 documents.
3249 @xref{MIME-View, , ,mime-ui-ja, a MIME user interface for GNU Emacs}.
3250
3251 @kbd{p} at the top of a message or @kbd{n} at the bottom of a message
3252 brings you back to Summary mode.
3253 @kbd{l} toggles display of Summary mode buffer.
3254
3255 @section Key Bindings
3256
3257 @table @kbd
3258
3259 @item l
3260 @kindex l (Message)
3261 @findex wl-message-toggle-disp-summary
3262 Toggles display of Summary mode buffer.
3263 (@code{wl-message-toggle-disp-summary})
3264
3265 @item Button-2
3266 @findex wl-message-refer-article-or-url
3267 @kindex Button-2 (Message)
3268 Assumes Message-ID at the mouse pointer, and shows the corresponding
3269 message if found.
3270 (@code{wl-message-refer-article-or-url})
3271
3272 @item Button-4 (upward movement of a wheel)
3273 @kindex Button-4 (Message)
3274 @findex wl-message-wheel-down
3275 Scrolls the message backwards.  When the top of the message is hit,
3276 moves to the previous message.
3277 (@code{wl-message-wheel-down})
3278
3279 @item Button-5 (downward movement of a wheel)
3280 @kindex Button-5 (Message)
3281 @findex wl-message-wheel-up
3282 Scrolls the message forward.  When the bottom of the message is hit,
3283 moves to the next message.
3284 (@code{wl-message-wheel-up})
3285 @end table
3286
3287 @section Customizable Variables
3288
3289 @table @code
3290 @item wl-message-window-size
3291 @vindex wl-message-window-size
3292 Initial setting is @code{'(1 . 4)}.  It is a cons cell and the ratio of
3293 its car and cdr value corresponds to the ratio of Summary and Message
3294 windows.
3295 @end table
3296
3297 @c
3298 @c  Draft
3299 @c
3300 @node Draft, Disconnected Operations, Message, Top
3301 @chapter Draft Buffer
3302
3303 At Summary mode, pressing @kbd{w} and the like creates a new draft
3304 buffer.  You can edit and send mail and news articles in this buffer.
3305
3306 @section Tips
3307
3308 Basically it is Emacs-standard mail mode.
3309
3310 @subsection Address Completion
3311
3312 Initially, the cursor is at the To: field.  Fill in recipients
3313 addresses.  @kbd{@key{TAB}} completes them.
3314
3315 If you want to submit a news article, add Newsgroups: field by
3316 yourself.  Field names can be completed by @kbd{@key{TAB}}.
3317
3318 If you save the draft buffer you are editing, it is appended to the
3319 folder specified by @code{wl-draft-folder}.
3320
3321 Using FCC: field, you can specify the folder to which a copy of the
3322 message is saved when it is sent.
3323
3324 @subsection Editing Messages
3325
3326 Multi-part editing utilize MIME edit mode of SEMI/tm.  For procedures of
3327 editing, refer to respective documents.
3328 @xref{Mail Methods, , ,mime-ui-ja, a MIME user interface for GNU Emacs}.
3329
3330 @subsection Dynamic Modification of Messages
3331 @vindex wl-draft-config-alist
3332
3333 @c @cindex Change Message
3334 @c @cindex Message, Change Dynamic
3335
3336 You can set @code{wl-draft-config-alist} so that header and body of the
3337 message will automatically modified depending on information of header
3338 and others.
3339
3340 The initial setting of @code{wl-draft-config-alist} is nil.
3341
3342 In the example below, the header is modified when
3343 @code{wl-draft-send-and-exit} or @code{wl-draft-send} is invoked.
3344 You can set @code{wl-interactive-send} to non-nil so as to confirm
3345 changes before sending the message.
3346
3347 @lisp
3348 (setq wl-draft-config-alist
3349       '(((string-match "aaa.ne.jp$" (system-name))
3350          ;; @r{applied if the expression is non-nil}
3351          (wl-smtp-posting-server . "mailserver-B")
3352          (wl-nntp-posting-server . "newsserver-B")
3353          ;; @r{settings of temporary variables}
3354          )
3355         ("^To: .*user@@aaa.bbb.com"
3356          ;; @r{applied if it matches the header of the draft buffer}
3357          ("Organization" . (format "Go %s" my-webpage)))
3358                        ;; @r{you can write elisp expressions here (eval only)}
3359          (top . "Hello.\n")    ;; @r{inserted at the top of the body}
3360          (bottom . "\nBye.\n") ;; @r{inserted at the bottom of the body}
3361         ))
3362 @end lisp
3363
3364 The format of @code{wl-draft-config-alist} is:
3365
3366 @example
3367 '(("regexp of the header" or elisp expression
3368   ("Field" . value(elisp expression))
3369    (variable . value(elisp expression))
3370    (sub-function . value(elisp expression))
3371    function
3372    @dots{})
3373   ("regexp of the header" or elisp expression
3374    ("Field" . value(elisp expression))
3375    @dots{}))
3376 @end example
3377
3378 Per default, there are 10 following sub-functions.
3379
3380 @example
3381 'header:      Inserts the specified string at the bottom of the header.
3382 'header-file: Inserts the specified file at the bottom of the header.
3383 'x-face:      Inserts "X-Face" field with the content of the specified file.
3384 'top:         Inserts the specified string at the top of the body.
3385 'top-file:    Inserts the specified file at the top of the body.
3386 'body:        Replaces the body with the specified string.
3387               Specifying nil deletes the entire body string.
3388 'body-file:   Replaces the body with the content of the specified file.
3389 'bottom:      Inserts the specified string at the bottom of the body.
3390 'bottom-file: Inserts the specified file at the top of the body.
3391 'template:    Applies the specified template.
3392               (refer to the next subsection)
3393 @end example
3394
3395 These are defined in @code{wl-draft-config-sub-func-alist} and you can
3396 change them or add your own functions.  If you read the code, you can
3397 easily find how to write the functions.
3398
3399 At the first of each item, "a regular expression of the header" or an
3400 elisp expression should be specified.  In the case of an elisp
3401 expression, the item is applied when the expression is evaluated
3402 non-nil.
3403
3404 Per default, when multiple items match or are evaluated non-nil, all
3405 such items are applied, but if you set a variable
3406 @code{wl-draft-config-matchone} to t, only the first matching one is
3407 applied.
3408
3409 At the second of the item, a cons or a list of functions should be
3410 specified.  The car part of the cons should be a header field, a
3411 variable, or a sub-function.  When a header field is specified, the field
3412 will be modified.  If a variable is specified, the value of the variable
3413 will be modified temporarily.
3414
3415 In the cdr part of a cons, not only a variable but also an elisp
3416 expression can be specified as is.  If the car part is a header field
3417 and the cdr part is nil, the field will be deleted.
3418
3419 See the next example as well:
3420
3421 @lisp
3422 (setq wl-draft-config-alist
3423       '((reply                         ;; @r{(1)}
3424          "X-ML-Name: \\(Wanderlust\\|emacs-mime-ja\\|apel-ja\\)"
3425          ;; @r{applied if it matches the header of the buffer being replied}
3426          (body . "  Hello.\n")
3427          (template . "default")
3428          )))
3429 @end lisp
3430
3431 As in the (1) above, if a header regexp is prepended with @code{reply},
3432 it is applied when the draft is prepared by @code{wl-summary-reply} for
3433 example, and when it matches the header being replied.  It is ignored
3434 when there is no buffer being replied, like after @code{wl-draft} was
3435 invoked.
3436
3437 Note that @code{wl-draft-config-alist} is applied only once when
3438 @code{wl-draft-send-and-exit} or @code{wl-draft-send} is invoked.
3439 Therefore, if you want to apply @code{wl-draft-config-alist} again after 
3440 aborting transmission, execute @kbd{C-c C-e}
3441 (@code{wl-draft-config-exec}).
3442
3443 If you want to apply @code{wl-draft-config-alist} when a draft buffer is 
3444 prepared, do the following:
3445
3446 @lisp
3447 (add-hook 'wl-mail-setup-hook 'wl-draft-config-exec)
3448 @end lisp
3449
3450 @subsection Inserting Templates
3451 @cindex Template
3452 @cindex Apply Template
3453
3454 Set a variable @code{wl-template-alist}, and type
3455 @kbd{C-c C-j} or @kbd{M-x wl-template-select}
3456 in the draft buffer.
3457
3458 The format of @code{wl-template-alist} is almost the same as
3459 @code{wl-draft-config-alist}.
3460
3461 @lisp
3462 (setq wl-template-alist
3463       '(("default"
3464          ("From" . wl-from)
3465          ("Organization" . "~/.wl sample")
3466          (body . "Hello.\n"))
3467         ("report"
3468          (template . "default")                 ;; @r{(a)}
3469          ("To" . "jousi@@kaisha.jp")
3470          ("Subject" . "Report")
3471          (body-file . "~/work/report.txt")
3472          )
3473         ))
3474 @end lisp
3475
3476 As you can see, the only difference is item (template) names such as
3477 "default" and "report", instead of a regexp of header.
3478 Because definition of each item is the same as
3479 @code{wl-draft-config-alist}, you can call another template, like (a).
3480
3481 Executing the command @code{wl-template-select} results in template
3482 selection, but the result differs depending on variable
3483 @code{wl-template-visible-select}.
3484
3485 If @code{wl-template-visible-select} is t (default), a buffer window is
3486 shown below the draft buffer.  You can select a template by @kbd{n} and
3487 @kbd{p} seeing the buffer window.
3488
3489 Press the RETURN key and the template is actually applied to the draft
3490 buffer.  If you press @kbd{q}, nothing is applied.  In addition, you can 
3491 adjust the window size by @code{wl-template-buffer-lines}.
3492
3493 If @code{wl-template-visible-select} is nil, you should type the name of
3494 the template in the mini buffer.
3495
3496 As shown in the example in @code{wl-draft-config-alist}, you can select
3497 "default" template by writing:
3498
3499 @example
3500 (template . "default")
3501 @end example
3502
3503 @noindent
3504 @subsection Sending mail by POP-before-SMTP
3505 @cindex POP-before-SMTP
3506
3507 You can send mail by POP-before-SMTP with this single line:
3508
3509 @lisp
3510 (setq wl-draft-send-mail-func 'wl-draft-send-mail-with-pop-before-smtp)
3511 @end lisp
3512
3513 @noindent
3514 Configure the following variables if you need.
3515
3516 @table @code
3517 @item wl-pop-before-smtp-user
3518 The POP user name for POP-before-SMTP authentication.
3519 If unset, @code{elmo-default-pop3-user} is used.
3520
3521 @item wl-pop-before-smtp-server
3522 The POP server name for POP-before-SMTP authentication.
3523 If unset, @code{elmo-default-pop3-server} is used.
3524
3525 @item wl-pop-before-smtp-authenticate-type
3526 The POP authentication method for POP-before-SMTP authentication.
3527 If unset, @code{elmo-default-pop3-authenticate-type} is used.
3528
3529 @item wl-pop-before-smtp-port
3530 The POP port number for POP-before-SMTP authentication.
3531 If unset, @code{elmo-default-pop3-port} is used.
3532
3533 @item wl-pop-before-smtp-ssl
3534 If non-nil, POP connection is established using SSL.
3535 If 'starttls, STARTTLS (RFC2595) connection will be established.
3536 If unset, @code{elmo-default-pop3-ssl} is used.
3537 @end table
3538
3539 If variables for POP-before-SMTP (@code{wl-pop-before-smtp-*}) are 
3540 unset, settings for POP folders (@code{elmo-default-pop3-*}) are
3541 used.
3542 Therefore, if SMTP server and POP server are actually the same, and if
3543 POP folder per default (such as @samp{&}) is available, no settings are
3544 required.
3545
3546 Refer to the following URL about POP-before-SMTP.
3547
3548 @example
3549 http://spam.ayamura.org/tools/smPbS.html
3550 http://www.iecc.com/pop-before-smtp.html
3551 @end example
3552
3553 @section Key Bindings
3554 @cindex Keybind, Draft Mode
3555 @cindex Keybind, Draft Buffer
3556
3557 @table @kbd
3558
3559 @item C-c C-y
3560 @kindex C-c C-y (Draft)
3561 @findex wl-draft-yank-original
3562 Cites the content of the current message buffer.
3563 (@code{wl-draft-yank-original})
3564
3565 @item C-c C-p
3566 @kindex C-c C-p (Draft)
3567 @findex wl-draft-preview-message
3568 Previews the content of the current draft.
3569 This is useful for previewing MIME multi-part messages.
3570 (@code{wl-draft-preview-message})
3571
3572 @item C-c C-s
3573 @kindex C-c C-s (Draft)
3574 @findex wl-draft-send
3575 Sends the content of the current draft.  Does not erase the draft buffer.
3576 This is useful for sending multiple messages, which are a little different
3577 from each other.
3578 (@code{wl-draft-send})
3579
3580 @item C-c C-c
3581 @kindex C-c C-c (Draft)
3582 @findex wl-draft-send-and-exit
3583 Sends the content of the current draft and erases the draft buffer.
3584 (@code{wl-draft-send-and-exit})
3585
3586 @item C-x C-s
3587 @kindex C-x C-s (Draft)
3588 @findex wl-draft-save
3589 Save the current draft.
3590 (@code{wl-draft-save})
3591
3592 @item C-c C-k
3593 @kindex C-c C-k (Draft)
3594 @findex wl-draft-kill
3595 Kills the current draft.
3596 (@code{wl-draft-kill})
3597
3598 @c @item C-x k
3599 @c @kindex C-x k (Draft)
3600 @c @findex wl-draft-mimic-kill-buffer
3601 @c Kills the current draft.
3602 @c (@code{wl-draft-mimic-kill-buffer})
3603
3604 @item C-c C-z
3605 @kindex C-c C-z (Draft)
3606 @findex wl-draft-save-and-exit
3607 Saves the current draft, and erases the draft buffer.
3608 This is useful if you want to suspend editing of the draft.
3609 You can resume editing by pressing @kbd{E} (@code{wl-summary-reedit}) in
3610 the @samp{+draft} folder.
3611 (@code{wl-draft-save-and-exit})
3612
3613 @item C-c C-r
3614 @kindex C-c C-r (Draft)
3615 @findex wl-caesar-region
3616 Encodes or decodes the specified region in Caesar cipher.
3617 (@code{wl-caesar-region})
3618
3619 @item M-t
3620 @kindex M-t (Draft)
3621 @findex wl-toggle-plugged
3622 Toggles off-line/on-line states of Wanderlust.
3623 (@code{wl-toggle-plugged})
3624
3625 @item C-c C-o
3626 @kindex C-c C-o (Draft)
3627 @findex wl-jump-to-draft-buffer
3628 Jumps to the other draft buffer, if exists.
3629 With prefix argument, reads a file (if any) from the draft folder when
3630 there is no such buffer.
3631 (@code{wl-jump-to-draft-buffer})
3632
3633 @item C-c C-e
3634 @kindex C-c C-e (Draft)
3635 @findex wl-draft-config-exec
3636 Applies @code{wl-draft-config-alist}.
3637 (@code{wl-draft-config-exec})
3638
3639 @item C-c C-j
3640 @kindex C-c C-j (Draft)
3641 @findex wl-template-select
3642 Selects a template.
3643 (@code{wl-template-select})
3644
3645 @item C-c C-a
3646 @kindex C-c C-a (Draft)
3647 @findex wl-draft-insert-x-face-field
3648 Inserts the content of a file @file{~/.xface} (the value of the variable
3649 @code{wl-x-face-file}) as an X-Face field in the draft buffer.
3650
3651 There should be encoded X-Face strings as a content of a file @file{~/.xface}.
3652 (@code{wl-draft-insert-x-face-field})
3653 @end table
3654
3655 @section Customizable Variables
3656
3657 @table @code
3658 @item wl-subscribed-mailing-list
3659 @vindex wl-subscribed-mailing-list
3660 The initial setting is nil.
3661 Mailing lists to which you subscribe.
3662 If any of these are contained in To or Cc field of a reply draft,
3663 removes your own address from Mail-Followup-To and Cc.
3664 And if any of these are contained in To or Cc field of a message to be
3665 automatically re-filed, the destination folder will be leaned in
3666 connection with the address.
3667 @item wl-insert-mail-followup-to
3668 @vindex wl-insert-mail-followup-to
3669 The initial setting is nil.
3670 If non-nil, Mail-Followup-To field is automatically inserted in the
3671 draft buffer.
3672
3673 @item wl-insert-mail-reply-to
3674 @vindex wl-insert-mail-reply-to
3675 The initial setting is nil.
3676 If non-nil, Mail-Reply-To field is automatically inserted in the
3677 draft buffer.
3678
3679 @item wl-auto-insert-x-face
3680 @vindex wl-auto-insert-x-face
3681 The initial setting is t.
3682 If non-nil and there is an encoded X-Face string in a file
3683 @file{~/.xface} (the value of the variable @code{wl-x-face-file}),
3684 inserts it as an X-Face field in the draft buffer.
3685 If nil, it is not automatically inserted. Press @kbd{C-c C-a} to insert.
3686
3687 @item wl-insert-message-id
3688 @vindex wl-insert-message-id
3689 The initial setting is t.
3690 If non-nil, Message-ID field is automatically inserted on the
3691 transmission.
3692
3693 @item wl-local-domain
3694 @vindex wl-local-domain
3695 The initial setting is nil.
3696 If nil, the return value of the function @code{system-name} will be
3697 used as the domain part of Message-ID.
3698
3699 If @code{system-name} does not return FQDN (i.e. the full name of the
3700 host, like @samp{smtp.gohome.org}), you @strong{must} set this variable to the
3701 string of the local domain name without hostname (like @samp{gohome.org}). 
3702 That is, a concatenation of @code{system-name} "." @code{wl-local-domain} 
3703 is used as domain part of the Message-ID.
3704
3705 If your terminal does not have global IP, set the value of
3706 @code{wl-message-id-domain}.
3707 (You might be beaten up on the Net News if you use invalid Message-ID.)
3708
3709 Moreover, 
3710 concatenation of @code{system-name} "." @code{wl-local-domain} 
3711 will be used as an argument to the HELO command in SMTP.
3712
3713 @item wl-message-id-domain
3714 @vindex wl-message-id-domain
3715 The initial setting is nil.
3716 If non-nil, this value is used as a domain part of the Message-ID.
3717 If your terminal does not have global IP, set unique string to this value
3718 (e.x. your e-mail address).
3719
3720 @item wl-message-id-domain
3721 @vindex wl-message-id-domain
3722 The initial setting is nil.
3723 If nil, the return value of the function @code{system-name} will be
3724 used as the domain part of Message-ID.
3725 If @code{system-name} does not return FQDN (i.e. the full name of the
3726 host, like smtp.gohome.org), you @strong{must} set this variable to the
3727 string of the full name of the host.  Otherwise, you might be beaten up
3728 on the Net News.
3729
3730 @item wl-draft-config-alist
3731 @vindex wl-draft-config-alist
3732 The initial setting is nil.
3733 Modifies the draft message just before the transmission.
3734 The content of @code{wl-draft-config-alist} will be automatically
3735 applied only once on the transmission.  If you want to apply it
3736 manually, use @kbd{C-c C-e}.  This command can be used many times.
3737
3738 @item wl-template-alist
3739 @vindex wl-template-alist
3740 The initial setting is nil.
3741 This variable specifies the template to be applied in the draft buffer.
3742
3743 @item wl-draft-config-matchone
3744 @vindex wl-draft-config-matchone
3745 The initial setting is nil.
3746 If non-nil, only the first matching item is used when
3747 @code{wl-draft-config-alist} is applied.  If nil, all matching items are 
3748 used.
3749
3750 @item wl-template-visible-select
3751 @vindex wl-template-visible-select
3752 The initial setting is t.
3753 If non-nil, you can preview the result of the template selection in
3754 another window.
3755
3756 @item wl-template-confirm
3757 @vindex wl-template-confirm
3758 The initial setting is nil.
3759 If non-nil, asks for confirmation when you press the enter key to select
3760 template while previewing.
3761
3762 @item wl-template-buffer-lines
3763 @vindex wl-template-buffer-lines
3764 The initial setting is 7.
3765 If @code{wl-template-visible-select} is non-nil, this variable specifies 
3766 the size of the preview window.
3767
3768 @item wl-draft-reply-buffer-style
3769 @vindex wl-draft-reply-buffer-style
3770 The initial setting is 'split.
3771 'split or 'full can be specified.
3772 In the case of 'full, the whole frame will be used for a reply draft
3773 buffer when it is prepared.
3774
3775 @item wl-from
3776 @vindex wl-from
3777 The initial setting is the value of the variable @code{user-mail-address}.
3778 The value of this variable is inserted as a From field of the draft when
3779 it is prepared.
3780
3781 @item wl-envelope-from
3782 @vindex wl-envelope-from
3783 The initial setting is nil.
3784 The value of this variable is used for envelope from (MAIL FROM).
3785 If nil, the address part of @code{wl-from} is used.
3786
3787 @item wl-user-mail-address-list
3788 @vindex wl-user-mail-address-list
3789 The initial setting is nil.
3790 This is the User's address list.  If you have multiple addresses,
3791 set this variable.
3792
3793 @item wl-fcc
3794 @vindex wl-fcc
3795 The initial setting is nil.
3796 If non-nil, the value of this variable is inserted as a FCC of the draft
3797 when it is prepared.
3798
3799 @item wl-bcc
3800 @vindex wl-bcc
3801 The initial setting is nil.
3802 If non-nil, the value of this variable is inserted as a Bcc of the draft
3803 when it is prepared.
3804
3805 @item wl-reply-subject-prefix
3806 @vindex wl-reply-subject-prefix
3807 The initial setting is "Re: ".
3808 In the Subject of the reply draft, this string is prepended to the
3809 Subject of being replied.
3810
3811 @item wl-draft-enable-queuing
3812 @vindex wl-draft-enable-queuing
3813 The initial setting is t.
3814 This flag controls off-line transmission.  If non-nil, the draft is
3815 sent off-line.
3816
3817 @item wl-auto-flush-queue
3818 @vindex wl-auto-flush-queue
3819 The initial setting is t.
3820 This flag controls automatic transmission of the queue when Wanderlust
3821 becomes on-line.  If non-nil, the queue is automatically transmitted
3822 (with confirmation by @code{y-or-n-p}).  If you want to transmit it
3823 manually, press @kbd{F} in the folder mode.
3824
3825 @item wl-draft-always-delete-myself
3826 @vindex wl-draft-always-delete-myself
3827 If non-nil, always removes your own address from To and CC when you are
3828 replying to the mail addressed to you.
3829
3830 @item wl-smtp-posting-server
3831 @vindex wl-smtp-posting-server
3832 The initial setting is nil.
3833 This is the SMTP server name for mail transmission.
3834
3835 @item wl-smtp-posting-user
3836 @vindex wl-smtp-posting-user
3837 The initial setting is nil.
3838 This is the user name for SMTP AUTH authentication.
3839 If nil, @code{smtp-authenticate-user} is used.
3840
3841 @item wl-smtp-authenticate-type
3842 @vindex wl-smtp-authenticate-type
3843 The initial setting is nil.
3844 This is the authentication method for SMTP AUTH authentication.
3845 If nil, @code{smtp-authenticate-type} is used.
3846 If it is still nil, authentication will not be carried out.
3847
3848 @item wl-smtp-connection-type
3849 @vindex wl-smtp-connection-type
3850 The initial setting is nil.
3851 This variable specifies how to establish SMTP connections.
3852 If nil, @code{smtp-connection-type} is used.
3853 If it is 'starttls, STARTTLS (RFC2595) is used.
3854
3855 @item wl-nntp-posting-server
3856 @vindex wl-nntp-posting-server
3857 The initial setting is nil.
3858 This is the NNTP server name used for news submission.
3859 If nil, @code{elmo-default-nntp-server} is used.
3860
3861 @item wl-nntp-posting-user
3862 @vindex wl-nntp-posting-user
3863 The initial setting is nil.
3864 This is the user name for AUTHINFO authentication on news submission.
3865 If nil, @code{elmo-default-nntp-user} is used.
3866 If it is still nil, AUTHINFO authentication will not be carried out.
3867
3868 @item wl-nntp-posting-port
3869 @vindex wl-nntp-posting-port
3870 The initial setting is nil.
3871 This is the port number of the NNTP server used for news submission.
3872 If nil, @code{elmo-default-nntp-server} is used.
3873
3874 @item wl-nntp-posting-ssl
3875 @vindex wl-nntp-posting-ssl
3876 The initial setting is nil.
3877 If nil, @code{elmo-default-nntp-ssl} is evaluated.
3878 If non-nil, SSL is used for news submission.
3879 If 'starttls, STARTTLS (RFC2595) connection will be established.
3880
3881 @item wl-pop-before-smtp-user
3882 @vindex wl-pop-before-smtp-user
3883 The initial setting is nil.
3884 This is the POP user name for POP-before-SMTP.
3885 If it is nil, @code{elmo-default-pop3-user} is used.
3886
3887 @item wl-pop-before-smtp-server
3888 @vindex wl-pop-before-smtp-server
3889 The initial setting is nil.
3890 This is the POP server name for POP-before-SMTP.
3891 If it is nil, @code{elmo-default-pop3-server} is used.
3892
3893 @item wl-pop-before-smtp-authenticate-type
3894 @vindex wl-pop-before-smtp-authenticate-type
3895 The initial setting is nil.
3896 This is the authentication method for POP-before-SMTP authentication.
3897 If it is nil, @code{elmo-default-pop3-authenticate} is used.
3898
3899 @item wl-pop-before-smtp-port
3900 @vindex wl-pop-before-smtp-port
3901 The initial setting is nil.
3902 This is the POP port number for POP-before-SMTP.
3903 If it is nil, @code{elmo-default-pop3-port} is used.
3904
3905 @item wl-pop-before-smtp-ssl
3906 @vindex wl-pop-before-smtp-ssl
3907 The initial setting is nil.
3908 This flag controls the use of SSL for POP-before-SMTP.
3909 If it is nil, @code{elmo-default-pop3-ssl} is used.
3910
3911 @item wl-draft-queue-save-variables
3912 @vindex wl-draft-queue-save-variables
3913 Specifies a list of variable to which queued messages are saved on the
3914 off-line transmission.
3915
3916 @item wl-draft-sendlog
3917 @vindex wl-draft-sendlog
3918 The initial setting is t.
3919 If t, transmission log is written in @file{~/.elmo/sendlog}.
3920 It is written when drafts are sent by smtp or qmail, and when they are
3921 saved into folders by fcc or queuing (it is written even if the
3922 transmission fails).
3923 But transmission by im-wl.el is not written in the sendlog and left to
3924 the logging function of imput.
3925
3926 @item wl-draft-sendlog-max-size
3927 @vindex wl-draft-sendlog-max-size
3928 The initial setting is 20000 (in bytes).
3929 If @code{wl-draft-sendlog} is t, the log is rotated when it grows beyond 
3930 the size specified by this variable.
3931 @end table
3932
3933
3934 @c
3935 @c  Disconnected Operations
3936 @c
3937 @node Disconnected Operations, Expire and Archive, Draft, Top
3938 @chapter Off-line Management
3939 @cindex Disconnected Operations
3940
3941 @section Off-line State
3942
3943 Wanderlust has on-line and off-line states.
3944 In the off-line state, you cannot access messages via network, unless
3945 they are cached.
3946
3947 @samp{[ON]} in the mode line indicates the on-line state.
3948 @samp{[--]} in the mode line indicates the off-line state.
3949 In folder or summary modes, press @kbd{M-t} to switch between off-
3950 and on-line.
3951
3952 You can invoke Wanderlust in the off-line state by setting
3953 @code{wl-plugged} to nil in @file{~/.wl} or anything appropriate.
3954
3955 In the off-line mode, @kbd{n} and @kbd{p} command in the summary mode
3956 ignores uncached messages.
3957
3958 Even in the off-line state, provided that relevant messages are cached,
3959 and the variable @code{elmo-enable-disconnected-operation} (described
3960 later) is non-nil, you can:
3961
3962 @itemize @minus
3963 @item transmit messages
3964 @item re-file and copy (IMAP4)
3965 @item create folders (IMAP4)
3966 @item mark (IMAP4)
3967 @item pre-fetch (IMAP4, NNTP)
3968 @end itemize
3969
3970 As soon as Wanderlust becomes on-line, such operations invoked
3971 off-line are reflected in the servers via network.
3972
3973 @section Transmission of Messages
3974
3975 You can send mail/news messages off-line (if you are using im-wl.el, it
3976 is irrelevant).  Messages sent off-line are accumulated in the queue
3977 folder, @samp{+queue}.  These messages are transmitted at once when
3978 Wanderlust becomes on-line.
3979
3980 You can visit @samp{+queue} in the off-line state and confirm content
3981 of messages in the queue.  You can also remove messages.  Removed messages
3982 are not transmitted even in the on-line state.
3983
3984 @section Re-file and Copy (IMAP4)
3985
3986 Re-file and copy operations to IMAP folders invoked during the off-line
3987 state are accumulated in the queue, and reflected in the server side
3988 when Wanderlust becomes on-line.  If you visit destination folders after
3989 off-line re-file or copy, it looks as if messages were appended even in
3990 off-line state.
3991
3992 For the safety reasons, messages re-filed off-line are removed from
3993 source folders only if their Message-ID match messages on the servers.
3994 While the queue is processed, messages that failed to be re-filed or
3995 copied to the specified folders are appended to the folder
3996 @samp{+lost+found}.
3997
3998 @section Creation of Folders (IMAP4)
3999
4000 You can create IMAP folders off-line.  The creation of folders are
4001 reflected in the servers when Wanderlust becomes on-line.  At that time, 
4002 if folders failed to be created on the servers for any reasons, messages
4003 re-filed to such folders are appended to the folder "+lost+found".
4004
4005 @section Marking (IMAP4)
4006
4007 Off-line changes in unread/read and importance mark @samp{$} information
4008 are also reflected in the servers when Wanderlust becomes on-line.
4009
4010 @section Pre-fetching (IMAP4, NNTP)
4011
4012 You can make reservations for pre-fetching messages in IMAP or NNTP
4013 folders.  Reserved messages are marked with @samp{!} but not cached
4014 yet.  When Wanderlust becomes on-line, they are pre-fetched from
4015 servers.
4016
4017 If the variable @code{elmo-enable-disconnected-operation} is nil, these
4018 off-line operations for IMAP4 and NNTP do not take place, and off-line
4019 re-file, copy or suchlike simply results in error.
4020
4021 Because off-line operations use cache files, it is a bad idea to erase
4022 them by hand; it may cause Wanderlust to malfunction.
4023
4024 If you want to remove caches, be sure to execute
4025 @kbd{M-x elmo-cache-expire-by-size}.
4026 @code{elmo-cache-expire-by-size} does not remove caches for messages
4027 relevant to off-line operations.
4028
4029 @section Switching On-line/Off-line per Server/Port
4030
4031 @kbd{M-t} described above switches networking states as a whole, but you 
4032 can switch on-line/off-line per server/port.
4033
4034 Pressing @kbd{C-t} in the folder or summary modes brings you in
4035 wl-plugged-mode shown below, in which you can change the plugged state
4036 for each port.
4037
4038 @example
4039 Queuing:[ON] AutoFlushQueue:[--] DisconnectedOperation:[ON]
4040 [ON](wl-plugged)
4041   [--]hosta
4042     [--]smtp        +queue: 2 msgs (1,2)        @dots{}@r{sending queue}
4043     [--]nntp(119)   +queue: 1 msg (3)           @dots{}@r{sending queue}
4044   [ON]hostb
4045     [--]imap4/cram-md5(143) %#mh/wl(prefetch-msgs:3,mark-as-important:1)
4046                             %inbox(delete-msgids:1)    @dots{}@r{dop queue}
4047     [ON]nntp(119)
4048     [ON]smtp
4049 @end example
4050
4051 The first line indicates status of the following three variables, and
4052 simply pressing @kbd{@key{SPC}} or @kbd{@key{RET}} in each labelled
4053 column modifies the values of these variables.
4054
4055 @example
4056 "Queuing"               wl-draft-enable-queuing
4057 "AutoFlushQueue"        wl-auto-flush-queue
4058 "DisconnectedOperation" elmo-enable-disconnected-operation
4059 @end example
4060
4061 where @samp{[ON]} means its value is t, and @samp{[--]} means nil.
4062
4063 The second and after lines indicate on-line/off-line states of servers
4064 and ports, where @samp{[ON]} stands for on-line and @samp{[--]} for
4065 off-line (in XEmacs, they are shown with icons).  Pressing
4066 @kbd{@key{SPC}} or @kbd{@key{RET}} in each line switches its state.
4067
4068 "sending queue" means messages accumulated in the folder @samp{+queue}
4069 for off-line transmission, and "dop queue" means off-line operations
4070 when @code{elmo-enable-disconnected-operation} is t.
4071 @c If the variable @code{elmo-enable-disconnected-operation} is non-nil, 
4072 @c off-line operations are enabled.
4073
4074 They are displayed if there are any of them.  In the example above,
4075 in the sending queue there are two messages (the first and the second
4076 in the queue folder) for smtp to hosta and one (the third) for nntp to
4077 hosta, and in the dop queue there are one for @samp{%inbox} and two for
4078 @samp{%#mh/wl}.
4079
4080 If you change (wl-plugged) in the second line, the variable
4081 @code{wl-plugged} is changed, so that the mode line indicator and
4082 plugged states of all ports are affected.
4083 If you change plugged states of any servers or ports, wl-plugged in the
4084 second line is affected depending on @code{elmo-plugged-condition}
4085 settings and the plugged state of each port.
4086
4087 @section Invoking Wanderlust in the Off-line State
4088
4089 As described before, if you set @code{wl-plugged} to nil in @file{~/.wl}
4090 or anything appropriate, you can invoke Wanderlust in the off-line
4091 state.  You can specify off-line state on a per server or port basis.
4092 Refer to @code{wl-reset-plugged-alist} also.
4093
4094 Usually, when Wanderlust starts up, the plugged state of each port is
4095 read from @file{~/.folder} and @code{wl-smtp-posting-server},
4096 @code{wl-nntp-posting-server} and so on.  If you want to change the
4097 plugged state of these ports or to add other ports, configure
4098 @code{wl-make-plugged-hook} with a function.
4099
4100 @lisp
4101 (add-hook 'wl-make-plugged-hook
4102           '(lambda ()
4103              (elmo-set-plugged plugged-value(t/nil) server port)
4104                  ;; @r{add or change plugged states of the port of the server}
4105              (elmo-set-plugged plugged-value(t/nil) server)
4106                  ;; @r{if the port is omitted, all ports are affected}
4107                  ;; @r{(you cannot omit the port if you newly add the server)}
4108              ))
4109 @end lisp
4110
4111 @section Customizable Variables
4112
4113 @table @code
4114 @item wl-plugged
4115 @vindex wl-plugged
4116 If this variable is set to nil, Wanderlust starts up in off-line mode from
4117 the beginning.
4118
4119 @item wl-queue-folder
4120 @vindex wl-queue-folder
4121 The initial setting is "+queue".
4122 This is the folder in which messages in the transmission queue are
4123 accumulated.
4124
4125 @item wl-auto-flush-queue
4126 @vindex wl-auto-flush-queue
4127 The initial setting is t.
4128 This flag controls automatic transmission of the queue when Wanderlust
4129 becomes on-line.  If non-nil, the queue is automatically transmitted
4130 (with confirmation by @code{y-or-n-p}).  If you want to transmit it
4131 manually, press @kbd{F} in the folder mode.
4132
4133 @item elmo-enable-disconnected-operation
4134 @vindex elmo-enable-disconnected-operation
4135 The initial setting is nil.  Controls off-line operations regarding IMAP4.
4136 If non-nil, off-line operations are carried out.
4137
4138 @item elmo-lost+found-folder
4139 @vindex elmo-lost+found-folder
4140 The initial setting is "+lost+found".
4141 This is the folder to which messages are saved when they fails to be
4142 appended while the off-line re-file/copy queue is processed.
4143
4144 @item elmo-plugged-condition
4145 @vindex elmo-plugged-condition
4146 The initial setting is 'one.
4147 The value of @code{wl-plugged} reflects the return value of the function 
4148 @code{elmo-plugged-p} (without arguments).
4149 This variable @code{elmo-plugged-condition} specifies the condition on
4150 which the return value of (elmo-plugged-p) should be t depending on the
4151 plugged state of each port.
4152
4153 @example
4154 'one         : plugged if one or more ports are plugged.
4155 'all         : plugged if all ports are plugged.
4156 'independent : reflects wl-plugged (elmo-plugged) regardless of plugged
4157                states of the ports.
4158 function     : reflects the return value of the function
4159  functions available per default
4160  'elmo-plug-on-by-servers
4161              : reflects the plugged state of the servers specified by the
4162                variable elmo-plug-on-servers.
4163  'elmo-plug-on-by-exclude-servers
4164              : reflects the plugged state of the servers that are not
4165                in elmo-plug-on-exclude-servers.
4166                   elmo-plug-on-exclude-servers defaults to
4167                    '("localhost"
4168                      (system-name)
4169                      (system-name)without the domain part)
4170 @end example
4171
4172 @example
4173 Example 1:
4174  (setq elmo-plugged-condition 'all)
4175 Example 2:
4176  (setq elmo-plug-on-servers '("smtpserver" "newsserver"))
4177  (setq elmo-plugged-condition 'elmo-plug-on-by-servers)
4178 Example 3:
4179  (setq elmo-plug-on-exclude-servers '("localhost" "myname"))
4180  (setq elmo-plugged-condition 'elmo-plug-on-by-exclude-servers)
4181 @end example
4182
4183 @item wl-reset-plugged-alist
4184 @vindex wl-reset-plugged-alist
4185 The initial setting is t.  If non-nil, plugged states are initialized on
4186 a per server or port basis when Wanderlust starts up.
4187
4188 If nil, plugged states are retained while Emacs is running.
4189 In other words, they are initialized when Emacs is restarted even if the
4190 value is nil.
4191 @end table
4192
4193 @c
4194 @c  Expire and Archive
4195 @c
4196 @node Expire and Archive, Scoring, Disconnected Operations, Top
4197 @chapter Automatic Expiration and Archiving of Messages
4198 @cindex Expire and Archive
4199
4200 @menu
4201 * Expire::      Expiration and Archiving
4202 * Archive::     Archiving All Messages
4203 @end menu
4204
4205
4206 @node Expire, Archive, Expire and Archive, Expire and Archive
4207 @section Expiration
4208 @cindex Expire Message
4209
4210 Expiration means deletion of old messages which have outlasted a
4211 certain period of time.
4212
4213 @code{wl-expire} supports not only simple deletion, but also moving to
4214 specified archiving folders.
4215
4216 @section How to Use
4217
4218 Configure @code{wl-expire-alist} and press @kbd{e} in the folder mode,
4219 or @kbd{M-e} in the summary mode.
4220
4221 @subsection Configuring @code{wl-expire-alist}
4222
4223 An example configuration of @code{wl-expire-alist} is shown below.
4224 Everything in this @code{wl-expire-alist} makes a great difference in
4225 expiration, so be careful.
4226 I advise you to set @code{wl-expire-use-log} to t, especially in the
4227 initial stage.
4228
4229 @lisp
4230 (setq wl-expire-alist
4231       '(("^\\+trash$"   (date 14) remove)
4232                                   ;; @r{delete}
4233         ("^\\+tmp$"     (date 7) trash)
4234                                   ;; @r{re-file to @code{wl-trash-folder}}
4235         ("^\\+outbox$"  (number 300) "$outbox;lha")
4236                                   ;; @r{re-file to the specific folder}
4237         ("^\\+ml/tmp$"  nil)
4238                            ;; @r{do not expire}
4239         ("^\\+ml/wl$"   (number 500 510) wl-expire-archive-number1 t)
4240                            ;; @r{archive by message number (retaining numbers)}
4241         ("^\\+ml/.*"    (number 300 310) wl-expire-archive-number2 t)
4242                            ;; @r{archive by a fixed number (retaining numbers)}
4243         ("^\\+nikki$"   (date 30) wl-expire-archive-date)
4244                            ;; @r{archive by year and month (numbers discarded)}
4245         ))
4246 @end lisp
4247
4248 Items in the list has the format of:
4249
4250 @example
4251 ("regexp_for_folders"  (specification_of_messages_to_be_deleted) destination)
4252 @end example
4253
4254 @noindent
4255 The folder is examined if it matches "regexp_for_folders" from the
4256 beginning of the list.  If you invoke expiration on the folder that does
4257 not match any of them, nothing will happen.
4258 And if either the second or the third element of the item is nil,
4259 expiration will not take place.
4260
4261 You can use any one of the following for
4262 specification_of_message_to_be_deleted:
4263
4264 @table @code
4265 @item (number n1 [n2])
4266 deletes messages depending on the number of messages in the folder.
4267
4268 n1 is the number of messages which should survive deletion, for example
4269 if its value is 500, the newest 500 messages survive and the rests are
4270 deleted.
4271
4272 n2 is the number of messages in the folder on which expiration should
4273 take place, which defaults to n1 + 1.  For example if its value is 510,
4274 folders with 510 or more messages are expired.
4275 If you configured automatic expiration, frequently used folders may
4276 expire every time it receive messages, and you may be annoyed with the
4277 long delay in reading mail.
4278 In that case, you can set a wide margin between n2 and n1, so that
4279 expiration would not take place until a certain number of messages
4280 accumulate.
4281
4282 Messages with marks in @code{wl-summary-expire-reserve-marks} (marked
4283 with important/new/unread) are not deleted.
4284 If @code{wl-expire-number-with-reserve-marks} is non-nil, the folder
4285 will expire so as to have 500 messages including such ones.
4286 Otherwise, it will have 500 messages except such ones.
4287
4288 @item (date d1)
4289 deletes messages depending on the dates.
4290
4291 Messages dated d1 or more days ago are deleted, for example if its value
4292 is seven, messages seven days old or more are deleted.
4293 Note that the date is the one in the Date field of the message, not when 
4294 the message entered the folder.
4295
4296 Messages with no or invalid Date field does not expire; you might have
4297 to delete them by hand.
4298 @end table
4299
4300 You can use any one of the following in the place of destination:
4301
4302 @table @code
4303 @item 'remove
4304 deletes the messages instantly.
4305
4306 @item 'trash
4307 moves the messages to @code{wl-trash-folder}.
4308
4309 @item string(folder)
4310 moves the messages to the specified folder.
4311
4312 It would be useful for specifying an archiving folder, but because this
4313 does not move important messages, it might be better to use the
4314 standard functions described below.
4315
4316 @item function
4317 invokes the specified function.
4318
4319 To the function, three arguments are passed: a folder name, a list of
4320 messages to be deleted, and msgdb information of the summary.
4321 You can specify function-specific arguments after the name of the
4322 function.
4323 Note that the list contains messages with marks in
4324 @code{wl-summary-expire-reserve-marks}, be careful in writing your own
4325 function.
4326
4327 These are three standard functions; they moves messages to an archive
4328 folder in the specified way.  This means old messages can be compressed
4329 and saved in a file, being deleted from the original folder.
4330
4331 @table @code
4332 @item wl-expire-archive-number1
4333 re-files to archiving folders corresponding to the message numbers of
4334 the messages being deleted.
4335 For example, a message numbered 102 will be re-filed to
4336 @file{wl-00100.zip}, 390 to @file{wl-00300.zip}, and so on.
4337 If @code{wl-expire-archive-files} is 200, messages will be re-filed to
4338 @file{wl-00000.zip}, @file{wl-00200.zip}, @file{wl-00400.zip}, @dots{}.
4339
4340 The archiving folders to which messages are re-filed are determined by
4341 the name of the folder as follows
4342 (in this case, archiving folders are handled as if
4343 @code{elmo-archive-treat-file} were non-nil).
4344
4345 @table @code
4346 @item If the folder type is localdir:
4347
4348 @code{$ArchiveDir/foldername-xxxxx.zip}
4349 For example, @samp{+ml/wl} corresponds to @samp{$ml/wl;zip}
4350 (@file{~/Mail/ml/wl-00100.zip}).
4351
4352 @item The folder type is other than localdir:
4353 @code{$ArchiveDir/foldertype/foldername-xxxxx.zip}
4354
4355 For example, @samp{%#mh/ml/wl} corresponds to
4356 @samp{$imap4/#mh/ml/wl;zip} (@file{~/Mail/imap4/#mh/ml/wl-00100.zip}).
4357 @end table
4358
4359 As you can see, in the case of localdir, the folder type is not included
4360 in the path name, but otherwise it is included.
4361 And you can control the prefix to the archiving folder name by
4362 @code{wl-expire-archive-folder-prefix}.
4363 Refer to @code{wl-expire-archive-folder-prefix} for details.
4364
4365 @item wl-expire-archive-number2
4366 re-files every certain number of messages to archiving folders.
4367
4368 This differs from @samp{wl-expire-archive-number1} in that this re-files
4369 to the folder up to the specified number regardless of message numbers.
4370 The archiving folders to which messages are re-filed are determined in the 
4371 same way as @code{wl-expire-archive-number1}.
4372
4373 @item wl-expire-archive-date
4374 re-files messages depending on its date (year and month) to archive
4375 folders.
4376
4377 For example, a message dated December 1998 is re-filed to
4378 @code{$folder-199812;zip}.
4379 The name of the archiving folders except the date part are determined in
4380 the same way as @code{wl-expire-archive-number1}.
4381 @end table
4382
4383 You can set the first argument to these three standard functions to non-nil
4384 in @code{wl-expire-alist} so as to retain message numbers in the folder.
4385 For example, it can be specified just after the name of the function:
4386
4387 @example
4388 ("^\\+ml/wl$" (number 300 310) wl-expire-archive-number1 t)
4389 @end example
4390
4391 If you omit the argument, consecutive numbers from 1 are assigned for
4392 each archiving folder.
4393 @end table
4394
4395 @subsection Treatment for Important or Unread Messages
4396
4397 If you specify any of 'remove, 'trash, a folder name, or a standard
4398 function, messages with marks in @code{wl-summary-expire-reserve-marks}
4399 (which are called @dfn{reserved messages} thereafter) are retained.
4400
4401 Per default, this variable include the important, new, and unread marks,
4402 so that messages with these marks are not removed.
4403 Note that you cannot include the temporary mark (i.e. temporary marks
4404 are removed anyway), and be sure to process temporary marks before you
4405 invoke expiration.
4406
4407 @subsection Auto Expiration
4408
4409 The following setup invokes expiration when you move into the summary
4410 mode.  There will be no confirmation, so make sure you made no mistake
4411 in regexp and other settings before you set up this.
4412
4413 @lisp
4414 (add-hook 'wl-summary-prepared-pre-hook
4415           'wl-summary-expire)
4416 @end lisp
4417
4418 In the folder mode, you can invoke expiration per group as well as per
4419 folder.  Therefore, if you specify @samp{Desktop} group, all folders
4420 matching @code{wl-expire-alist} expire.
4421
4422 @section Tips
4423
4424 @subsection Treating archive folders.
4425 To treat archive folders created by @code{wl-expire-archive-number1} and so on,
4426 you must set non-nil value to @code{elmo-archive-treat-file}.
4427
4428 @subsection Confirming
4429
4430 If you are to use 'remove, try 'trash at first and see messages move to
4431 @code{wl-trash-folder} as expected, then replace it with 'remove.
4432 It would be dangerous to use 'remove from the beginning.
4433
4434 If you are to use @code{wl-expire-archive-number1} and the like, try to
4435 make a folder of the archiver type ('zip or 'lha) and see if you can
4436 append messages to it.
4437 Even if settings in @code{wl-expire-alist} and @code{elmo-archive} are
4438 correct, messages would not be saved anywhere and disappeared in case
4439 the archiver program fails.
4440
4441 After you make sure you can archive to the folder correctly, you can
4442 invoke expiration and utilize the log.
4443
4444 If you set @code{wl-expire-use-log} to t, @file{~/.elmo/expired-log}
4445 should contain the log, for example:
4446
4447 @example
4448 delete  +ml/wl  (593 594 595 596 597 598 599)
4449 move    +ml/wl -> $ml/wl-00600;tgz;wl  (600 601 602)
4450 @end example
4451
4452 The first column indicates the operation, i.e. delete, copy, or move.
4453 The next is the name of the folder that expired.  In the case of copy
4454 and move, the destination folder is recorded after @samp{->}.
4455 The last is the list of message numbers that are actually deleted or
4456 moved (in the case of copy and move, the number is the one in the source 
4457 folder, rather than the destination folder).
4458
4459 @subsection Re-filing Reserved Messages
4460
4461 The three standard functions copy reserved messages to the archive
4462 folder, but do not delete them from the source folder.  Because
4463 reserved messages and the like always remain, they are recorded in
4464 @file{~/.elmo/expired-alist} so that they are not copied over and over
4465 again.  They are not recorded if copied by @code{wl-summary-archive}.
4466
4467 If you enabled logging, usually "move" is recorded for re-filing, but
4468 instead "copy" and "delete" are recorded separately if reserved messages
4469 are involved.
4470 This is because it actually copies messages including reserved, then
4471 deletes ones except reserved in that case.
4472
4473 @section Customizable Variables
4474
4475 @table @code
4476 @item wl-expire-alist
4477 @vindex wl-expire-alist
4478 The initial setting is nil.
4479 This variable specifies folders and methods to expire.  For details,
4480 refer to @code{wl-expire-alist} settings above.
4481
4482 @item wl-summary-expire-reserve-marks
4483 @vindex wl-summary-expire-reserve-marks
4484 The initial setting is the list below.
4485
4486 @lisp
4487 (list wl-summary-important-mark
4488       wl-summary-new-mark
4489       wl-summary-unread-mark
4490       wl-summary-unread-uncached-mark
4491       wl-summary-unread-cached-mark)
4492 @end lisp
4493
4494 Messages with these marks are retained in the folder, even after
4495 expiration.
4496 Only permanent marks can be listed, not temporary marks.
4497
4498 You can list marks one by one as in the default; you can use the
4499 following settings as well:
4500
4501 @table @code
4502 @item 'all
4503 All messages with permanent marks are retained,
4504 i.e. @code{wl-summary-read-uncached-mark} is included in addition to the 
4505 defaults.
4506
4507 @item 'none
4508 All messages are handled as usual ones that are already read, no matter
4509 what marks they have; even important messages are deleted.
4510 @end table
4511
4512 @item wl-expire-archive-files
4513 @vindex wl-expire-archive-files
4514 The initial setting is 100.
4515 This variable specifies the number of messages to be retained in one
4516 archiving folder.
4517
4518 @item wl-expire-number-with-reserve-marks
4519 @vindex wl-expire-number-with-reserve-marks
4520 The initial setting is nil.
4521 If non-nil, if expiring messages are specified by "number", messages
4522 with @code{wl-summary-expire-reserve-marks} are also retained.
4523
4524 @item wl-expire-archive-get-folder-func
4525 @vindex wl-expire-archive-get-folder-func
4526 The initial setting is 'wl-expire-archive-get-folder.
4527
4528 This variable specifies a function that returns the name of an archiving 
4529 folder for standard functions in the place of destination.
4530 You can use the following three variables for simple modification of
4531 folder names; if you want more complex settings, define your own
4532 function in this variable.
4533
4534 @code{wl-expire-archive-get-folder} can be customized by these
4535 variables:
4536 @itemize @bullet
4537 @item wl-expire-archive-folder-name-fmt
4538 @item wl-expire-archive-folder-type
4539 @item wl-expire-archive-folder-prefix
4540 @end itemize
4541
4542 @item wl-expire-archive-folder-name-fmt
4543 @vindex wl-expire-archive-folder-name-fmt
4544 The initial setting is "%s-%%05d;%s".
4545 This is a format string for archiving folders used in
4546 @code{wl-expire-archive-number1} and @code{wl-expire-archive-number2}.
4547 Note that you must specify the message number by @samp{%%d}, because it
4548 is parsed twice by @code{format}.
4549
4550 If you modify this, adjust @code{wl-expire-archive-folder-num-regexp} as 
4551 well.
4552
4553 @item wl-expire-archive-date-folder-name-fmt
4554 @vindex wl-expire-archive-date-folder-name-fmt
4555 The initial setting is "%s-%%04d%%02d;%s".
4556 This is a format string for archiving folders used in
4557 @code{wl-expire-archive-date}.
4558 Note that you must specify the message number by @samp{%%d}, because it
4559 is parsed twice by @code{format}.
4560 There should be @code{%%d} twice, one for the year and the other for the
4561 month.
4562
4563 If you modify this, adjust
4564 @code{wl-expire-archive-date-folder-num-regexp} as well.
4565
4566 @item wl-expire-archive-folder-type
4567 @vindex wl-expire-archive-folder-type
4568 The initial setting is 'zip.
4569 This variable specifies an archiver type of the archiving folders.
4570
4571 @item wl-expire-archive-folder-prefix
4572 @vindex wl-expire-archive-folder-prefix
4573 The initial setting is nil.
4574 This variable specifies the prefix (directory structure) to archiving
4575 folders.
4576 Exercise extreme caution in using this feature, as it has not been
4577 seriously tested.
4578 In the worst case, there is a fear of destructing archiving folders.
4579
4580 @table @code
4581 @item nil
4582 There will be no prefix.
4583
4584 @item 'short
4585 For example, @samp{+ml/wl} will be prefixed by @samp{wl}, resulting in
4586 @samp{$ml/wl-00000;zip;wl}.
4587
4588 @item t
4589 For example, @samp{+ml/wl} will be prefixed by prefix @samp{ml/wl},
4590 resulting in
4591
4592 @samp{$ml/wl-00000;zip;ml/wl}.
4593 @end table
4594
4595 @item wl-expire-archive-folder-num-regexp
4596 @vindex wl-expire-archive-folder-num-regexp
4597 The initial setting is "-\\([-0-9]+\\);".
4598 This variable specifies the regular expression to be used for getting
4599 message numbers from multiple archiving folders specified by
4600 @code{elmo-list-folders}.
4601 Set it in accordance with @code{wl-expire-archive-folder-name-fmt}.
4602
4603 @item wl-expire-archive-date-folder-num-regexp
4604 @vindex wl-expire-archive-date-folder-num-regexp
4605 The initial setting is "-\\([-0-9]+\\);".
4606 This is the regular expression to be used for getting message numbers
4607 from multiple archiving folders specified by @code{elmo-list-folders}.
4608 Set it in accordance with @code{wl-expire-archive-date-folder-name-fmt}.
4609
4610 @item wl-expire-delete-oldmsg-confirm
4611 @vindex wl-expire-delete-oldmsg-confirm
4612 The initial setting is t.
4613 If non-nil, messages older than the one with the largest number will be
4614 deleted with confirmation.
4615 If nil, they are deleted without confirmation.
4616
4617 This feature is valid only if non-nil is specified as a argument to the
4618 standard functions so as to retain numbers.
4619
4620 @item wl-expire-use-log
4621 @vindex wl-expire-use-log
4622 The initial setting is nil.
4623 If non-nil, expiration logs are recorded in @file{~/.elmo/expired-log}.
4624 They are appended but not truncated or rotated automatically; you might
4625 need to remove it manually.
4626
4627 @item wl-expire-add-seen-list
4628 @vindex wl-expire-add-seen-list
4629 The initial setting is t.
4630
4631 If non-nil, when messages are re-filed by expiration, read/unread
4632 information is passed to the destination folder.
4633
4634 However if you do not read the destination folder from Wanderlust,
4635 @file{seen} under @file{~/.elmo/} grows larger and larger, so you might
4636 want to set this to nil if you are simply saving to some archiving
4637 folders.  Even if its value is nil, messages in the archiving folders
4638 are simply treated as unread; it does not affect expiration itself.
4639
4640 @item wl-expire-folder-update-msgdb
4641 @vindex wl-expire-folder-update-msgdb
4642 The initial setting is t.
4643 If t, in the folder mode, expiration is carried out after updating
4644 summary information.
4645 If you specified a list of regular expressions of folder names, summary
4646 information is updated for matching folders only.
4647 @end table
4648
4649
4650 @node Archive,  , Expire, Expire and Archive
4651 @section Archiving Messages
4652
4653 @subsection Archiving Messages
4654 @kbd{M-x wl-summary-archive} copies the whole folder to archiving
4655 folders.  If there are the archiving folders already, only new messages
4656 are appended.
4657
4658 You can use @code{wl-archive-alist} in order to specify how messages are 
4659 archived according to their folder names, as in @code{wl-expire-alist}.
4660 For example:
4661
4662 @lisp
4663 (setq wl-archive-alist
4664       '(("^\\+tmp$"     wl-archive-date)
4665         ("^\\+outbox$"  wl-archive-number2)
4666         (".*"           wl-archive-number1)
4667         ))
4668 @end lisp
4669
4670 Each item in the list has the following format:
4671
4672 @example
4673 ("folders_regexp"  deleting_function)
4674 @end example
4675
4676 As you can see, you can only use a function after @samp{folders_regexp}.
4677 Per default, there are three functions:
4678
4679 @itemize @bullet
4680 @item wl-archive-number1
4681 @item wl-archive-number2
4682 @item wl-archive-date
4683 @end itemize
4684
4685 As inferred from their names, they work similarly to "expire" versions,
4686 other than the following points:
4687
4688 @itemize @minus
4689 @item No messages are deleted
4690 @item Message numbers are retained even if invoked without arguments
4691 @end itemize
4692
4693 These functions are good to archive all messages in a folder by their
4694 numbers or by their dates.
4695 These are also useful for backup or confirmation purposes before
4696 expiration.
4697 If you try to re-file them after they are archived, they are deleted but 
4698 not re-filed.
4699
4700 Per default, the archiving folders to which messages are copied are
4701 determined automatically by @code{wl-expire-archive-get-folder-func}.
4702 You can copy to a specific folder by invoking with a prefix argument,
4703 i.e. @kbd{C-u M-x wl-summary-archive}.
4704
4705 Note that this feature has not been seriously tested, because you can
4706 simply copy to an archiving folder, for example by
4707 @code{wl-summary-copy-region}.
4708
4709 The archiving folders are determined by the same logic as in
4710 @code{wl-summary-expire}; the following customizable variables are
4711 relevant:
4712
4713 @itemize @bullet
4714 @item wl-expire-archive-files
4715 @item wl-expire-archive-get-folder-func
4716 @item wl-expire-archive-folder-name-fmt
4717 @item wl-expire-archive-folder-type
4718 @item wl-expire-archive-folder-prefix
4719 @item wl-expire-archive-folder-num-regexp
4720 @end itemize
4721
4722 @subsection Customizable Variables
4723
4724 @table @code
4725 @item wl-archive-alist
4726 @vindex wl-archive-alist
4727 The initial setting is '((".*" wl-archive-number1)).
4728
4729 This variable specifies a function that copies to archiving folders.
4730 To the function, three arguments are passed: a folder name, a list of
4731 messages in the folder, and msgdb information of the summary.
4732 Needless to say, you can use your own function.
4733 @end table
4734
4735
4736 @c
4737 @c  Scoring
4738 @c
4739 @node Scoring, Customization, Expire and Archive, Top
4740 @chapter Score of the Messages
4741 @cindex Scoring
4742 @c @cindex Kill File
4743
4744 Scoring is the function that associates a score (value) with each
4745 message, and marks as read or deletes from the summary according to it.
4746
4747 You can put temp or important marks on essential messages, or read marks
4748 on the ones you do not want to read, for example spam articles.
4749
4750 This scoring function has a capability and a format similar to the one
4751 that Gnus has, although there are some unsupported features and
4752 Wanderlust specifics.
4753
4754 @menu
4755 * Score Commands::             Score Commands
4756 * Score File Format::          Score File Format
4757 @end menu
4758
4759
4760 @node Score Commands, Score File Format, Scoring, Scoring
4761 @section Score Commands
4762 @cindex Score Commands
4763
4764 @subsection Score File Specification
4765
4766 @code{wl-score-folder-alist} specifies score files or variables in which 
4767 scores are defined, corresponding to folder names.
4768
4769 @lisp
4770 (setq wl-score-folder-alist
4771       '(("^-.*"
4772          "news.SCORE"
4773          "my.SCORE")
4774         (".*"
4775          "all.SCORE")))
4776 @end lisp
4777
4778 If paths to the score files are omitted, the directory specified in the
4779 variable @code{wl-score-files-dir} is assumed.
4780
4781 No matter what you write in @code{wl-score-folder-alist}, the default
4782 score file @code{wl-score-default-file} (@file{all.SCORE}) is always
4783 read (it does not have to exist).
4784 Therefore, in the example above, the three score files,
4785 @file{news.SCORE}, @file{my.SCORE}, and @file{all.SCORE} are read for
4786 the folders that matches @samp{^-.*}.
4787
4788 @subsection Scored Messages
4789
4790 Scores are attached to the messages that are specified by
4791 @code{wl-summary-score-marks} temporarily when the summary is updated;
4792 when you exit from the summary, the scores are removed and reverts to
4793 the defaults.
4794
4795 @subsection Creation of Score Files
4796
4797 In the summary buffer, move to an appropriate message and type @kbd{L}.
4798 Then type @kbd{s}, @kbd{s}, and @kbd{p} at a prompt in a mini-buffer.
4799 The string in Subject is presented.  Edit it and press @kbd{@key{RET}}.
4800
4801 This makes -1000 are scored for messages with the same Subject as the
4802 string you entered.  That is, such a score file is created
4803 automatically.
4804
4805 Then, try typing @kbd{h} and @kbd{e} in the same summary buffer.
4806 The score file you just made appears.
4807 This buffer is called "score editing buffer" thereafter.
4808 When you type @kbd{C-c C-e} in it, you are prompted in the mini-buffer
4809 as you are previously; type @kbd{a}.  Then a score entry for "From"
4810 should be inserted.
4811 In this way, you can create a score file easily either in the summary
4812 buffer or in the score editing buffer.
4813
4814 By the way, you might be aware the numbers of key strokes are different
4815 between @kbd{s s p} and @kbd{a}.
4816 This is determined by @code{wl-score-header-default-entry}.
4817 This variable specifies the default score entries corresponding to
4818 header fields.
4819 For example, for "subject" field, a type and a time limit are prompted,
4820 but for "from" field, they are fixed upon automatically as substring and
4821 permanent respectively.
4822 However, score values can be modified by the prefix argument.
4823 Typing @kbd{?} at the mini-buffer shows a help on keys and corresponding 
4824 headers and types.
4825
4826 At last, type @kbd{C-c C-c} in the score editing buffer.  This saves the 
4827 score file and terminates the edit mode.  Typing @kbd{C-c C-c} after
4828 erasing contents of the buffer deletes the score file being edited.
4829
4830 @subsection Tips
4831
4832 @subsubsection Selecting Score Files
4833
4834 You can change score files to which scores are appended by
4835 @code{wl-summary-increase-score} and @code{wl-summary-lower-score} by
4836 @code{wl-score-change-score-file}.
4837
4838 @subsubsection Summing Up the Score
4839
4840 If you add the same entries by @code{wl-summary-increase-score},
4841 @code{wl-summary-lower-score}, and @code{wl-score-edit-insert-entry},
4842 scores for the entry is summed up.
4843
4844 For example, if you create @samp{from} entry with the score of -1000 by
4845 @kbd{L a} and again @samp{from} with -200, one entry with the score of
4846 -1200 will be created as a result.
4847
4848 @subsubsection Creating Thread Key
4849
4850 Creating @samp{Thread} key by @code{wl-summary-increase-score} or
4851 @code{wl-summary-lower-score} appends @samp{Message-ID} of all children.
4852
4853 @subsubsection Creating Followup Key
4854
4855 Creating @samp{Followup} key by @code{wl-summary-increase-score} or
4856 @code{wl-summary-lower-score} appends @samp{Message-ID} of the message
4857 at the cursor to @samp{References} key.
4858 If @code{wl-score-auto-make-followup-entry} is non-nil,
4859 @samp{Message-ID} of all messages to be followed up within dates
4860 specified by @code{wl-score-expiry-days}.
4861
4862 @subsection Key Bindings
4863
4864 @table @kbd
4865 @item K
4866 @kindex K (Summary)
4867 @findex wl-summary-increase-score
4868 Increases the score for the current message.
4869 And the score entry is appended to the score file at the same moment.
4870 You can specify the score value by a prefix argument.
4871
4872 @item L
4873 @kindex L (Summary)
4874 @findex wl-summary-lower-score
4875 Decreases the score for the current message.
4876 And the score entry is appended to the score file at the same moment.
4877 You can specify the score value by a prefix argument.
4878
4879 @item h R
4880 @kindex h R (Summary)
4881 @findex wl-summary-rescore
4882 Re-applies the scoring.
4883 However, already scored messages are not scored anew.
4884
4885 @item h c
4886 @kindex h c (Summary)
4887 @findex wl-score-change-score-file
4888 Changes the score file currently selected.
4889
4890 @item h e
4891 @kindex h e (Summary)
4892 @findex wl-score-edit-current-scores
4893 Edits the score file currently selected.
4894 If there are multiple score files, the previously specified one is
4895 selected.
4896
4897 @item h f
4898 @kindex h f (Summary)
4899 @findex wl-score-edit-file
4900 Edits an arbitrary score file and selects it.
4901
4902 @item h F
4903 @kindex h F (Summary)
4904 @findex wl-score-flush-cache
4905 Erases caches associated to the score files that are read.
4906 If you modified score files directly (from other than Wanderlust), you
4907 need to re-read them after erasing the cache.
4908
4909 @item h m
4910 @kindex h m (Summary)
4911 @findex wl-score-set-mark-below
4912 Specifies the criterion for scores to be marked as read.
4913 Messages with scores less than this value are marked as read.
4914
4915 @item h x
4916 @kindex h x (Summary)
4917 @findex wl-score-set-expunge-below
4918 Specifies the criterion for scores to be deleted from the summary.
4919 Messages with scores less than this value are deleted.
4920 "Deleted" means it is not shown; they are not removed from the summary
4921 information or the folder.
4922 The deleted messages can be shown by rescan-noscore again.
4923 @end table
4924
4925 @subsection Key Bindings in the Score Editing Buffer
4926
4927 @table @kbd
4928 @item C-c C-k
4929 @kindex C-c C-k (Score Mode)
4930 @findex wl-score-edit-kill
4931 Abandons the file being edited.
4932
4933 @item C-c C-c
4934 @kindex C-c C-c (Score Mode)
4935 @findex wl-score-edit-exit
4936 Saves the file being edited, and quits from the edit mode.
4937
4938 @item C-c C-p
4939 @kindex C-c C-p (Score Mode)
4940 @findex wl-score-pretty-print
4941 Re-draws the score.
4942
4943 @item C-c C-d
4944 @kindex C-c C-d (Score Mode)
4945 @findex wl-score-edit-insert-date
4946 Inserts the number of dates from Dec. 31, 1 B.C.
4947 It is used for creating the third factor of time-limited scores.
4948
4949 @item C-c C-s
4950 @kindex C-c C-s (Score Mode)
4951 @findex wl-score-edit-insert-header
4952 Inserts the header of the message selected in the summary buffer.
4953
4954 @item C-c C-e
4955 @kindex C-c C-e (Score Mode)
4956 @findex wl-score-edit-insert-entry
4957 Inserts the score entry of the message selected in the summary buffer.
4958 @end table
4959
4960 @subsection Customizable Variables
4961
4962 @table @code
4963 @item wl-summary-default-score
4964 @vindex wl-summary-default-score
4965 The initial setting is zero.
4966 This variable specifies the default value of the score.
4967 The score is increased or decreased based upon this value.
4968
4969 @item wl-summary-important-above
4970 @vindex wl-summary-important-above
4971 The initial setting is nil.
4972 Messages with scores larger than this value are attached with the
4973 important mark (@samp{$}).
4974 If nil, no important marks are attached.
4975
4976 @item wl-summary-temp-above
4977 @vindex wl-summary-temp-above
4978 The initial setting is nil.
4979 Messages with scores larger than this value are attached with the temp
4980 mark (@samp{*}).
4981 If nil, no temp marks are attached.
4982
4983 @item wl-summary-mark-below
4984 @vindex wl-summary-mark-below
4985 The initial setting is zero.
4986 Messages with scores smaller than this value are marked as read.
4987
4988 @item wl-summary-expunge-below
4989 @vindex wl-summary-expunge-below
4990 The initial setting is nil.
4991 Messages with scores smaller than this value are deleted from the
4992 summary.
4993 If nil, they are not deleted.
4994
4995 @item wl-summary-score-marks
4996 @vindex wl-summary-score-marks
4997 The initial setting is '("N" "!" "U").
4998 Messages with these marks are scored.
4999
5000 @item wl-use-scoring
5001 @vindex wl-use-scoring
5002 The initial setting is t.
5003 If non-nil, scoring is enabled.
5004
5005 @item wl-score-files-dir
5006 @vindex wl-score-files-dir
5007 The initial setting is "~/.elmo/".
5008 The default directory for score files.
5009
5010 @item wl-score-interactive-default-score
5011 @vindex wl-score-interactive-default-score
5012 The initial setting is 1000.
5013 This value is used as a score when a score factor is nil in the score
5014 file.
5015 It is also used in @code{wl-summary-increase-score} and
5016 @code{wl-summary-lower-score}, on condition that the value of
5017 @code{wl-score-header-default-entry} is nil.
5018
5019 @item wl-score-expiry-days
5020 @vindex wl-score-expiry-days
5021 The initial setting is 7.
5022 This is the number of days before time-limited scores are deleted.
5023
5024 @item wl-score-update-entry-dates
5025 @vindex wl-score-update-entry-dates
5026 The initial setting is t.
5027 If non-nil, it enables deletion of time-limited scores.
5028
5029 @item wl-score-header-default-entry
5030 @vindex wl-score-header-default-entry
5031 Specifies the default value for each header field for score entries
5032 created by @code{wl-summary-increase-score},
5033 @code{wl-summary-lower-score}, and @code{wl-score-edit-insert-entry}.
5034
5035 @item wl-score-simplify-fuzzy-regexp
5036 @vindex wl-score-simplify-fuzzy-regexp
5037 In the case of a type of a score entry is "fuzzy", this specifies a
5038 regular expression to be deleted from the string.
5039 Because this is usually used for Subject, the default is prefixes that
5040 are attached by mailing list programs.
5041
5042 @item wl-summary-rescore-partial-threshold
5043 @vindex wl-summary-rescore-partial-threshold
5044 The initial setting is 200.
5045 When sync-all or rescan is executed, if there are messages more than
5046 this value, only the last same number of messages as this value are
5047 scored.
5048
5049 @item wl-summary-auto-sync-marks
5050 @vindex wl-summary-auto-sync-marks
5051 If non-nil, unread/important marks are synchronized when the summary
5052 does.
5053 Unread marks reflect information on the IMAP4 server.
5054 Important marks reflect information on the IMAP4 server (flagged or
5055 not), and contents of 'mark folder.
5056 The initial setting is t.
5057 @end table
5058
5059
5060 @node Score File Format,  , Score Commands, Scoring
5061 @section Score File Format
5062 @cindex Score File Format
5063
5064 The format of score files are the same as Gnus, and basically you can
5065 use Gnus score files as they are.  But they are not fully compatible
5066 because some keys are not supported and there are Wanderlust specifics.
5067
5068 @example
5069 (("subject"
5070   ("for sale" -1000 nil s)
5071   ("profit" -1000 nil s))
5072  ("from"
5073   ("spam@@spamspamspam" -10000 nil s))
5074  ("followup"
5075   ("my@@address" 3001 nil s))
5076  ("chars"
5077   (1000000 -10 nil >))
5078  (important 5000)
5079  (temp 3000)
5080  (mark 0)
5081  (expunge -3000))
5082 @end example
5083
5084 @table @code
5085 @item string
5086 If the key is a string, it is the name of the header to be matched.
5087 The following keys are available:
5088 @code{Subject}, @code{From}, @code{Date}, @code{Message-ID},
5089 @code{References}, @code{To}, @code{Cc}, @code{Chars}, @code{Lines},
5090 @code{Xref}, @code{Extra}, @code{Followup}, @code{Thread}
5091 @code{Chars} and @code{Lines} mean the size and the number of lines of
5092 the message, respectively.  @code{Extra}, @code{Followup}, @code{Thread}
5093 are described later.
5094 The rest corresponds the field of the same name.
5095
5096 Arbitrary numbers of core entries are specified after the key.
5097 Each score entry consists of these five factors:
5098
5099 @enumerate
5100 @item
5101 A factor that matches header.  This should be a number in the cases of
5102 "lines" and "chars", otherwise a string.
5103
5104 @item
5105 A score factor.  When the first item matches, the score of the message
5106 is increased or decreased by this value.
5107
5108 @item
5109 A time limiting factor.  If nil, the score is permanent, and in the case
5110 of a number, the score is deleted if it does not match for days
5111 (@code{wl-score-expiry-days}) from the date specified by this.
5112 The date is since Dec. 31, 1 B.C.
5113
5114 @item
5115 A type factor.  This specifies the way the first factor matches.
5116 Available types depend on keys.
5117
5118 @table @dfn
5119 @item From, Subject, References, Message-ID
5120 For these keys in string, @code{r} and @code{R} (regexp),
5121 @code{s} and @code{S} (substring), @code{e} and @code{E} (exact match),
5122 as well as @code{f} and @code{F} (fuzzy) can be used.
5123 @code{R}, @code{S}, @code{E}, and @code{F} are case sensitive.
5124
5125 @item Lines, Chars
5126 For these keys, the following five numerical relative operators can be
5127 used: @code{<}, @code{>}, @code{=}, @code{>=}, @code{<=}.
5128
5129 @item Followup
5130 This key matches @code{From} header, and scores all follow-ups to the
5131 message.
5132 For example, it would be useful for increasing scores for follow-ups to
5133 you own article.
5134
5135 You can use the same types as @code{From} except for @code{f}.
5136 And a @samp{Followup} entry is automatically appended to the score file.
5137
5138 @item Thread
5139 This key scores (sub-)threads beginning with @code{Message-ID} @var{x}.
5140 A @samp{Thread} entry is automatically appended for each article that
5141 has @var{x} in the @code{References} header.
5142 You can make sure the whole thread including messages that does not have
5143 all ancestors @code{Message-ID} in @code{References} is scored.
5144
5145 You can use the same types as @code{References} except for @code{f}.
5146 And a @samp{Thread} entry is automatically appended to the score file.
5147 @end table
5148
5149 @item
5150 A factor for extension header.  This is meaningful only if the key is
5151 @code{Extra}.
5152 This specifies headers to be matched other than standard headers like
5153 @code{Subject} and @code{From}.
5154 Note that you should specify the header in
5155 @code{elmo-msgdb-extra-fields} also.
5156 Therefore it does not work in folders where extension headers cannot be
5157 retrieved.
5158
5159 @end enumerate
5160
5161 The sum of these scores @emph{after all factors are applied} becomes the 
5162 score of the message.
5163
5164 @cindex Score File Atoms
5165 @item mark
5166 Messages with a score less than this value is marked as read.
5167 The default is @code{wl-summary-mark-below}.
5168
5169 @item expunge
5170 Messages with a score less than this value is deleted from the summary.
5171 The default is @code{wl-summary-expunge-below}.
5172
5173 @item mark-and-expunge
5174 Both @code{mark} and @code{expunge} are applied,
5175 i.e. messages with a score less than this value is marked as read and
5176 deleted from the summary.
5177
5178 @item temp
5179 Messages with a score greater than this value is attached with temp
5180 marks.
5181 The default is @code{wl-summary-temp-above}.
5182
5183 @item important
5184 Messages with a score greater than this value is attached with important
5185 marks.
5186 The default is @code{wl-summary-important-above}.
5187 @end table
5188
5189 @subsection Caveats
5190
5191 Not to mention the @code{extra} key, if @code{lines} or @code{xref} keys 
5192 are used, you need to set @code{elmo-msgdb-extra-fields}.
5193
5194 @lisp
5195 (setq elmo-msgdb-extra-fields '("lines" "xref"))
5196 @end lisp
5197
5198 There are other restrictions as shown below:
5199
5200 @itemize @bullet
5201 @item Because @samp{References} field in the summary information
5202 contains only the last @samp{Message-ID}, @code{references} key matches
5203 the last one only.
5204 @end itemize
5205
5206 Keys that can be seen by folder of types:
5207
5208 @example
5209                         chars lines xref  extra
5210 localdir,localnews        Y     E     E     E
5211 nntp (supporting xover)   Y     E     E     N
5212      (otherwise)          N     E     E     E
5213 imap4                     Y     E     E     E
5214 pop3                      N     E     E     E
5215
5216                 Y: can be seen
5217                 N: cannot be seen (ignored)
5218                 E: can be seen with @code{elmo-msgdb-extra-fields} settings
5219 @end example
5220
5221
5222 @c
5223 @c  Customization
5224 @c
5225 @node Customization, Mailing List, Scoring, Top
5226 @chapter Customizing Wanderlust
5227 @cindex Customization
5228
5229 @menu
5230 * Living with other packages:: Living with other packages
5231 * Highlights::                 Highlights
5232 * Advanced Settings::          Advanced Settings
5233 * Customizable Variables::     Customizable Variables
5234 @end menu
5235
5236
5237 @node Living with other packages, Highlights, Customization, Customization
5238 @section Living with other packages
5239
5240 Examples with other packages.
5241
5242 @menu
5243 * BBDB::                        BBDB
5244 * supercite::                   supercite.el
5245 * mu-cite::                     mu-cite.el
5246 * x-face-mule::                 x-face-mule.el
5247 * dired-dd::                    dired-dd.el
5248 @end menu
5249
5250
5251 @node BBDB, supercite, Living with other packages, Living with other packages
5252 @subsection bbdb.el
5253 @pindex BBDB
5254
5255 Place @file{util/bbdb-wl.el} on the load-path and do the following
5256 settings.
5257
5258 If BBDB is on the load-path at the installation, @file{bbdb-wl.el} is
5259 byte-compiled and installed.
5260 @xref{Install}.
5261
5262 @lisp
5263 (require 'bbdb-wl)
5264
5265 (bbdb-wl-setup)
5266 ;; @r{enable pop-ups}
5267 (setq bbdb-use-pop-up t)
5268 ;; @r{auto collection}
5269 (setq bbdb/mail-auto-create-p t)
5270 (setq signature-use-bbdb t)
5271 (setq bbdb-north-american-phone-numbers-p nil)
5272 ;; @r{shows the name of bbdb in the summary} :-)
5273 (setq wl-summary-from-func 'bbdb-wl-from-func)
5274 ;; @r{automatically add mailing list fields}
5275 (add-hook 'bbdb-notice-hook 'bbdb-auto-notes-hook)
5276 (setq bbdb-auto-notes-alist '(("X-ML-Name" (".*$" ML 0))))
5277 @end lisp
5278
5279 @node supercite, mu-cite, BBDB, Living with other packages
5280 @subsection sc.el(supercite), sc-register.el
5281 @pindex sc
5282 @pindex supercite
5283
5284 The same setting as usual mailers should be OK.  The following is an
5285 example of settings.
5286
5287 @lisp
5288 (autoload 'sc-cite-original "sc" nil t)
5289 (setq mail-yank-hooks 'sc-cite-original)
5290 (setq sc-preferred-header-style 1)
5291 (setq sc-electric-references-p nil)
5292 (setq sc-citation-leader "")
5293 (setq sc-load-hook '(lambda () (require 'sc-register)))
5294 (setq sc-preferred-attribution 'registeredname)
5295 @end lisp
5296
5297
5298 @node mu-cite, x-face-mule, supercite, Living with other packages
5299 @subsection mu-cite.el
5300 @pindex mu-cite
5301
5302 The same setting as usual mailers should be OK.  The following is an
5303 example of settings.
5304
5305 If you use mu-cite version 8.0 or earlier:
5306
5307 @lisp
5308 (autoload 'mu-cite/cite-original "mu-cite" nil t)
5309 (setq mail-citation-hook 'mu-cite/cite-original)
5310 @end lisp
5311
5312 If you use mu-cite version 8.1 or later:
5313
5314 @lisp
5315 (autoload 'mu-cite-original "mu-cite" nil t)
5316 (add-hook 'mail-citation-hook (function mu-cite-original))
5317 @end lisp
5318
5319 @node x-face-mule, dired-dd, mu-cite, Living with other packages
5320 @subsection x-face-mule.el
5321 @pindex x-face-mule
5322 @pindex bitmap-mule
5323
5324 It depends on the version of x-face-mule.
5325 If you use x-face-mule 0.19 or older, do the following:
5326
5327 @lisp
5328 (setq wl-highlight-x-face-func
5329       (function
5330        (lambda (beg end)
5331         (x-face-mule:x-face-decode-message-header))))
5332
5333 If you use x-face-mule 0.20 or later, try the following.
5334
5335 (setq wl-highlight-x-face-func
5336       (function
5337        (lambda (beg end)
5338         (x-face-mule-x-face-decode-message-header))))
5339 (require 'x-face-mule)
5340 @end lisp
5341
5342 Use these settings when you use @file{x-face-mule.el} attached to
5343 bitmap-mule 8.0 or later.
5344
5345 @lisp
5346 (autoload 'x-face-decode-message-header "x-face-mule")
5347 (setq wl-highlight-x-face-func
5348       (function x-face-decode-message-header))
5349 @end lisp
5350
5351 If there is an encoded X-Face string in a file @file{~/.xface} (the value
5352 of the variable @code{wl-x-face-file}), it is inserted as a X-Face field
5353 in the draft buffer (if @code{wl-auto-insert-x-face} is non-nil).
5354
5355
5356 @node dired-dd,  , x-face-mule, Living with other packages
5357 @subsection dired-dd(Dired-DragDrop)
5358 @pindex Dired-DragDrop
5359 @pindex Dired-DD
5360 @cindex Drag and Drop
5361
5362 If you embed @file{dired-dd-mime.el} in the dired-dd package, you can
5363 compose multi-part by simple Drag&Drop from dired to the draft buffer
5364 being edited in GNU Emacs (this feature is not Wanderlust specific, but
5365 general-purpose for tm/SEMI).
5366
5367 @lisp
5368 ;; @r{dired-dd:} http://www.asahi-net.or.jp/~pi9s-nnb/dired-dd-home.html
5369 (add-hook
5370  'dired-load-hook
5371  (function
5372   (lambda ()
5373     (load "dired-x")
5374     ;; @r{Set dired-x variables here.}
5375     ;; @r{To and flo@dots{}}
5376     (if window-system
5377         (progn (require 'dired-dd)
5378                (require 'dired-dd-mime))))))
5379 @end lisp
5380
5381
5382 @node Highlights, Advanced Settings, Living with other packages, Customization
5383 @section Highlights
5384
5385 @subsection Customizable Variables
5386
5387 @table @code
5388 @item  wl-summary-highlight
5389 @vindex wl-summary-highlight
5390 The initial setting is t.
5391 If non-nil, the summary is highlighted.
5392
5393 @item  wl-highlight-max-summary-lines
5394 @vindex wl-highlight-max-summary-lines
5395 The initial setting is 10000.
5396 The summary is not highlighted if it has more lines than this value.
5397
5398 @item  wl-summary-highlight-partial-threshold
5399 @vindex wl-summary-highlight-partial-threshold
5400 The initial setting is 1000.
5401 This is a threshold whether the whole summary is highlighted.
5402 If there are more lines of messages in the summary, it is partially
5403 highlighted.
5404
5405 @item  wl-summary-partial-highlight-above-lines
5406 @vindex wl-summary-partial-highlight-above-lines
5407 The initial setting is 30.
5408 If there are more lines of messages than
5409 @code{wl-summary-highlight-partial-threshold} in the summary, messages
5410 after the point that is the same number of lines as this value above the
5411 cursor line are highlighted partially.
5412 (If this value is nil, the last same number of lines as the value of
5413 @code{wl-summary-highlight-partial-threshold} are highlighted.)
5414
5415 @item wl-highlight-body-too
5416 @vindex  wl-highlight-body-too
5417 The initial setting is t.
5418 If non-nil, bodies of drafts and messages are also highlighted.
5419
5420 @item  wl-highlight-message-header-alist
5421 @vindex wl-highlight-message-header-alist
5422 When highlighting headers of drafts and messages, this variable
5423 specifies which faces are allocated to important
5424 (@code{wl-highlight-message-important-header-contents}), secondly
5425 important (@code{wl-highlight-message-important-header-contents2}), and
5426 unimportant (@code{wl-highlight-message-unimportant-header-contents})
5427 message headers.
5428 Similarly, it can be used for allocating arbitrary faces to arbitrary
5429 regular expressions.
5430
5431 @item wl-highlight-citation-prefix-regexp
5432 @vindex  wl-highlight-citation-prefix-regexp
5433 Specifies a regular expression to which quoted lines in bodies of 
5434 drafts and messages match.
5435 Bodies matching to this regular expression are highlighted by the faces
5436 specified by (@code{wl-highlight-message-cited-text-*}).
5437
5438 @item  wl-highlight-highlight-citation-too
5439 @vindex wl-highlight-highlight-citation-too
5440 The initial setting is nil.
5441 If non-nil, the quoting regular expression itself given by
5442 @code{wl-highlight-citation-prefix-regexp} is also highlighted.
5443
5444 @item  wl-highlight-citation-header-regexp
5445 @vindex wl-highlight-citation-header-regexp
5446 Specifies a regular expression that denotes beginning of quotation.
5447 Bodies matching to this regular expression are highlighted by the face
5448 specified by @code{wl-highlight-message-headers}.
5449
5450 @item  wl-highlight-max-message-size
5451 @vindex wl-highlight-max-message-size
5452 The initial setting is 10000.
5453 If a message is larger than this value, it will not be highlighted.
5454 With this variable, highlight is suppressed for uuencode or huge digest
5455 messages.
5456
5457 @item  wl-highlight-signature-separator
5458 @vindex wl-highlight-signature-separator
5459 Specifies regular expressions that denotes the boundary of a signature.
5460 It can be a regular expression, or a list of ones.
5461 Messages after the place that matches this regular expression are
5462 highlighted by the face specified by
5463 @code{wl-highlight-message-signature}.
5464
5465 @item  wl-max-signature-size
5466 @vindex wl-max-signature-size
5467 The initial setting is 400.
5468 This is the largest size for a signature to be highlighted.
5469
5470 @item wl-use-highlight-mouse-line
5471 @vindex  wl-use-highlight-mouse-line
5472 The initial setting is t.
5473 If non-nil, the line pointed by the mouse is highlighted in the folder
5474 mode, summary mode, and the like.
5475 @end table
5476
5477 @subsection Setting Colors and Fonts of the Characters
5478
5479 If you want to change colors or fonts of the characters, you need to
5480 modify faces defined in Wanderlust.  Use set-face-font if you want to
5481 change fonts, and set-face-foreground for colors, and so on.
5482 You cannot write face settings in @file{.emacs}; write in @file{~/.wl}.
5483
5484 For example, if you want to change the color for signatures to yellow,
5485 write
5486
5487 @lisp
5488 (set-face-foreground 'wl-highlight-message-signature "yellow")
5489 @end lisp
5490
5491 @noindent
5492 in @file{~/.wl}.
5493
5494 Faces defined in Wanderlust:
5495
5496 @table @code
5497 @item wl-highlight-message-headers
5498 The face for field names of message headers.
5499
5500 @item wl-highlight-message-header-contents
5501 The face for field bodies of message headers.
5502
5503 @item wl-highlight-message-important-header-contents
5504 The face for important parts of message headers.
5505 Per default, this face is used for a body of Subject field.
5506 You can change its value by editing
5507 @code{wl-highlight-message-header-alist}.
5508
5509 @item wl-highlight-message-important-header-contents2
5510 The face for secondly important parts of message headers.
5511 Per default, this face is used for bodies of From and To fields.
5512 You can change its value by editing
5513 @code{wl-highlight-message-header-alist}.
5514
5515 @item wl-highlight-message-unimportant-header-contents
5516 The face for unimportant parts of message headers.
5517 Per default, this face is used for bodies of X- fields User-Agent fields.
5518 You can change its value by editing
5519 @code{wl-highlight-message-header-alist}.
5520
5521 @item wl-highlight-message-citation-header
5522 The face for headers of quoted messages.
5523
5524 @item wl-highlight-message-cited-text-*
5525 The face for texts of quoted messages.
5526 The last "*" is a single figure so that 10 different colors can be used
5527 according to citation levels.
5528
5529 @item wl-highlight-message-signature
5530 The face for signatures of messages.
5531 The initial settings are khaki for light background colors, and
5532 DarkSlateBlue for dark background colors.
5533
5534 @item wl-highlight-header-separator-face
5535 The face for header separators of draft messages.
5536
5537 @item wl-highlight-summary-important-face
5538 The face for message lines with important marks in the summary.
5539
5540 @item wl-highlight-summary-new-face
5541 The face for message lines with new marks in the summary.
5542
5543 @item wl-highlight-summary-displaying-face
5544 The face for the message line that is currently displayed.
5545 This face is overlaid.
5546
5547 @item wl-highlight-thread-indent-face
5548 The face for the threads that is currently displayed.
5549
5550 @item wl-highlight-summary-unread-face
5551 The face for message lines with unread marks in the summary.
5552
5553 @item wl-highlight-summary-deleted-face
5554 The face for message lines with delete marks in the summary.
5555
5556 @item wl-highlight-summary-refiled-face
5557 The face for message lines with re-file marks in the summary.
5558
5559 @item wl-highlight-refile-destination-face
5560 The face for re-file information part of message lines with re-file
5561 marks in the summary.
5562
5563 @item wl-highlight-summary-copied-face
5564 The face for message lines with copy marks in the summary.
5565
5566 @item wl-highlight-summary-target-face
5567 The face for message lines with temp marks @samp{*} in the summary.
5568
5569 @item wl-highlight-summary-thread-top-face
5570 The face for message lines that are on the top of the thread in the
5571 summary.
5572
5573 @item wl-highlight-summary-normal-face
5574 The face for message lines that are not on top of the thread in the
5575 summary.
5576
5577 @item wl-highlight-folder-unknown-face
5578 The face for folders that are not known to have how many unsync messages
5579 in the folder mode.
5580
5581 @item wl-highlight-folder-zero-face
5582 The face for folders that have no unsync messages in the folder mode.
5583
5584 @item wl-highlight-folder-few-face
5585 The face for folders that have some unsync messages in the folder mode.
5586
5587 @item wl-highlight-folder-many-face
5588 The face for folders that have many unsync messages in the folder mode.
5589 The boundary between `some' and `many' is specified by the variable
5590 @code{wl-folder-many-unsync-threshold}.
5591
5592 @item wl-highlight-folder-unread-face
5593 The face for folders that have no unsync but unread messages in the
5594 folder mode.
5595
5596 @item wl-highlight-folder-killed-face
5597 The face for folders that are deleted from the access group in the
5598 folder mode.
5599
5600 @item wl-highlight-folder-opened-face
5601 The face for open groups in the folder mode.
5602 It is meaningful when @code{wl-highlight-group-folder-by-numbers} is nil.
5603
5604 @item wl-highlight-folder-closed-face
5605 The face for close groups in the folder mode.
5606 It is meaningful when @code{wl-highlight-group-folder-by-numbers} is nil.
5607
5608 @item wl-highlight-folder-path-face
5609 The face for the path to the currently selected folder in the folder
5610 mode.
5611
5612 @item wl-highlight-logo-face
5613 The face for logo in the demo.
5614
5615 @item wl-highlight-demo-face
5616 The face for strings (for example, a version number) in the demo.
5617 @end table
5618
5619 @node Advanced Settings, Customizable Variables, Highlights, Customization
5620 @section Advanced Settings
5621
5622 @menu
5623 * Draft for Reply::             Draft for Reply
5624 * Thread Format::               Appearance of Thread
5625 * User-Agent Header::           User-Agent Header
5626 @end menu
5627
5628
5629 @node Draft for Reply, Thread Format, Advanced Settings, Advanced Settings
5630 @subsection Draft for Replay
5631
5632 If you want, when you replying to articles in mailing lists, the address
5633 in Reply-To field of the original message to be prepared to To field of
5634 the reply draft by simply pressing @kbd{a} in the summary mode, try the
5635 following settings:
5636
5637 @lisp
5638 (setq wl-draft-reply-without-argument-list
5639       '(("Mail-Followup-To" . (("Mail-Followup-To") nil ("Newsgroups")))
5640         ("Followup-To" . (nil nil ("Followup-To")))
5641         (("X-ML-Name" "Reply-To") . (("Reply-To") nil nil))
5642         ("From" . (("From") ("To" "Cc") ("Newsgroups")))))
5643 @end lisp
5644
5645 @noindent
5646 (Only if there are both of "X-ML-Name" and "Reply-To" fields in the
5647 original message, Reply-To: field in the original is copied to To:
5648 field.)
5649
5650 @node Thread Format, User-Agent Header, Draft for Reply, Advanced Settings
5651 @subsection Appearance of Threads
5652
5653 @example
5654   389  09/18(Fri)01:07 [ Teranishi         ] wl-0.6.3
5655   390  09/18(Fri)07:25 +-[ Tsumura-san       ]
5656   391  09/18(Fri)19:24 +-[ Murata-san        ]
5657   392  09/20(Sun)21:49 +-[ Okunishi-san      ]
5658   396  09/20(Sun)22:11 | +-[ Tsumura-san       ]
5659   398  09/21(Mon)00:17 |   +-[ Tsumura-san       ]
5660   408  09/21(Mon)22:37 |     +-[ Okunishi-san      ]
5661   411  09/22(Tue)01:34 |       +-[ Tsumura-san       ]
5662   412  09/22(Tue)09:28 |       +-[ Teranishi         ]
5663   415  09/22(Tue)11:52 |         +-[ Tsumura-san       ]
5664   416  09/22(Tue)12:38 |           +-[ Teranishi         ]
5665   395  09/20(Sun)21:49 +-[ Okunishi-san      ]
5666   397  09/21(Mon)00:15 +-[ Okunishi-san      ]
5667 @end example
5668
5669 Settings to make appearance of threads like shown above:
5670
5671 @lisp
5672 (setq wl-thread-indent-level 2)
5673 (setq wl-thread-have-younger-brother-str "+")
5674 (setq wl-thread-youngest-child-str       "+")
5675 (setq wl-thread-vertical-str             "|")
5676 (setq wl-thread-horizontal-str           "-")
5677 (setq wl-thread-space-str                " ")
5678 @end lisp
5679
5680 If you do not want to see branches, do the following:
5681
5682 @lisp
5683 (setq wl-thread-indent-level 2)
5684 (setq wl-thread-have-younger-brother-str " ")
5685 (setq wl-thread-youngest-child-str       " ")
5686 (setq wl-thread-vertical-str             " ")
5687 (setq wl-thread-horizontal-str           " ")
5688 (setq wl-thread-space-str                " ")
5689 @end lisp
5690
5691
5692 @node User-Agent Header,  , Thread Format, Advanced Settings
5693 @subsection User-Agent
5694
5695 If you are eccentric enough to elaborate X-Mailer or User-Agent fields,
5696 define a function that inserts appropriate strings as you like, and set
5697 it to @code{wl-generate-mailer-string-func}.
5698
5699 The following is an example.
5700
5701 @lisp
5702 (setq wl-generate-mailer-string-func
5703       (function
5704        (lambda ()
5705          (concat "X-Mailer: "
5706                  (format "%s/%s (%s)" wl-appname wl-version wl-codename)))))
5707 @end lisp
5708
5709 @node Customizable Variables,  , Advanced Settings, Customization
5710 @section Customizable Variables
5711
5712 Customizable variables that have not been described yet:
5713
5714 @table @code
5715 @item wl-default-folder
5716 @vindex wl-default-folder
5717 The initial setting is "%inbox".  This is the default value for moving to
5718 a folder and the like.
5719
5720 @item wl-draft-folder
5721 @vindex wl-draft-folder
5722 The initial setting is "+draft".  It is the folder to which drafts are
5723 saved.  It must be a localdir folder.
5724
5725 @item wl-trash-folder
5726 @vindex wl-trash-folder
5727 The initial setting is "+trash".  It is the wastebasket folder.
5728 If you changed this variable, you had better restart Wanderlust.
5729
5730 @item wl-interactive-exit
5731 @vindex wl-interactive-exit
5732 The initial setting is t.
5733 If non-nil, you are asked for confirmation when Wanderlust terminates.
5734
5735 @item wl-interactive-send
5736 @vindex wl-interactive-send
5737 The initial setting is nil.
5738 If non-nil, you are asked for confirmation when mail is sent.
5739
5740 @item wl-folder-sync-range-alist
5741 @vindex wl-folder-sync-range-alist
5742 The initial setting is the list shown below:
5743 @example
5744 (("^&.*$" . "all")
5745  ("^\\+draft$\\|^\\+queue$" . "all"))
5746 @end example
5747 This is an associative list of regular expressions of folder names and
5748 update range of the summary.
5749 Update range is one of the "all", "update", "rescan", "rescan-noscore", "first"
5750  and "last". If a folder do not match, "update" is used.
5751
5752 @item wl-ask-range
5753 @vindex wl-ask-range
5754 The initial setting is t.
5755 If nil, the value of @code{wl-folder-sync-range-alist} is used for
5756 updating the summary when you changed folders.
5757
5758 @item wl-mime-charset
5759 @vindex wl-mime-charset
5760 The initial setting is 'x-ctext.
5761 This is the MIME charset for messages that are not MIME (e.g. without
5762 Content-Type). This value also used as default charset for summary.
5763 (If you want to share Summary on Nemacs and other Emacsen,
5764 set this value as 'iso-2022-jp.)
5765
5766 @item wl-search-mime-charset
5767 @vindex wl-search-mime-charset
5768 The initial setting is 'iso-2022-jp.
5769 This is used as a MIME charset for searching.
5770
5771 @item wl-highlight-folder-with-icon
5772 @vindex wl-highlight-folder-with-icon
5773 This is meaningful for XEmacs only.  The initial setting depends on
5774 XEmacs (t for XEmacs with icons).
5775
5776 @item wl-strict-diff-folders
5777 @vindex wl-strict-diff-folders
5778 This is a list of regular expressions of folders.
5779 Unread messages are checked, for example when you press @kbd{s} in
5780 the folder mode, usually in a brief way (rapidly processed but not
5781 accurate).
5782 The folders matching this variable are seriously checked.
5783 You may want to set this variable so as to match conditional filter
5784 folders for IMAP4 folders.
5785 The initial setting is nil.
5786
5787 @item wl-folder-use-server-diff
5788 @vindex wl-folder-use-server-diff
5789 When unread messages are checked, for example when you press @kbd{s} in
5790 the folder mode, usually (the number of messages on the server) - (the
5791 number of local messages) will be the number of unread messages.
5792 However, if this variable is non-nil, the number of unread messages on
5793 the server is checked.  This affects IMAP4 folders only, but IMAP4
5794 folders in mail boxes matching
5795 @code{elmo-imap4-disuse-server-flag-mailbox-regexp} are not checked for
5796 the number of unread messages on the server, even if they matches this
5797 variable.  The initial setting is t.
5798
5799 @item wl-auto-check-folder-name
5800 @vindex wl-auto-check-folder-name
5801 The initial setting is nil.
5802 If non-nil, the folder with the name of the value is checked for unread
5803 messages at the start.
5804 If it is 'none, no folders are checked.
5805 If it is a list, all folders in the list are checked at the start.
5806
5807 @item wl-auto-uncheck-folder-list
5808 @vindex wl-auto-uncheck-folder-list
5809 The initial setting is '("\\$.*").
5810 Folders with the name matching this variable are not checked for unread
5811 messages at the start, even if they are included in the groups in
5812 @code{wl-auto-check-folder-name}.
5813
5814 @item wl-auto-check-folder-list
5815 @vindex wl-auto-check-folder-list
5816 The initial setting is nil.
5817 Folders with the name matching this variable are always checked for
5818 unread messages at the start, if they are included in the groups in
5819 @code{wl-auto-check-folder-name}.
5820 This takes precedence over @code{wl-auto-uncheck-folder-list}.
5821
5822 @item wl-no-save-folder-list
5823 @vindex wl-no-save-folder-list
5824 The initial setting is '("^/.*$").
5825 This is a list of regular expressions of folders not to be saved.
5826
5827 @item wl-save-folder-list
5828 @vindex wl-save-folder-list
5829 The initial setting is nil.
5830 This is a list of regular expressions of folders to be saved.
5831 This takes precedence over @code{wl-no-save-folder-list}.
5832
5833 @item wl-folder-mime-charset-alist
5834 @vindex wl-folder-mime-charset-alist
5835 The initial setting is the list shown below:
5836
5837 @lisp
5838 '(("^-alt\\.chinese" . big5)
5839   ("^-relcom\\." . koi8-r)
5840   ("^-tw\\." . big5)
5841   ("^-han\\." . euc-kr)
5842   )
5843 @end lisp
5844
5845 This is an associative list of regular expressions of folder names and
5846 MIME charsets.
5847 If a folder do not match, @code{wl-mime-charset} is used.
5848
5849 @item wl-folder-init-load-access-folders
5850 @vindex wl-folder-init-load-access-folders
5851 The initial setting is nil.
5852 This is a list of access groups to be loaded specifically at the start.
5853 If it is  nil, @code{wl-folder-init-no-load-access-folders} is referred.
5854
5855 @item wl-folder-init-no-load-access-folders
5856 @vindex wl-folder-init-no-load-access-folders
5857 The initial setting is nil.
5858 This is a list of access groups not to be loaded specifically at the
5859 start.
5860 It is ignored if @code{wl-folder-init-load-access-folders} is non-nil.
5861
5862 @item wl-delete-folder-alist
5863 @vindex wl-delete-folder-alist
5864 The initial setting is '(("^-" . remove)).
5865 This list determines disposition of messages with delete marks.
5866 Each item in the list is a folder and destination; you can specify any
5867 one of the following in the place of destination:
5868
5869 @example
5870 'remove or 'null : deletes the messages instantly.
5871 string           : moves the messages to the specific folder.
5872 'trash or others : moves the messages to `wl-trash-folder'.
5873 @end example
5874
5875 @item wl-refile-policy-alist
5876 @vindex wl-refile-policy-alist
5877 The initial setting is '(("^[-=]" . copy) (".*" . move)).
5878 This list determines whether messages with re-file marks are moved or
5879 copied.
5880 Each item in the list is a cons cell of a folder and copy or move.
5881
5882 @item wl-x-face-file
5883 @vindex wl-x-face-file
5884 The initial setting is "~/.xface".
5885 The name of the file that contains encoded X-Face strings.
5886 @xref{x-face-mule}.
5887
5888 @item wl-demo-display-logo
5889 @vindex wl-demo-display-logo
5890 If non-nil, bitmap image is shown on the opening demo.
5891
5892 @item elmo-use-database
5893 @vindex  elmo-use-database
5894 This is meaningful for XEmacs only.  The initial setting depends on
5895 XEmacs (t for XEmacs with dbm).
5896 If non-nil, Message-ID is controlled by dbm.
5897
5898 @item elmo-passwd-alist-file-name
5899 @vindex  elmo-passwd-alist-file-name
5900 The initial setting is "passwd".
5901 This is the name of the file in which passwords are saved.
5902 @code{elmo-passwd-alist-save} saves current passwords to the file.
5903
5904 @item elmo-nntp-list-folders-use-cache
5905 @vindex elmo-nntp-list-folders-use-cache
5906 The initial setting is 600 (in seconds).
5907 This is period in seconds during which results of @samp{list} and
5908 @samp{list active} in NNTP are cached.  If it is nil, they are not
5909 cached.
5910
5911 @item elmo-nntp-max-number-precedes-list-active
5912 @vindex elmo-nntp-max-number-precedes-list-active
5913 The initial setting is nil.
5914 If non-nil, the number of article obtained by @samp{list active} in NNTP
5915 are used as the maximum article number of the folder.
5916 Set this to t if you are using for example INN 2.3 as an NNTP server,
5917 and if the number of read messages is not correct.
5918
5919 @item elmo-nntp-default-use-listgroup
5920 @vindex elmo-nntp-default-use-listgroup
5921 The initial setting is t.
5922 If non-nil, @samp{listgroup} is used for checking the total number of
5923 articles.
5924 If it is nil, @samp{group} is used.  In the latter case, the processing
5925 will be a little faster at the sacrifice of accuracy.
5926
5927 @item elmo-pop3-send-command-synchronously
5928 @vindex elmo-pop3-send-command-synchronously
5929 The initial setting is nil.
5930 If non-nil, POP3 commands are issued synchronously.  Some implementation
5931 of POP3 server fails to get summary information without this setting.
5932 You may have to set this variable to t, if the process hangs while
5933 looking up POP3.
5934
5935 @item elmo-dop-flush-confirm
5936 @vindex elmo-dop-flush-confirm
5937 The initial setting is t.
5938 If non-nil, you are asked for confirmation if accumulated off-line
5939 operations are executed.
5940 @end table
5941
5942
5943 @c
5944 @c  Mailing List
5945 @c
5946 @node Mailing List, Addition, Customization, Top
5947 @chapter Wanderlust Mailing List
5948
5949 @display
5950 Wanderlust Mailing List @t{<wl@@lists.airs.net>}
5951 @end display
5952
5953 Topics related to Wanderlust are discussed in the mailing list.
5954 The latest version is also announced there (in Japanese, sorry).
5955
5956 A guide can be obtained automatically by sending mail to
5957 @t{wl-ctl@@lists.airs.net} with the body
5958
5959 @example
5960 # guide
5961 @end example
5962 Please send bug reports or patches to the mailing list.
5963 You can post to the mailing list even though you are not a member of it.
5964
5965 I would like to express my thanks to the members of the mailing list for 
5966 valuable advice and many pieces of code they contributed.
5967
5968
5969 @c
5970 @c  Addition
5971 @c
5972 @node Addition, Index, Mailing List, Top
5973 @chapter Additional Information
5974
5975 @section Brief History
5976
5977 @example
5978 1998  3/05    Tried to make a prototype that displays MH messages in threads.
5979       3/10    Made a msgdb mechanism by elisp.
5980       3/26    IMAP and NNTP can be displayed in threads.
5981       4/13    Began to assemble thread display modules as elmo.
5982       5/01    Finished 0.1.0, initial version with many defects.
5983       6/12    I made a slip of the tongue and said I was writing elisp
5984               mailer supporting IMAP
5985       6/16    0.1.3 was announced at tm-ja, elisp ML.
5986       6/22    Thanks to Kitame-san, the mailing list started at northeye.org.
5987       7/01    Support for mm-backend (0.3.0).
5988       8/25    multi folder added (0.5.0).
5989       8/28    filter folder added (0.5.1).
5990       9/10    You can open/close threads (0.6.0).
5991       9/11    fldmgr by Murata-san made editing folders easy.
5992       9/18    lha folders added by Okunishi-san (0.6.3).
5993       9/24    Display of branches of threads (0.6.5).
5994       9/28    Compression folder supporting multiple archivers by Okunishi-san.
5995      10/28    Off-line operations (0.7.4).
5996      12/09    Becomes beta version.
5997      12/21    wl-expire by Murata-san.
5998 1999  2/03    auto-refile by Tsumura-san.
5999       4/28    wl-template by Murata-san.
6000       5/18    Released 1.0.0 stable.
6001       7/5     Scoring by Murata-san (2.1.0).
6002 @end example
6003
6004 See @file{ChangeLog} for details.
6005
6006 @section The Name
6007
6008 According to a dictionary, Wanderlust has the meaning:
6009
6010 @display
6011 wanderlust
6012   n eager longing for or impulse towards travelling in distant lands
6013   [Ger, fr wandern to wander + lust desire, pleasure]
6014 @end display
6015
6016 @noindent
6017 but I had no profound intention.
6018 (if farfetched, IMAP @t{=>} you can read mail anywhere @t{=>} desire to
6019 wander ?)
6020
6021 Elmo is the abbreviation of @samp{Elisp Library for Message
6022 Orchestration}.
6023 At first I meant the red puppet in the Sesame Street, but you may
6024 associate it with
6025 Wandering @t{=>} Drifting @t{=>} Guidepost @t{=>} St.@: Elmo's fire @t{=>} elmo.
6026
6027 @section Code Names
6028
6029 Each versions has code names (they are almost jokes).
6030 Currently they are picked up alphabetically from the top 40 hits of
6031 U.S. Billboard magazines in 1980s.
6032
6033 (@samp{http://www.summer.com.br/~pfilho/html/top40/index.html})
6034
6035
6036 @node Index,  , Addition, Top
6037 @unnumbered Index
6038
6039 @menu
6040 * Concept Index::               Concept Index
6041 * Key Index::                   Key Index
6042 * Variable Index::              Variable Index
6043 * Function Index::              Function Index
6044 @end menu
6045
6046 @node Concept Index, Key Index, Index, Index
6047 @unnumberedsec Concept Index
6048 @printindex cp
6049
6050 @node Key Index, Variable Index, Concept Index, Index
6051 @unnumberedsec Key Index
6052 @printindex ky
6053
6054 @node Variable Index, Function Index, Key Index, Index
6055 @unnumberedsec Variable Index
6056 @printindex vr
6057
6058 @node Function Index,  , Variable Index, Index
6059 @unnumberedsec Function Index
6060 @printindex fn
6061
6062 @summarycontents
6063 @contents
6064 @bye