\e$B$^$?!"JQ?t\e(B @code{wl-alias-file} \e$B$N%U%!%$%k$K\e(B MH \e$B$N\e(B alias file \e$B$,;XDj$5$l$F\e(B
\e$B$$$l$P!"%I%i%U%H:n@.;~$N%"%I%l%9>pJs$H$7$F;H$o$l$^$9!#\e(B
+\e$B$5$i$K!"JQ?t\e(B @code{wl-use-ldap} (\e$B=i4|@_Dj$O\e(B nil) \e$B$r\e(B non-nil \e$B$K@_Dj$9$k$H!"\e(B
+LDAP \e$B%5!<%P$N>pJs$r%I%i%U%H:n@.;~$N%"%I%l%9>pJs$H$7$FMxMQ$7$^$9!#\e(B
+
+LDAP \e$B$rMxMQ$9$k>l9g$O!"\e(B@code{wl-ldap-server}\e$B!"\e(B@code{wl-ldap-port},
+@code{wl-ldap-base} \e$B$bE,@Z$K@_Dj$7$F2<$5$$!#$^$?!"\e(BLDAP \e$BBP1~$N\e(B XEmacs \e$B0J\e(B
+\e$B30$G$O!"30It%W%m%0%i%`$H$7$F\e(B ldapsearch \e$B$rMxMQ$7$^$9$N$G!"\e(Bldapsearch \e$B$X\e(B
+\e$B$"$i$+$8$a%3%^%s%I<B9T%Q%9$r@_Dj$7$F$*$/I,MW$,$"$j$^$9!#\e(B
@node Folder Definition, Start Wanderlust, Mail Addresses, Start Me Up
@section \e$B9XFI$9$k%U%)%k%@$NDj5A\e(B
@end example
@item
-\e$B%U%#!<%k%I%U%#%k%?!'\e(B @samp{@var{\e$B%U%#!<%k%IL>\e(B}=@var{\e$BJ8;zNs\e(B}}
+\e$B%U%#!<%k%I%U%#%k%?!'\e(B @samp{@var{\e$B%U%#!<%k%IL>\e(B}:@var{\e$BJ8;zNs\e(B}}
\e$B%a%C%;!<%8$N\e(B@var{\e$B%U%#!<%k%I\e(B}\e$B$NCf?H$,\e(B@var{\e$BJ8;zNs\e(B}\e$B$K%^%C%A$9$k%a%C%;!<%8$r<h$j=P$7$^$9!#\e(B
@var{\e$B%U%#!<%k%IL>\e(B}\e$B!"\e(B@var{\e$BJ8;zNs\e(B}\e$B$KBgJ8;z>.J8;z$N6hJL$O$"$j$^$;$s!#\e(B
@example
@group
-/from=teranisi/+inbox -> +inbox \e$B$G!"\e(BFrom: \e$B%U%#!<%k%I$K\e(B "teranisi"
- \e$B$H$$$&J8;zNs$r4^$`%a%C%;!<%8$N%U%)%k%@\e(B
-/body=\e$B$J$s$H$+\e(B/%inbox -> %inbox \e$B$G!"K\J8$K\e(B "\e$B$J$s$H$+\e(B"
+/from:teranisi/+inbox -> +inbox \e$B$G!"\e(BFrom: \e$B%U%#!<%k%I$K\e(B
+ "teranisi" \e$B$H$$$&J8;zNs$r4^$`%a%C%;!<%8$N%U%)%k%@\e(B
+/body:\e$B$J$s$H$+\e(B/%inbox -> %inbox \e$B$G!"K\J8$K\e(B "\e$B$J$s$H$+\e(B"
\e$B$H$$$&J8;zNs$r4^$`%a%C%;!<%8$N%U%)%k%@\e(B
@end group
@end example
-@samp{|} \e$B$G6h@Z$C$F\e(B OR \e$B>r7o$r;XDj$G$-$^$9!#\e(B
-\e$B$^$?!"\e(B@samp{/tocc=xxxx/} \e$B$O!"\e(B@samp{/to=xxxx|cc=xxxx/} \e$B$HF1$8$K$J$j$^$9!#\e(B
+@item
+\e$BJ#9g>r7o\e(B
+
+\e$B>r7oItJ,$,\e(B @samp{!} \e$B$G;O$^$k$HH]Dj$N>r7o;XDj$H$J$j$^$9!#J#?t$N>r7o$r\e(B
+@samp{|} \e$B$G6h@Z$C$F;XDj$9$k$H!"\e(BOR \e$B>r7o$H$J$j$^$9!#F1MM$K!"\e(B@samp{&} \e$B$G6h\e(B
+\e$B@Z$k$H\e(B AND \e$B>r7o$r;XDj$G$-$^$9\e(B(AND \e$B>r7o$O\e(B OR \e$B>r7o$h$j$bM%@h$7$FI>2A$5$l$^\e(B
+\e$B$9\e(B)\e$B!#$5$i$K!"\e(B@samp{(}, @samp{)}, \e$B$G0O$&$H>r7o<0$r%0%k!<%T%s%0;XDj$G$-$^$9!#\e(B
+
+\e$B$^$?!">r7o$N>JN,5-K!$H$7$F\e(B @samp{tocc} \e$B$,MQ0U$5$l$F$$$^$9!#\e(B
+@samp{/tocc:xxxx/} \e$B$O!"\e(B@samp{/to:xxxx|cc:xxxx/} \e$B$KE83+$5$l$^$9!#\e(B
+@samp{/!tocc:xxxx/} \e$B$O!"\e(B@samp{/!to:xxxx&!cc:xxxx/} \e$B$KE83+$5$l$^$9!#\e(B
\e$BNc\e(B:
@example
@group
-/from=teranisi|to=teranisi/+inbox
- -> +inbox \e$B$G\e(BTo: \e$B%U%#!<%k%I$+\e(B From: \e$B%U%#!<%k%I$K\e(B
- "teranisi" \e$B$r4^$`%a%C%;!<%8$N%U%)%k%@\e(B
-/tocc=teranisi/+inbox -> +inbox \e$B$G!"\e(BTo: \e$B%U%#!<%k%I$+\e(B Cc: \e$B%U%#!<%k%I$K\e(B
- "teranisi" \e$B$r4^$`%a%C%;!<%8$N%U%)%k%@\e(B
+/from:teranisi&!to:teranisi/+inbox
+ -> +inbox \e$B$G\e(B From: \e$B%U%#!<%k%I$K\e(B "teranisi" \e$B$r4^$_!"\e(B
+ To: \e$B%U%#!<%k%I$K\e(B "teranisi" \e$B$r4^$^$J$$\e(B
+ \e$B%a%C%;!<%8$N%U%)%k%@\e(B
+
+/tocc:"Yuuichi Teranishi"/+inbox -> +inbox \e$B$G!"\e(BTo: \e$B%U%#!<%k%I$+\e(B
+ Cc: \e$B%U%#!<%k%I$K\e(B "Yuuichi Teranishi" \e$B$r4^$`\e(B
+ \e$B%a%C%;!<%8$N%U%)%k%@\e(B
+
+/(from:yt|from:teranisi)&subject:\e$BJs9p\e(B/+inbox
+ -> +inbox \e$B$G!"\e(BFrom: \e$B%U%#!<%k%I$,\e(B "yt" \e$B$+\e(B
+ "teranisi" \e$B$r4^$_!"$+$D\e(B Subject \e$B$,\e(B "\e$BJs9p\e(B" \e$B$r4^$`\e(B
+ \e$B%a%C%;!<%8$N%U%)%k%@\e(B
@end group
@end example
@end enumerate
+@noindent
+\e$BCm0U\e(B
+
+\e$BJ8;zNsItJ,$K!"6uGrJ8;z!"\e(B@samp{"}\e$B!"\e(B@samp{/}\e$B!"\e(B@samp{)}\e$B!"\e(B@samp{|}\e$B!"\e(B@samp{&}
+\e$B$r4^$_$?$$>l9g$O!"J8;zNsA4BN$r\e(B @samp{"} \e$B$G3g$kI,MW$,$"$j$^$9!#\e(B(@samp{"}
+\e$B$G3g$i$l$F$$$kJ8;zNsCf$K\e(B @samp{"} \e$B$r4^$`>l9g$O!"\e(B@samp{\} \e$B$G%(%9%1!<%W$9\e(B
+\e$B$kI,MW$,$"$j$^$9\e(B)\e$B!#$3$l$i$NJ8;z$r4^$^$J$$>l9g$G$b\e(B @samp{"} \e$B$G3g$k$N$OLd\e(B
+\e$BBj$"$j$^$;$s!#\e(B
+
+@noindent
\e$B1~MQJT\e(B
@example
-%inbox,/from=teranisi/%inbox@@server
+*%inbox,/from:teranisi/%inbox@@server
-> %inbox\e$B!"$*$h$S!"\e(B
%inbox@@server \e$B$NCf$G\e(B From \e$B%U%#!<%k%I$,\e(B "teranisi" \e$B$N%a%C%;!<%872!"\e(B
\e$B$r$$$C$Z$s$KI=<($9$k%U%)%k%@!#\e(B
-/last:100//to=teranisi/*+inbox,%inbox
+/last:100//to:teranisi/*+inbox,%inbox
-> +inbox \e$B$H\e(B %inbox \e$BCf$N%a%C%;!<%8$N$&$A!"\e(B
To: \e$B%U%#!<%k%I$,\e(B "teranisi" \e$B$K%^%C%A$9$k\e(B
\e$B%a%C%;!<%8$N:G6a$N\e(B100\e$B8D$rI=<($9$k%U%)%k%@!#\e(B
-/from=hogehoge//last:20//tocc=teranisi/%#mh/inbox@@localhost
+/from:hogehoge//last:20//tocc:teranisi/%#mh/inbox@@localhost
-> %#mh/inbox@@localhost \e$B$NCf$G!"\e(BTo \e$B$+\e(B Cc \e$B$K\e(B "teranisi" \e$B$,4^$^$l$k\e(B
\e$B%a%C%;!<%8$N:G6a$N\e(B 20 \e$B8D$N$&$A!"\e(BFrom \e$B$,\e(B "hogehoge" \e$B$N$b$N$r\e(B
\e$BI=<($9$k%U%)%k%@!#\e(B
@end example
---- \e$B<BAu>e$N@)Ls\e(B ---
-
-\e$B8=:_$N$H$3$m!"\e(Bnntp \e$B%U%)%k%@$OF|IU%U%#%k%?!"%U%#!<%k%I%U%#%k%?\e(B
-\e$B$r=q$1$^$;$s!#\e(B
-\e$B$^$?!"\e(Bimap4 \e$B%U%)%k%@\e(B \e$B$G$O\e(B RFC2060 \e$B$N\e(B search \e$B%3%^%s%I$K$=$N$^$^\e(B
-\e$BM?$($i$l$k$b$N$7$+>r7o$N%U%#!<%k%IL>$K=q$1$^$;$s!#\e(B
-(-> to,cc,from,subject,body \e$B$N$_\e(B)
-localdir \e$B$N%U%)%k%@$K$OG$0U$N%U%#!<%k%IL>$r=q$1$^$9!#\e(B
-
@node Pipe Folder, Internal Folder, Filter Folder, Folders
@section \e$B%Q%$%W%U%)%k%@\e(B
@vindex wl-fcc
\e$B=i4|@_Dj$O\e(B nil\e$B!#\e(B
Non-nil \e$B$J$i!"@_Dj$5$l$?CM$r%I%i%U%H$N\e(B @samp{Fcc:} \e$B$H$7$F:G=i$+$iA^F~$7$^$9!#\e(B
+\e$B4X?t$,;XDj$5$l$F$?>l9g!"4X?t$NJV$jCM\e(B(string) \e$B$,A^F~$5$l$^$9!#\e(B
@item wl-bcc
@vindex wl-bcc
@item wl-draft-enable-queuing
@vindex wl-draft-enable-queuing
-\e$B=i4|@_Dj$O\e(B t\e$B!#\e(B
+\e$B=i4|@_Dj$O\e(B @code{t}\e$B!#\e(B
\e$B%*%U%i%$%sAw?.$9$k$+$I$&$+$r<($9%U%i%0$G$9!#\e(BNon-nil \e$B$J$i%*%U%i%$%sAw?.$7$^$9!#\e(B
@item wl-auto-flush-queue
@vindex wl-auto-flush-queue
-\e$B=i4|@_Dj$O\e(B t\e$B!#\e(B
+\e$B=i4|@_Dj$O\e(B @code{t}\e$B!#\e(B
\e$B%*%s%i%$%s$K$J$C$?$H$-$K<+F0E*$K%-%e!<$rAw?.$9$k$+$I$&$+$r<($9%U%i%0$G$9!#\e(B
Non-nil \e$B$J$i<+F0E*$KAw?.$7$^$9\e(B (\e$B$$$A$*$&\e(B @code{y-or-n-p} \e$B$G3NG'$7$^$9\e(B)\e$B!#\e(B
\e$B<jF0$G%-%e!<$rAw?.$9$k$K$O!"%U%)%k%@%b!<%I$G\e(B @kbd{F} \e$B$r2!$7$F$/$@$5$$!#\e(B
\e$B=i4|@_Dj$O\e(B 20000 (\e$B%P%$%H\e(B)\e$B!#\e(B
@code{wl-draft-sendlog} \e$B$,\e(B t \e$B$N>l9g!"\e(B
\e$BJ]B8$7$?%m%0$NBg$-$5$,;XDj$7$?Bg$-$50J>e$K$J$l$P!"%m%0$r%m!<%F!<%7%g%s$7$^$9!#\e(B
+
+@item wl-use-ldap
+@vindex wl-use-ldap
+\e$B=i4|@_Dj$O\e(B nil\e$B!#\e(B
+Non-nil\e$B$J$i\e(B LDAP \e$B$rMxMQ$7$F%"%I%l%9Jd40$7$^$9!#\e(B
+
+@item wl-ldap-server
+@vindex wl-ldap-server
+\e$B=i4|@_Dj$O\e(B "localhost"\e$B!#\e(B
+\e$B%"%I%l%9Jd40$KMQ$$$k\e(B LDAP \e$B%5!<%PL>$G$9!#\e(B
+
+@item wl-ldap-port
+@vindex wl-ldap-port
+\e$B=i4|@_Dj$O\e(B nil\e$B!%\e(B
+\e$B%"%I%l%9Jd40$KMQ$$$k\e(B LDAP \e$B%5!<%P$N%]!<%HHV9f$G$9!#\e(B
+
+@item wl-ldap-base
+@vindex wl-ldap-base
+\e$B=i4|@_Dj$O\e(B "c=US"
+\e$B%"%I%l%9Jd40;~$N\e(B LDAP \e$B8!:w$N3+;OE@\e(B(base)\e$B$r;XDj$7$^$9!#\e(B
@end table
And, if MH alias file is specified in variable @code{wl-alias-file},
it is used as an address information in the draft preparation mode.
+If variable @code{wl-use-ldap} is non-nil (initial setting is nil),
+address completion in draft mode uses LDAP information.
+
+If you use LDAP, you have to set @code{wl-ldap-server},
+@code{wl-ldap-port} and @{wl-ldap-base} properly. If your emacs does not
+have LDAP feature as built-in feature (Currently only XEmacs can have
+built-in LDAP feature), you have to set command exec PATH to the program
+`ldapsearch'.
+
@node Folder Definition, Start Wanderlust, Mail Addresses, Start Me Up
@section Folder Definition
@cindex Folder Definition
@end example
@item
-Field filter: @samp{@var{field}=@var{value}}
+Field filter: @samp{@var{field}:@var{value}}
All messages that have @var{field} and its value is @var{value} are picked.
@var{field} and @var{value} are case insensitive.
@example
@group
-/from=teranisi/+inbox -> In +inbox, messages which have From: field
+/from:teranisi/+inbox -> In +inbox, messages which have From: field
and its value includes "teranisi" string are picked.
-/body=foo/%inbox -> In %inbox, messages which have "foo" text
+/body:foo/%inbox -> In %inbox, messages which have "foo" text
are picked.
@end group
@end example
-If you can split conditions by character @samp{|}, it is considered as OR condition.
-@samp{/tocc=xxxx/} is an abbreviation of @samp{/to=xxxx|cc=xxxx/}.
+@item
+Complexed condition
+
+If you combine conditions by character @samp{|}, it is considered as OR condition. @samp{&} is considered as AND condition, likewise.
+Condition can be grouped by parentheses (@samp{(}, and @samp{)}).
+
+@samp{/tocc:xxxx/} is an abbreviation of @samp{/to:xxxx|cc:xxxx/}.
+@samp{/!tocc:xxxx/} is an abbreviation of @samp{/!to:xxxx&!cc:xxxx/}.
Example:
@example
@group
-/from=teranisi|to=teranisi/+inbox
- -> In +inbox, messages are picked if
- the message's To: field includes
- "teranisi" or From: field includes "teranisi".
-/tocc=teranisi/+inbox -> In +inbox, messages are picked if
- the message's To: field or Cc: field includes
- "teranisi".
+/from:teranisi&!to:teranisi/+inbox
+ -> In +inbox, messages are picked if the message's
+ From: field includes "teranisi" and
+ To: field doesn't include "teranisi".
+
+/tocc:"Yuuichi Teranishi"/+inbox
+ -> In +inbox, messages are picked if the
+ message's To: field or Cc: field includes
+ "Yuuichi Teranishi".
+
+/(from:yt|from:teranisi)&subject:report/+inbox
+ -> In +inbox, messages are picked if the message's
+ From: field includes "yt" or "teranisi", and
+ Subject includes "report".
@end group
@end example
@end enumerate
+@noindent
+Tip for string description:
+
+Space character, @samp{"}, @samp{/},@samp{)},@samp{|} and @samp{&} should
+be enclosed with @samp{"} in @var{value} string.
+(@samp{"} should be escaped with @{\} in it).
+You can enclose the string with @samp{"} even it does not contain
+these characters.
+
+@noindent
Advanced example:
@example
-%inbox,/from=teranisi/%inbox@@server
+*%inbox,/from:teranisi/%inbox@@server
-> Messages in %inbox or
message is in the %inbox@@server folder and it's From field
includes "teranisi" are collected.
-/last:100//to=teranisi/*+inbox,%inbox
+/last:100//to:teranisi/*+inbox,%inbox
-> Latest 100 messages which is in the +inbox or %inbox folder
and To: field matches "teranisi".
-/from=hogehoge//last:20//tocc=teranisi/%#mh/inbox@@localhost
+/from:hogehoge//last:20//tocc:teranisi/%#mh/inbox@@localhost
-> Pick messages which have From: field and it includes "hogehoge"
from latest 20 messages in the %#mh/inbox@@localhost
and To: or Cc: field includes "teranisi".
@end example
- --- Limit of implementation ---
-
-In the current implementation, NNTP folder does not treat date filter and
-field filter.
-In IMAP4 folder, field filter only supports fields which can be
-passed directly to RFC2060'S search command.
-(i.e. to,cc,from,subject and body)
-Localdir folder treats arbitrary field name.
-
-
@node Pipe Folder, Internal Folder, Filter Folder, Folders
@section Pipe Folder
@cindex Pipe Folder
The initial setting is nil.
If non-nil, the value of this variable is inserted as a @samp{Fcc:} of
the draft when it is prepared.
+If function is specified, its return value is used.
@item wl-bcc
@vindex wl-bcc
The initial setting is 20000 (in bytes).
If @code{wl-draft-sendlog} is t, the log is rotated when it grows beyond
the size specified by this variable.
-@end table
+@item wl-use-ldap
+@vindex wl-use-ldap
+The initial setting is nil.
+If non-nil, address completion uses LDAP.
+
+@item wl-ldap-server
+@vindex wl-ldap-server
+The initial setting is localhost.
+LDAP server name for address completion.
+
+@item wl-ldap-port
+@vindex wl-ldap-port
+The initial setting is nil.
+If non-nil, the value is used as port number.
+
+@item wl-ldap-base
+@vindex wl-ldap-base
+The initial setting is "c=US".
+LDAP search starting point (base) for address completion.
+@end table
@node Disconnected Operations, Expire and Archive, Draft, Top
@chapter Off-line Management