Commit 7b333284 7b33328452802337f3c0301d96da0b5430a58223 by Sergey Poznyakoff

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.
1 parent 1dc8eb3f
......@@ -125,7 +125,7 @@ fix-sentence-spacing:
fi; \
done
final: untabify master-menu
final: untabify fix-sentence-spacing master-menu
# Checks
......
......@@ -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
......
......@@ -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
@deffn {Imap4d Conf} login-disabled @var{bool}
Disable @code{LOGIN} command, if @var{bool} is @samp{true}.
@end deffn
@deffn {Imap4d Conf} create-home-dir @var{bool}
Create nonexisting user home directories. See also home-dir-mode, below.
@end deffn
@deffn {Imap4d Conf} home-dir-mode @var{mode}
Set file mode for created user home directories. Mode is specified in
octal.
The default value for @var{mode} is @samp{700} (@samp{drwx------} in
@code{ls} terms).
@end deffn
@deffn {Imap4d Conf} tls-required @var{bool}
Require successful @code{STARTTLS} command before entering
authentication phase.
@end deffn
@deffn {Imap4d Conf} preauth @var{mode}
Configure PREAUTH mode. Valid arguments are:
@table @asis
@item prog:///@var{program-name}
@command{Imap4d} invokes an external program to authenticate the
connection. The command line is obtained from the supplied string,
by expandind the following meta-variables:
@table @code
@item $@{client_address@}
Remote IP address in dotted-quad notation;
@item $@{client_port@}
Remote port number;
@item $@{server_address@}
Local IP address;
@item $@{server_port@}
Local port number.
@end table
If the connection is authenticated, the program should print the
user name, followed by a newline character, on its standard
output and exit with code @samp{0}.
Otherwise, it shoud exit with a non-zero exit code.
@item ident[://:@var{port}]
The remote machine is asked about the requester identity
using the identification protocol (RFC 1413). Both plaintext and
DES encrypted replies are understood. Optional @var{port} specifies
the port to use, if it differs from the default @samp{113}. It can be
either a decimal port number or a symbolic name of a service, listed
in @file{/etc/services}.
@item stdio
PREAUTH mode is enabled automatically if imap4d is started
from command line in interactive mode (@option{-i} command line
option). The current login name is used as the user name.
@end table
@end deffn
@deffn {Imap4d Conf} preauth-only @var{bool}
If @var{bool} is @samp{true}, use only preauth mode. If unable to
setup it, disconnect immediately.
@end deffn
@deffn {Imap4d Conf} ident-keyfile @var{file}
Set DES keyfile for decoding ecrypted ident responses. Used with
@samp{ident://} preauth mode.
@end deffn
@deffn {Imap4d Conf} ident-entrypt-only @var{bool}
Use only encrypted IDENT responses.
@end deffn
@deffn {Imap4d Conf} id-fields @var{list}
Set list of fields to return in response to ID command.
Valid field names are:
@table @asis
@item name
Package name (@samp{GNU Mailutils}).
@item version
Package version (@samp{@value{VERSION}}).
@item vendor
Vendor name (@samp{GNU}).
@item support-url
The string @samp{http://www.gnu.org/software/mailutils}
@item address
The string @samp{51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA}.
@item os
OS name.
@item os-version
OS version number.
@item command
Name of the @command{imap4d} binary.
@item arguments
Invocation command line.
@item environment
List of environment variables with their values.
@end table
@end deffn
@node Starting imap4d
@subsection Starting @command{imap4d}
......@@ -5493,18 +6040,9 @@ The ``inetd'' mode allows to start the server from
imap4 stream tcp nowait root /usr/local/sbin/imap4d imap4d
@end smallexample
The program uses following option groups: @FIXME-xref{mailbox},
@FIXME-xref{daemon}, @FIXME-xref{logging}, @FIXME-xref{auth}.
@subheading Command Line Options
@table @option
@item --create-home-dir[=@var{mode}]
If a user logs in and his home directory does not exist, create
it. Optional @var{mode} is an octal number specifying the permissions
to be set on the created directory. It is not modified by the current
@code{umask} value. The default value for @var{mode} is @samp{700}
(@samp{drwx------} in @code{ls} terms).
@item -d[@var{number}]
@itemx --daemon[=@var{number}]
Run in standalone mode. An optional @var{number} specifies the maximum number
......@@ -5512,32 +6050,26 @@ of child processes the daemon is allowed to fork. When it is omitted,
it defaults to 20 processes.
@emph{Please note}, that there should be no whitespace between the
@option{-d} and its parameter.
@item -h
@itemx --help
Display short help message and exit.
@item -i
@itemx --inetd
Run in inetd mode.
@item -m @var{path}
@itemx --mail-spool=@var{path}
Set path to the mailspool directory
@item -O @var{pathlist}
@itemx --other-namespace=@var{pathlist}
Set the list of directories forming the ``Other User's'' namespace.
@var{pathlist} is a list of directory names separated by colons.
@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 143.
@item -S @var{pathlist}
@itemx --shared-namespace=@var{pathlist}
Set the list of directories, forming the ``Shared''
namespace. @var{pathlist} is a list of directory names separated by colons.
@item -t @var{number}
@itemx --timeout @var{number}
Set idle timeout to given @var{number} of seconds. Default is 1800 seconds (30
minutes). The daemon breaks the connection if it receives no commands
from the client within that number of seconds.
@item --foreground
Run in foreground.
@item --preauth
Start in preauth mode
@item --tls[=@var{bool}]
Enable TLS support
@item --debug-auth
Debug authentication functions.
@item -v
@itemx --version
Display program version and exit.
......
......@@ -127,12 +127,12 @@ cb_bulletin_db (mu_debug_t debug, void *data, mu_config_value_t *val)
}
static struct mu_cfg_param pop3d_cfg_param[] = {
{ "undelete", mu_cfg_int, &undelete_on_startup, 0, NULL,
{ "undelete", mu_cfg_bool, &undelete_on_startup, 0, NULL,
N_("On startup, clear deletion marks from all the messages.") },
{ "expire", mu_cfg_uint, &expire, 0, NULL,
N_("Automatically expire read messages after the given number of days."),
N_("days") },
{ "delete-expired", mu_cfg_int, &expire_on_exit, 0, NULL,
{ "delete-expired", mu_cfg_bool, &expire_on_exit, 0, NULL,
N_("Delete expired messages upon closing the mailbox.") },
#ifdef WITH_TLS
{ "tls-required", mu_cfg_bool, &tls_required, 0, NULL,
......
......@@ -294,7 +294,7 @@ cb_ticket (mu_debug_t debug, void *data, mu_config_value_t *val)
}
static struct mu_cfg_param sieve_cfg_param[] = {
{ "keep-going", mu_cfg_int, &keep_going, 0, NULL,
{ "keep-going", mu_cfg_bool, &keep_going, 0, NULL,
N_("Do not abort if execution fails on a message.") },
{ "mbox-url", mu_cfg_string, &mbox_url, 0, NULL,
N_("Mailbox to sieve (defaults to user's mail spool)."),
......