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