summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSergey Poznyakoff <gray@gnu.org.ua>2008-12-24 01:15:53 +0200
committerSergey Poznyakoff <gray@gnu.org.ua>2008-12-24 01:15:53 +0200
commit7b33328452802337f3c0301d96da0b5430a58223 (patch)
treec1a7dfaf9923dac294760bdefa9775e5155cd2b7
parent1dc8eb3f3c94efc544af7acae01c6634a7320338 (diff)
downloadmailutils-7b33328452802337f3c0301d96da0b5430a58223.tar.gz
mailutils-7b33328452802337f3c0301d96da0b5430a58223.tar.bz2
Fixes.
* doc/texinfo/Makefile.am (final): Add fix-sentence-spacing. * doc/texinfo/mailutils.texi: Update. * doc/texinfo/programs.texi: Update. * pop3d/pop3d.c, sieve/sieve.c: Use mu_cfg_bool, where appropriate.
-rw-r--r--doc/texinfo/Makefile.am2
-rw-r--r--doc/texinfo/mailutils.texi6
-rw-r--r--doc/texinfo/programs.texi844
-rw-r--r--pop3d/pop3d.c4
-rw-r--r--sieve/sieve.c2
5 files changed, 698 insertions, 160 deletions
diff --git a/doc/texinfo/Makefile.am b/doc/texinfo/Makefile.am
index afe45d624..0dde172ce 100644
--- a/doc/texinfo/Makefile.am
+++ b/doc/texinfo/Makefile.am
@@ -125,7 +125,7 @@ fix-sentence-spacing:
fi; \
done
-final: untabify master-menu
+final: untabify fix-sentence-spacing master-menu
# Checks
diff --git a/doc/texinfo/mailutils.texi b/doc/texinfo/mailutils.texi
index e09292aba..06014bf4a 100644
--- a/doc/texinfo/mailutils.texi
+++ b/doc/texinfo/mailutils.texi
@@ -227,9 +227,15 @@ Reading Mail
@command{movemail} --- Moves Mail from the User Maildrop to the Local File
+* Movemail Configuration::
* Movemail Options:: Description of the Available Options
* Summary:: Short Movemail Invocation Summary
+@command{readmsg} --- Extract Messages from a Folder
+
+* Opt-readmsg:: Invocation of @command{readmsg}.
+* Conf-readmsg:: Configuration of @command{readmsg}.
+
@command{sieve}
* sieve interpreter:: A Sieve Interpreter
diff --git a/doc/texinfo/programs.texi b/doc/texinfo/programs.texi
index 87b035d73..eec7022ef 100644
--- a/doc/texinfo/programs.texi
+++ b/doc/texinfo/programs.texi
@@ -348,6 +348,7 @@ and to edit the @file{imap4d.rc} file with your editor of choice.
* Debug Statement::
* Mailbox Statement::
* Locking Statement::
+* Mailer Statement::
* ACL Statement::
* Tcp-wrappers Statement::
* Server Settings::
@@ -1085,6 +1086,81 @@ Set command line of an external locker program. The @samp{E} flag
must be set for this to take effect.
@end deffn
+@node Mailer Statement
+@subsection Mailer Statement
+@kwindex mailer
+@subheading Syntax
+@smallexample
+mailer @{
+ url @var{url};
+@}
+@end smallexample
+
+@subheading Description
+A @dfn{mailer} is a special logical entity GNU Mailutils uses for
+sending messages. Its internal representation is discussed in
+@ref{Mailer}. The @code{mailer} statement configures it.
+
+The mailer statement contains a single sub-statement:
+
+@deffn {Configuration} url @var{str}
+Set the mailer @acronym{URL}.
+@end deffn
+
+GNU Mailutils supports two types of mailer @acronym{URL}s, described
+in the table below. As usual, square brackets indicate optional parts:
+
+@table @asis
+@item smtp://@var{host}[:@var{port}]
+Use an SMTP server @var{host} to send messages. Optional @var{port}
+specifies port number or symbolic name (as defined in
+@file{/etc/services}). It defaults to 25. The @var{host} can be
+specified as either an IP address in dotted-quad notation or as a
+symbolic host name. In the latter case, DNS system will be used to
+resolve it.
+
+@item sendmail://@var{progname}
+Use sendmail-compatible program
+@var{progname}. @dfn{Sendmail-compatible} means that the program must
+support following command line options:
+
+@table @option
+@item -oi
+Do not treat @samp{.} as message terminator.
+
+@item -f @var{addr}
+Use @var{addr} as the sender address.
+
+@item -t
+Get recipient addresses from the message.
+@end table
+
+@item sendmail:
+This is a special form of the @samp{sendmail} mailer. It uses the
+@command{sendmail} binary from the @code{_PATH_SENDMAIL} macro in your
+@file{/usr/include/paths.h}. It is the default mailer.
+
+@item prog://@var{progname}?@var{query}
+A @dfn{prog} mailer. This is a generalization of @samp{sendmail}
+mailer that allows to use arbitrary external programs as mailers.
+
+The @var{progname} must be a full pathname of the binary file. When
+sending message, Mailutils will invoke this file with the arguments
+specified by @var{query} and will pipe the message to be sent to its
+standard input.
+
+The @var{query} part is a list of arguments, separated by @samp{&}
+signs. Arguments may contain the following macro-substitutions:
+
+@table @samp
+@item $@{sender@}
+Expands to the sender email address.
+
+@item $@{rcpt@}
+Expands to the recipient email addresses.
+@end table
+@end table
+
@node ACL Statement
@subsection ACL Statement
@kwindex acl
@@ -1961,7 +2037,7 @@ ldap @{
@node TLS Statement
@subsection TLS Statement
-@UNREVISED
+@WRITEME
@kwindex tls
@subheading Syntax
@smallexample
@@ -2010,10 +2086,10 @@ configuration file statements:
@multitable @columnfractions 0.3 0.6
@headitem Statement @tab Reference
-@item debug @tab @xref{Debug Statement}.
-@item tls @tab @xref{TLS Statement}.
-@item mailbox @xref{Mailbox Statement}.
-@item locking @xref{Locking Statement}.
+@item debug @tab @xref{Debug Statement}.
+@item tls @tab @xref{TLS Statement}.
+@item mailbox @tab @xref{Mailbox Statement}.
+@item locking @tab @xref{Locking Statement}.
@end multitable
@subheading @command{frm}
@@ -3887,10 +3963,10 @@ Following configuration file statements affect the behaviour of
@multitable @columnfractions 0.3 0.6
@headitem Statement @tab Reference
-@item debug @tab @xref{Debug Statement}.
-@item tls @tab @xref{TLS Statement}.
-@item mailbox @xref{Mailbox Statement}.
-@item locking @xref{Locking Statement}.
+@item debug @tab @xref{Debug Statement}.
+@item tls @tab @xref{TLS Statement}.
+@item mailbox @tab @xref{Mailbox Statement}.
+@item locking @tab @xref{Locking Statement}.
@end multitable
The program accepts following command line options:
@@ -3964,16 +4040,16 @@ If @var{bool} is @samp{true}, output information used by Emacs rmail interface.
@multitable @columnfractions 0.3 0.6
@headitem Statement @tab Reference
-@item debug @tab @xref{Debug Statement}.
-@item tls @tab @xref{TLS Statement}.
-@item mailbox @xref{Mailbox Statement}.
-@item locking @xref{Locking Statement}.
-@item pam @xref{PAM Statement}.
-@item sql @xref{SQL Statement}.
-@item virtdomain @xref{Virtdomain Statement}.
-@item radius @xref{Radius Statement}.
-@item ldap @xref{LDAP Statement}.
-@item auth @xref{Auth Statement}.
+@item debug @tab @xref{Debug Statement}.
+@item tls @tab @xref{TLS Statement}.
+@item mailbox @tab @xref{Mailbox Statement}.
+@item locking @tab @xref{Locking Statement}.
+@item pam @tab @xref{PAM Statement}.
+@item sql @tab @xref{SQL Statement}.
+@item virtdomain @tab @xref{Virtdomain Statement}.
+@item radius @tab @xref{Radius Statement}.
+@item ldap @tab @xref{LDAP Statement}.
+@item auth @tab @xref{Auth Statement}.
@end multitable
@node Movemail Options
@@ -4218,15 +4294,14 @@ only the first.
@multitable @columnfractions 0.3 0.6
@headitem Statement @tab Reference
-@item debug @tab @xref{Debug Statement}.
-@item tls @tab @xref{TLS Statement}.
-@item mailbox @xref{Mailbox Statement}.
-@item locking @xref{Locking Statement}.
+@item debug @tab @xref{Debug Statement}.
+@item tls @tab @xref{TLS Statement}.
+@item mailbox @tab @xref{Mailbox Statement}.
+@item locking @tab @xref{Locking Statement}.
@end multitable
@node sieve
@section @command{sieve}
-@UNREVISED
@pindex sieve
Sieve is a language for filtering e-mail messages at time of final
@@ -4252,6 +4327,7 @@ its standard.
@menu
* Invoking Sieve::
+* Sieve Configuration::
* Logging and Debugging::
* Extending Sieve::
@end menu
@@ -4274,6 +4350,15 @@ and @var{options} is one or more of the following:
@itemx --compile-only
Compile script and exit.
+@item --clear-library-path
+@itemx --clearpath
+Clear Sieve library path. See also @ref{Sieve Configuration,
+clear-library-path}.
+
+@item --clear-include-path
+Clear Sieve include path. See also @ref{Sieve Configuration,
+clear-include-path}.
+
@item -d[@var{flags}]
@itemx --debug[=@var{flags}]
Specify debug flags. The @var{flags} argument is a sequence of one or
@@ -4295,16 +4380,29 @@ Compile the script, dump disassembled code on standard output and exit.
@itemx --email @var{address}
Override the user email address. This is useful for @code{reject} and
@code{redirect} actions. By default, the user email address is deduced
-from the user name and the full name of the machine where sieve is
-executed.
+from the user name and the full name of the machine where
+@command{sieve} is executed. See also @ref{Sieve Configuration,
+email}.
+
+@item -I @var{dir}
+@itemx --includedir=@var{dir}
+Append directory @var{dir} to the list of directories searched for
+include files. See also @ref{Sieve Configuration, include-path}.
@item -f
@itemx --mbox-url=@var{mbox}
-Mailbox to sieve (defaults to user's system mailbox)
+Mailbox to sieve (defaults to user's system mailbox). See also
+@ref{Sieve Configuration, mbox-url}.
@item -k
@itemx --keep-going
-Keep on going if execution fails on a message
+Keep on going if execution fails on a message. See also
+@ref{Sieve Configuration, keep-going}.
+
+@item -L @var{dir}
+@item --libdir=@var{dir}
+Append directory @var{dir} to the list of directories searched for
+library files. See also @ref{Sieve Configuration, library-path}.
@item -n
@itemx --no-actions
@@ -4312,16 +4410,102 @@ Dry run: do not execute any actions, just print what would be done.
@item -t @var{ticket}
@itemx --ticket=@var{ticket}
-Ticket file for mailbox authentication
+Ticket file for mailbox authentication. See also
+@ref{Sieve Configuration, ticket}.
@item -v
@itemx --verbose
-Log all actions executed.
+Log all actions executed. See also @ref{Sieve Configuration, verbose}.
@end table
-Apart from these, @command{sieve} understands the options from the
-following groups: @code{sieve}, @code{mailbox}, @code{mailer},
-@code{logging}.
+@node Sieve Configuration
+@subsubheading Sieve Configuration
+
+The behavior of @command{sieve} is affected by the following
+configuration statements:
+
+@multitable @columnfractions 0.3 0.6
+@headitem Statement @tab Reference
+@item debug @tab @xref{Debug Statement}.
+@item tls @tab @xref{TLS Statement}.
+@item mailbox @tab @xref{Mailbox Statement}.
+@item locking @tab @xref{Locking Statement}.
+@item logging @tab @xref{Logging Statement}.
+@item mailer @tab @xref{Mailer Statement}.
+@end multitable
+
+The following statements configure sieve-specific features:
+
+@deffn {Sieve Conf} sieve @{ ... @}
+This block statement configures search paths @command{sieve} uses to
+locate its loadable modules. @xref{Require Statement}, for a detailed
+information of this feature.
+
+This statement may contain the following sub-statements:
+@code{clear-library-path}, @code{clear-include-path},
+@code{library-path}, @code{include-path}, which are described below.
+@end deffn
+
+@deffn {Sieve Conf} clear-library-path @var{bool}
+Used within the @code{sieve} block statement.
+
+If @var{bool} is @samp{true}, clear library search path.
+@end deffn
+
+@deffn {Sieve Conf} clear-include-path @var{bool}
+Used within the @code{sieve} block statement.
+
+If @var{bool} is @samp{true}, clear include search path.
+@end deffn
+
+@deffn {Sieve Conf} library-path @var{path}
+Used within the @code{sieve} block statement.
+
+Add directories to @command{sieve} library search path. Argument is a
+string containing a colon-separated list of directories.
+@end deffn
+
+@deffn {Sieve Conf} include-path @var{path}
+Used within the @code{sieve} block statement.
+
+Add directories to the include search path. Argument is a
+string containing a colon-separated list of directories.
+@end deffn
+
+@deffn {Sieve Conf} keep-going @var{bool}
+If @var{bool} is @samp{true}, do not abort if execution of a Sieve
+script fails on a particular message.
+@end deffn
+
+@deffn {Sieve Conf} mbox-url @var{url}
+Sets @acronym{URL} of the mailbox to be processed.
+@end deffn
+
+@deffn {Sieve Conf} ticket @var{file}
+Sets the name of the ticket file for user authentication.
+@end deffn
+
+@deffn {Sieve Conf} debug @var{flags}
+Sets Sieve debug flags. @xref{Logging and Debugging}, for a detailed
+description.
+@end deffn
+
+@deffn {Sieve Conf} verbose @var{bool}
+If @var{bool} is @samp{true}, log all executed actions.
+@end deffn
+
+@deffn {Sieve Conf} line-info @var{bool}
+If @var{bool} is @samp{true}, rint source locations along with action
+logs. This statement takes effect only if @code{verbose true} is also
+set.
+@end deffn
+
+@deffn {Sieve Conf} email @var{addr}
+Set user e-mail address. This is useful for @code{reject} and
+@code{redirect} actions. By default, the user email address is deduced
+from the user name and the full name of the machine where @command{sieve} is
+executed.
+@end deffn
@node Logging and Debugging
@subsubheading Logging and debugging
@@ -4410,7 +4594,14 @@ following search paths (in the order given):
@item The value of the environment variable @env{LTDL_LIBRARY_PATH}.
@item Additional search directories specified with the
-@code{#searchpath} directive.
+@code{library-path} statement (@pxref{Sieve Configuration,
+library-path}) in Sieve configuration file.
+
+@item Additional search directories specified with the.
+@option{--libdir} command line option (@FIXME-pxref{libdir}).
+
+@item Additional search directories specified with the
+@code{#searchpath} Sieve directive (@pxref{#searchpath}).
@item System library search path: The system dependent library
search path (e.g. on Linux it is set by the contents of the file
@@ -4456,8 +4647,8 @@ source for the required action NAME is not available
A Sieve to Scheme Translator @command{sieve.scm} translates a given
Sieve script into an equivalent Scheme program and optionally executes
it. The program itself is written in Scheme and requires presence of
-Guile 1.4 on the system. For more information on Guile refer to
-@ref{Top,,Overview,guile,The Guile Reference Manual}.
+Guile version 1.8 or newer on the system. For more information on
+Guile refer to @ref{Top,,Overview,guile,The Guile Reference Manual}.
@table @option
@item -f @var{filename}
@@ -4492,7 +4683,15 @@ It processes mailboxes, applying the user-supplied scheme procedures
to each of them in turn and saves the resulting output in mailbox
format.
-The program uses following option groups: @FIXME-xref{mailbox}.
+The following configuration statements affect the behavior of
+@command{guimb}:
+
+@multitable @columnfractions 0.3 0.6
+@headitem Statement @tab Reference
+@item debug @tab @xref{Debug Statement}.
+@item mailbox @tab @xref{Mailbox Statement}.
+@item locking @tab @xref{Locking Statement}.
+@end multitable
@menu
* Specifying Scheme Program to Execute::
@@ -4650,6 +4849,7 @@ and appends the received data to the local mailboxes.
@menu
* Invocation:: Mail.local options
+* Mail.local Config::
* MTA:: Using mail.local with various MTAs
* Mailbox Quotas:: Setting up mailbox quotas.
* Sieve Filters:: Implementing user-defined Sieve mail filters.
@@ -4759,6 +4959,87 @@ default, 'service unavailable' is returned if the message exceeds
the mailbox quota.
@end table
+@node Mail.local Config
+@subsection Mail.local Configuration
+
+The behavior of mail.local is affected by the following configuration
+statements:
+
+@multitable @columnfractions 0.3 0.6
+@headitem Statement @tab Reference
+@item debug @tab @xref{Debug Statement}.
+@item mailbox @tab @xref{Mailbox Statement}.
+@item locking @tab @xref{Locking Statement}.
+@item pam @tab @xref{PAM Statement}.
+@item sql @tab @xref{SQL Statement}.
+@item virtdomain @tab @xref{Virtdomain Statement}.
+@item radius @tab @xref{Radius Statement}.
+@item ldap @tab @xref{LDAP Statement}.
+@item auth @tab @xref{Auth Statement}.
+@item mailer @tab @xref{Mailer Statement}.
+@end multitable
+
+Additionally, @command{mail.local} defines the following configuration
+statements for its use:
+
+@deffn {Mail.local Config} ex-multiple-delivery-success @var{bool}
+In case of multiple delivery, exit with code 0 if at least one
+delivery has succeeded.
+@end deffn
+
+@deffn {Mail.local Config} ex-quota-tempfail @var{bool}
+Indicate temporary failure if the recipient is over his mail quota.
+By default, permanent failure is returned.
+@end deffn
+
+@deffn {Mail.local Config} quota-db @var{file}
+Set the name of DBM quota database file.
+@end deffn
+
+@deffn {Mail.local Config} sieve-filter @var{pattern}
+Set file name or name pattern of the Sieve filter file.
+
+The following meta-sequences are expanded in @var{pattern}:
+
+@table @asis
+@item ~
+@itemx %h
+Expands to the recipient home directory.
+
+@item %u
+Expands to the recipient user name.
+@end table
+@end deffn
+
+@deffn {Mail.local Config} message-id-header @var{name}
+When logging Sieve actions, identify messages by the value of this
+header.
+@end deffn
+
+@deffn {Mail.local Config} guile-filter @var{pattern}
+File name or name pattern for Guile filter file. See
+@code{sieve-filter} above, for the description if @var{pattern}.
+@end deffn
+
+@deffn {Mail.local Config} debug @var{flags}
+Set additional debugging flags. Valid flags are:
+
+@table @asis
+@item g
+Print @command{guimb} stack traces.
+
+@item t
+Enable @command{sieve} trace (@code{MU_SIEVE_DEBUG_TRACE}).
+
+@item i
+Enable @command{sieve} instructions trace
+(@code{MU_SIEVE_DEBUG_INSTR}).
+
+@item l
+Log executed Sieve actions.
+@end table
+@end deffn
+
@node MTA
@subsection Using @command{mail.local} with Various MTAs
@@ -5003,16 +5284,17 @@ To summarize this, here is a working @file{mailutils.rc} entry for
@node Sieve Filters
@subsection Implementing User-defined Sieve Mail Filters
+@WRITEME
@node Scheme Filters
@subsection Implementing User-defined Scheme Mail Filters
+@WRITEME
@page
@node mail.remote
@section @command{mail.remote} --- Pseudo-Sendmail Interface for Mail Delivery
@pindex mail.remote
-
-[FIXME]
+@WRITEME
@page
@node mimeview
@@ -5023,12 +5305,12 @@ To summarize this, here is a working @file{mailutils.rc} entry for
to autodetect its type and invoke an appropriate file viewer.
To detect the file type, @command{mimeview} uses @file{mime.types}
-file. This file is a part of Common UNIX Printing System, see
-@code{man mime.types} for the description of its syntax. [FIXME:
-provide an xref to CUPS]. By default @command{mimeview} searches for
-@file{mime.types} in @file{$prefix/etc/cups/}@footnote{The exact
-location is determined at configuration time by setting environment
-variable @var{DEFAULT_CUPS_CONFDIR}. On most sites running
+file. This file is a part of Common UNIX Printing System,
+@ref{mime.types,,,mime.types(5), mime.types man page}. By default
+@command{mimeview} searches for @file{mime.types} in
+@file{$prefix/etc/cups/}@footnote{The exact location is determined at
+configuration time by setting environment variable
+@env{DEFAULT_CUPS_CONFDIR}. On most sites running
@smallexample
./configure DEFAULT_CUPS_CONFDIR=/etc/cups
@@ -5053,6 +5335,14 @@ $HOME/.mailcap:/usr/local/etc/mailcap:\
/etc/mail/mailcap:/usr/public/lib/mailcap
@end smallexample
+@menu
+* Mimeview Invocation::
+* Mimeview Config::
+@end menu
+
+@node Mimeview Invocation
+@subsection Mimeview Invocation
+
The following table summarizes options specific for @command{mimeview}:
@table @option
@@ -5150,6 +5440,29 @@ Use @var{file} as @file{mime.types} file. If @var{file} is a
directory, use @file{@var{file}/mime.types}
@end table
+@node Mimeview Config
+@subsection Mimeview Config
+
+The following configuration statements affect the behavior of
+@command{mimeview}:
+
+@multitable @columnfractions 0.3 0.6
+@headitem Statement @tab Reference
+@item debug @tab @xref{Debug Statement}.
+@end multitable
+
+@deffn {Mimeview Config} debug @var{number}
+Set @command{mimeview} debug level. @xref{Mimeview Invocation,
+--debug}, for a description of debug levels.
+@end deffn
+
+@deffn {Mimeview Config} mimetypes @var{file}
+Read @var{file} instead of the default @file{mime.types}.
+@end deffn
+
+@deffn {Mimeview Config} metamail @var{program}
+Use @var{program} to display files.
+@end deffn
@page
@node pop3d
@@ -5172,17 +5485,17 @@ pop3 stream tcp nowait root /usr/local/sbin/pop3d pop3d
This is the default operation mode.
@item Standalone
-The server runs as daemon, forking a child for each new connection. This
-mode is triggered by @option{-d} command line switch.
+The server runs as daemon, forking a child for each new connection.
@end table
-The program uses following option groups: @FIXME-xref{mailbox},
-@FIXME-xref{daemon}, @FIXME-xref{logging}, @FIXME-xref{auth}.
+The server operation mode is configured using @code{mode} statement
+(@pxref{Server Settings, mode}).
@menu
* Login delay::
* Auto-expire::
* Bulletins::
+* Conf-pop3d:: Pop3d Configuration
* Command line options::
@end menu
@@ -5209,22 +5522,23 @@ The message will be issued after a valid password is entered. This prevents
this feature from being used by malicious clients for account
harvesting.
- To enable the login delay capability, specify the minimum delay in
-seconds with @option{--login-delay} option, for example:
+ To enable the login delay capability, specify the minimum delay
+using @code{login-delay} configuration statement, e.g.:
@smallexample
-$ pop3d --login-delay=60
+login-delay 60;
@end smallexample
The @command{pop3d} utility keeps each user's last login time in a
special DBM file, called @dfn{login statistics database}, so to be
able to use this feature, Mailutils must be compiled with DBM support.
By default, the login statistics database is called
-@file{/var/run/pop3-login.db}. You can change its name at run time
-using @option{--stat-file}:
+@file{/var/run/pop3-login.db}. You can change its name using
+@code{stat-file} configuration statement:
@smallexample
-$ pop3d --login-delay=60 --stat-file=/tmp/pop.login
+login-delay 60;
+stat-file /tmp/pop.login;
@end smallexample
Notice, that there is no need to include the @samp{.db} suffix in the
@@ -5233,7 +5547,7 @@ file name.
The login delay facility will be enabled only if @command{pop3d} is
able to access the statistics database for both reading and
writing. If it is not, it will report this using @command{syslog} and
-start up without login delay restrictions. The common error message
+start up without login delay restrictions. A common error message
looks like:
@smallexample
@@ -5250,17 +5564,14 @@ are in use, there response will contain the string @samp{LOGIN-DELAY
Automatic expiration of messages allows you to limit the period of
time users are permitted to keep their messages on the server. It is
-enabled by @option{--expire} command line option:
+enabled by @code{expire} configuration statement:
-@smallexample
-$ pop3d --expire=@var{days}
-@end smallexample
-
-@noindent
-Here, @var{days} specifies the minimum server retention period, in
-days, for retrieved messages on the server.
+@table @code
+@item expire @var{n};
+Enable automatic expiration of messages after @var{n} days.
+@end table
- Current implementation works as follows. When a message is
+ The current implementation works as follows. When a message is
downloaded by @code{RETR} or @code{TOP} command, it is marked with
@samp{X-Expire-Timestamp: @var{n}} header, where @var{n} is current
value of UNIX timestamp. The exact expiration mechanism
@@ -5269,8 +5580,14 @@ depends on you. Mailutils allows you two options:
@enumerate
@item
Expired messages are deleted by @command{pop3d} upon closing the
-mailbox. You specify this mechanism using @option{--delete-expired}
-command line option.
+mailbox. You specify this mechanism using @code{delete-expired}
+configuration statement:
+
+@table @command
+@item delete-expired @var{bool};
+If @var{bool} is @samp{true}, delete expired messages after receiving
+the @code{QUIT} command.
+@end table
@item
Expired messages remain in the mailbox after closing it. The system
@@ -5291,11 +5608,11 @@ if timestamp :before "X-Expire-Timestamp" "now - 5 days"
This script will remove expired messages 5 days after the
retrieval. Replace @samp{5} with the desired expiration period and
-make sure it equals the argument to @option{--expire} command.
+make sure it equals the argument to @command{expire} configuration keyword.
@end enumerate
-The option @option{--expire=0} means the client is not permitted to
-leave mail on the server. It always implies @option{--delete-expired}.
+The statement @code{expire 0} means the client is not permitted to
+leave mail on the server. It always implies @code{delete-expired true}.
@node Bulletins
@subsection Bulletins
@@ -5313,17 +5630,17 @@ the user mailbox.
The user last bulletin number can be kept in two places. First, it
can be stored in file @file{.popbull} in his home directory. Secondly,
if Mailutils is compiled with DBM support, the numbers can be kept in
-a DBM file, supplied via @option{--bulletin-db} command line option. If
+a DBM file, supplied via @code{bulletin-db} configuration statement. If
both the database and the @file{.popbull} file are present, the data
from the database take precedence.
- To enable this feature, use the following command line options:
+ To enable this feature, use the following configuration statements:
-@table @option
-@item --bulletin-source=@var{mbox}
+@table @code
+@item bulletin-source @var{mbox}
Set the @acronym{URL} of the bulletin source mailbox.
-@item --bulletin-db=@var{file}
+@item bulletin-db @var{file}
Set the name of the database file to keep last bulletin numbers in.
Be sure not to specify @samp{.db} extension.
@end table
@@ -5335,24 +5652,80 @@ and to keep the database of last delivered bulletin numbers in
@smallexample
@group
-$ pop3d --bulletin-source=mh:/var/spool/bull/mbox \
- --bulletin-db=/var/spool/bull/numbers
+bulletin-source mh:/var/spool/bull/mbox;
+bulletin-db /var/spool/bull/numbers;
@end group
@end smallexample
-
+
+@node Conf-pop3d
+@subsection Pop3d Configuration
+
+The following configuration file statements affect the behavior of
+@command{pop3d}.
+
+@multitable @columnfractions 0.3 0.6
+@headitem Statement @tab Reference
+@item debug @tab @xref{Debug Statement}.
+@item tls @tab @xref{TLS Statement}.
+@item mailbox @tab @xref{Mailbox Statement}.
+@item locking @tab @xref{Locking Statement}.
+@item logging @tab @xref{Logging Statement}.
+@item pam @tab @xref{PAM Statement}.
+@item sql @tab @xref{SQL Statement}.
+@item virtdomain @tab @xref{Virtdomain Statement}.
+@item radius @tab @xref{Radius Statement}.
+@item ldap @tab @xref{LDAP Statement}.
+@item auth @tab @xref{Auth Statement}.
+@item server @tab @xref{Server Settings}.
+@item acl @tab @xref{ACL Statement}.
+@item tcp-wrappers @tab @xref{Tcp-wrappers Statement}.
+@end multitable
+
+@deffn {Pop3d Conf} undelete @var{bool}
+On startup, clear deletion marks from all the messages.
+@end deffn
+
+@deffn {Pop3d Conf} expire @var{n}
+Automatically expire read messages after @var{n}
+days. @xref{Auto-expire}, for a detailed description.
+@end deffn
+
+@deffn {Pop3d Conf} delete-expired @var{bool}
+Delete expired messages upon closing the mailbox. @xref{Auto-expire},
+for a detailed description.
+@end deffn
+
+@deffn {Pop3d Conf} tls-required @var{bool}
+Always require @code{STLS} command before entering authentication
+phase.
+@end deffn
+
+@deffn {Pop3d Conf} login-delay @var{duration}
+Set the minimal allowed delay between two successive logins.
+@xref{Login delay}, for more information.
+@end deffn
+
+@deffn {Pop3d Conf} stat-file @var{file}
+Set the name of login statistics file for the @code{login-delay}
+facility. @xref{Login delay}, for more information.
+@end deffn
+
+@deffn {Pop3d Conf} bulletin-source @var{file}
+Get bulletins from the specified mailbox. @xref{Bulletins}, for a
+detailed description.
+@end deffn
+
+@deffn {Pop3d Conf} bulletin-db @var{file}
+Set bulletin database file name. @xref{Bulletins}, for a
+detailed description.
+@end deffn
+
@node Command line options
@subsection Command line options
The following table summarizes all @command{pop3d} command line options.
@table @option
-@item --bulletin-db=@var{file}
-Set the name of the database file to keep last bulletin numbers in.
-Be sure not to specify @samp{.db} extension. @xref{Bulletins}.
-
-@item --bulletin-source=@var{mbox}
-Set the @acronym{URL} of the bulletin source mailbox. @xref{Bulletins}.
-
@item -d[@var{number}]
@itemx --daemon[=@var{number}]
Run in standalone mode. An optional @var{number} specifies the maximum number
@@ -5361,13 +5734,6 @@ it defaults to 10 processes.
@emph{Please note}, that there should be no whitespace between the
@option{-d} and its parameter.
-@item --delete-expired
-Delete expired messages upon closing the mailbox. @xref{Auto-expire}.
-
-@item --expire=@var{days}
-Expire read messages after the given number of days. If @var{days} is
-0, this option implies @option{--delete-expired}. @xref{Auto-expire}.
-
@item -i
@itemx --inetd
Run in inetd mode.
@@ -5376,41 +5742,15 @@ Run in inetd mode.
@itemx --help
Display short help message and exit.
-@item --login-delay=@var{seconds}
-Sets the minimum allowed delay between closing a pop3d session and
-opening it again with the same user name. @xref{Login delay}.
-
-@item -m @var{path}
-@itemx --mail-spool=@var{path}
-Set path to the mailspool directory
-
-@item -p @var{number}
-@itemx --port @var{number}
-Listen on given port @var{number}. This option is meaningful only in
-standalone mode. It defaults to port 110.
-
-@item --stat-file=@var{filename}
-Sets the name of the login timestamp database, used with
-@option{--login-delay}. By default, these data are kept in
-@file{/var/run/pop3-login}. Be sure to specify the file name
-@emph{without} DBM-specific suffix. @xref{Login delay}.
-
-@item -t @var{number}
-@itemx --timeout @var{number}
-Set idle timeout to given @var{number} of seconds. Default is 600 seconds (10
-minutes). The daemon breaks the connection if it receives no commands
-from the client within that number of seconds.
-
-@item --tls-required
-Always require @code{STLS} command before entering authentication phase.
-
-@item -v
-@itemx --version
-Display program version and exit.
+@item --foreground
+Remain in foreground.
-@item --undelete
-Remove all deletion marks from the messages after opening the mailbox.
+@item --tls[=@var{bool}]
+Enable TLS. If optional argument is supplied and is @samp{false}, then
+disable it.
+@item --debug-auth
+Enable debugging of authentication functions.
@end table
@page
@@ -5424,6 +5764,7 @@ be run either as a standalone program or from @file{inetd.conf} file.
@menu
* Namespace:: Namespace.
+* Conf-imap4d:: Configuration.
* Starting imap4d:: Invocation Options.
@end menu
@@ -5475,8 +5816,214 @@ Empty
see or otherwise access mailboxes residing in the directories other than
his own home.
-To change these defaults, use @option{--shared-namespace} and
-@option{--other-namespace} options.
+To change these defaults, use @code{shared-namespace} and
+@code{other-namespace} configuration statements:
+
+@table @command
+@item shared-namespace @var{list}
+Set shared namespace.
+
+@item other-namespace @var{list}
+Set other users' namespace.
+@end table
+
+For both statements, the argument is a list of directories that belong
+to this namespace, e.g.:
+
+@smallexample
+shared-namespace (/var/spool/mail,/var/mail);
+@end smallexample
+
+If during the session the user creates a mailbox within either of
+these namespaces, the mode of the mailbox is determined by the
+following configuration statements:
+
+@table @command
+@item shared-mailbox-mode @var{mode}
+Set file mode for mailboxes created in shared namespace.
+
+@item other-mailbox-mode @var{mode}
+Set file mode for mailboxes created in other users' namespace.
+@end table
+
+In both cases, the argument, @var{mode} is a list of symbolic mode
+settings, similar to that used by @command{chmod}. It is a list of
+comma-separated mode change commands. Each command begins with a
+letter @samp{g}, which means set mode bits for file group, or
+@samp{o}, which means set mode bits for other users (note, that there
+is no @samp{u} specifier, since user ownership of his mailbox cannot
+be changed). This letter is followed by an @samp{=} (or @samp{+}), and
+a list of modes to be set. This list can contain only two letters:
+@samp{r} to set read permission, and @samp{w} to set write permission.
+
+For example, the following statement sets read and write permissions
+for the group:
+
+@smallexample
+shared-namespace-mode g=rw;
+@end smallexample
+
+@node Conf-imap4d
+@subsection Configuration of @command{imap4d}.
+
+The behavior of @command{imap4d} is altered by the following
+configuration statements:
+
+@multitable @columnfractions 0.3 0.6
+@headitem Statement @tab Reference
+@item debug @tab @xref{Debug Statement}.
+@item tls @tab @xref{TLS Statement}.
+@item mailbox @tab @xref{Mailbox Statement}.
+@item locking @tab @xref{Locking Statement}.
+@item logging @tab @xref{Logging Statement}.
+@item pam @tab @xref{PAM Statement}.
+@item sql @tab @xref{SQL Statement}.
+@item virtdomain @tab @xref{Virtdomain Statement}.
+@item radius @tab @xref{Radius Statement}.
+@item ldap @tab @xref{LDAP Statement}.
+@item auth @tab @xref{Auth Statement}.
+@item server @tab @xref{Server Settings}.
+@item acl @tab @xref{ACL Statement}.
+@item tcp-wrappers @tab @xref{Tcp-wrappers Statement}.
+@end multitable
+
+@deffn {Imap4d Conf} shared-namespace @var{list}
+Set shared namespace. @var{List} is a list of
+strings. @xref{Namespace}, for a detailed description.
+@end deffn
+
+@deffn {Imap4d Conf} other-namespace @var{list}
+Set other users' namespace. @var{List} is a list of
+strings. @xref{Namespace}, for a detailed description.
+@end deffn
+
+@deffn {Imap4d Conf} shared-mailbox-mode @var{str}
+Set file mode for mailboxes created within shared namespace.
+@xref{Namespace}, for a detailed description.
+@end deffn
+
+@deffn {Imap4d Conf} other-mailbox-mode @var{str}
+Set file mode for mailboxes created within other users' namespace.
+@xref{Namespace}, for a detailed description.
+@end deffn
+