Skip to content
Toggle navigation
Toggle navigation
This project
Loading...
Sign in
John McEleney
/
mailutils
Go to a project
Toggle navigation
Toggle navigation pinning
Projects
Groups
Snippets
Help
Project
Activity
Repository
Pipelines
Graphs
Issues
0
Merge Requests
0
Wiki
Network
Create a new issue
Builds
Commits
Issue Boards
Files
Commits
Network
Compare
Branches
Tags
Commit
4d8a689e
...
4d8a689e9f6dd9c8b2e8fdbbc91e4c520f009098
authored
2004-01-25 17:29:47 +0000
by
Wojciech Polak
Browse Files
Options
Browse Files
Tag
Download
Email Patches
Plain Diff
Reorganized. Added initial movemail, mail.remote, and MH.
1 parent
8e54c4dd
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
493 additions
and
467 deletions
doc/texinfo/programs.texi
doc/texinfo/programs.texi
View file @
4d8a689
...
...
@@ -8,17 +8,25 @@
@menu
*
configuration
::
Common
Configuration
File
.
*
authentication
::
Authorization
and
Authentication
Principles
.
*
imap4d
::
IMAP4
Daemon
.
*
pop3d
::
POP3
Daemon
.
*
frm
::
List
Headers
from
a
Mailbox
.
*
mail
::
Send
and
Receive
Mail
.
*
mail
.
local
::
Deliver
Mail
to
the
Local
Mailbox
.
*
messages
::
Count
the
Number
of
Messages
in
a
Mailbox
.
*
movemail
::
Moves
Mail
from
the
User
Maildrop
to
the
Local
File
.
*
readmsg
::
Extract
Messages
from
a
Folder
.
*
sieve
::
Mail
Filtering
Utility
.
*
guimb
::
Mailbox
Scanning
and
Processing
Language
.
*
mail
.
local
::
Deliver
Mail
to
the
Local
Mailbox
.
*
mail
.
remote
::
Pseudo
-
Sendmail
Interface
for
Mail
Delivery
.
*
pop3d
::
POP3
Daemon
.
*
imap4d
::
IMAP4
Daemon
.
*
comsatd
::
Comsat
Daemon
.
*
mh
::
The
MH
Message
Handling
System
.
*
mailutils
-
config
::
Get
the
Information
about
the
Mailutils
Build
.
@end
menu
...
...
@@ -452,201 +460,6 @@ system:sql:virtdomains
@end
smallexample
@page
@node
imap4d
@section
IMAP4
Daemon
@pindex
imap4d
@sc
{
gnu
}
@command
{
imap4d
}
is
a
daemon
implementing
@sc
{
imap4
}
rev1
protocol
for
accessing
and
handling
electronic
mail
messages
on
a
server
.
It
can
be
run
either
as
a
standalone
program
or
from
@file
{
inetd
.
conf
}
file
.
@menu
*
Namespace
::
Namespace
.
*
Starting
imap4d
::
Invocation
Options
.
@end
menu
@node
Namespace
@subsection
Namespace
@cindex
namespace
@cindex
IMAP4
namespace
@sc
{
gnu
}
@command
{
imap4d
}
supports
a
notion
of
@dfn
{
namespaces
}
defined
in
RFC
2342
.
A
namespace
is
a
set
of
directories
upon
which
the
user
has
certain
permissions
.
It
should
be
understood
that
these
permissions
apply
only
if
the
underlying
filesystem
allows
them
.
The
three
namespaces
supported
by
@command
{
imap4d
}
are
:
@table
@asis
@item
Personal
Namespace
A
namespace
that
is
within
the
personal
scope
of
the
authenticated
user
on
a
particular
connection
.
The
user
has
all
permissions
on
this
namespace
.
@item
Other
Users
'
Namespace
A
namespace
that
consists
of
mailboxes
from
the
``
Personal
Namespaces
''
of
other
users
.
The
user
can
read
and
list
mailboxes
from
this
namespace
.
However
,
he
is
not
allowed
to
use
@samp
{
%
}
and
@samp
{
*
}
wildcards
with
@command
{
LIST
}
command
,
that
is
he
can
access
a
mailbox
only
if
he
knows
exactly
its
location
.
@item
Shared
Namespace
A
namespace
that
consists
of
mailboxes
that
are
intended
to
be
shared
amongst
users
and
do
not
exist
within
a
user
'
s
Personal
Namespace
.
The
user
has
all
permissions
on
this
namespace
.
@end
table
@noindent
By
default
,
@command
{
imap4d
}
starts
with
the
following
namespaces
:
@table
@asis
@item
Personal
Namespace
The
home
directory
of
the
user
,
if
exists
.
@item
Other
Users
'
Namespace
Empty
@item
Shared
Namespace
Empty
@end
table
@emph
{
Note
},
that
this
means
that
by
default
,
a
user
won
'
t
be
able
to
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
.
@node
Starting
imap4d
@subsection
Starting
@command
{
imap4d
}
@command
{
imap4d
}
may
run
either
in
@dfn
{
standalone
}
or
in
@dfn
{
inetd
}
operation
modes
.
When
run
in
``
standalone
''
mode
,
the
server
disconnects
from
the
terminal
and
runs
as
a
daemon
,
forking
a
child
for
each
new
connection
.
The
``
inetd
''
mode
allows
to
start
the
server
from
@file
{
/
etc
/
inetd
.
conf
}
file
.
This
is
the
default
operation
mode
.
@smallexample
imap4
stream
tcp
nowait
root
/
usr
/
local
/
sbin
/
imap4d
imap4d
@end
smallexample
The
program
uses
following
option
groups
:
@xref
{
mailbox
},
@xref
{
daemon
},
@xref
{
logging
},
@xref
{
auth
}.
@subheading
Command
Line
Options
@table
@option
@item
-
d
[
@var
{
number
}]
@itemx
--
daemon
[
=
@var
{
number
}]
Run
in
standalone
mode
.
An
optional
@var
{
number
}
specifies
the
maximum
number
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
-
v
@itemx
--
version
Display
program
version
and
exit
.
@end
table
@page
@node
pop3d
@section
POP3
Daemon
@pindex
pop3d
The
@command
{
pop3d
}
daemon
implements
the
Post
Office
Protocol
Version
3
server
.
@command
{
pop3d
}
has
two
operation
modes
:
@table
@asis
@item
Inetd
The
server
is
started
from
@file
{
/
etc
/
inetd
.
conf
}
file
:
@smallexample
pop3
stream
tcp
nowait
root
/
usr
/
local
/
sbin
/
pop3d
pop3d
@end
smallexample
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
.
@end
table
The
program
uses
following
option
groups
:
@xref
{
mailbox
},
@xref
{
daemon
},
@xref
{
logging
},
@xref
{
auth
}.
@subheading
Command
line
options
@table
@option
@item
-
d
[
@var
{
number
}]
@itemx
--
daemon
[
=
@var
{
number
}]
Run
in
standalone
mode
.
An
optional
@var
{
number
}
specifies
the
maximum
number
of
child
processes
the
daemon
is
allowed
to
fork
.
When
it
is
omitted
,
it
defaults
to
10
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
-
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
-
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
-
v
@itemx
--
version
Display
program
version
and
exit
.
@item
--
undelete
Remove
all
deletion
marks
from
the
messages
after
opening
the
mailbox
.
@item
--
login
-
delay
=
@var
{
seconds
}
Sets
the
minimum
allowed
delay
between
closing
a
pop3d
session
and
opening
it
again
with
the
same
user
name
.
@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
.
@end
table
@page
@node
frm
@section
@command
{
frm
}
---
List
Headers
from
a
Mailbox
@pindex
frm
...
...
@@ -2016,224 +1829,26 @@ package via @option{--with-mail-rc} option. It defaults to
@file{@var{sysconfdir}/mail.rc}.
@page
@node mail.local
@section @command{mail.local} --- Deliver Mail to the Local Mailbox
@pindex mail.local
@command{mail.local} reads the standard input up to an end-of-file
and appends the received data to the local mailboxes.
@menu
* Invocation:: Mail.local options
* MTA:: Using mail.local with various MTAs
* Mailbox Quotas:: Setting up mailbox quotas.
* Sieve Filters:: Implementing user-defined Sieve mail filters.
* Scheme Filters:: Implementing user-defined Scheme mail filters.
@end menu
@node messages
@section @command{messages} --- Count the Number of Messages in a Mailbox
@pindex messages
@node Invocation
@subsection Invoking @command{mail.local}
@command{Messages} prints on standard output the number of messages
contained in each folder specified in command line. If no folders
are specified, it operates upon user's system mailbox. For each
folder, the following output line is produced:
General usage of @command{mail.local} program is:
@smallexample
mail.local [OPTION...] recipient [recipient ...]
Number of messages in @var{folder}: @var{number}
@end smallexample
@noindent
If recipient part is present is a FQDN, @command{mail.local}
will attempt to deliver to a virtual host
.
where @var{folder} represents the folder name, @var{number} represents
the number of messages
.
The program uses following option groups: @xref{mailbox}, @xref{auth},
@xref{logging}, @xref{sieve}.
@table @option
@item -f @var{addr}
@itemx --from @var{addr}
Specify the sender's name. This option forces @command{mail.local} to
add @samp{From } envelope to the beginning of the message. If it is
not specified, @command{mail.local} first looks into the first line
from the standard input. If it starts with @samp{From }, it is assumed
to contain a valid envelope. If it does not, @command{mail.local}
creates the envelope by using current user name and date.
@item -h
@itemx --help
Display this help and exit.
@item -L
@itemx --license
Display @sc{gnu} General Public License and exit.
@item -m @var{path}
@itemx --mail-spool @var{path}
Specify path to mailspool directory.
@item -q
@itemx --quota-db @var{file}
Specify path to mailbox quota database (@pxref{Mailbox Quotas}).
@item -s @var{pattern}
@itemx --source @var{pattern}
Set name pattern for user-defined mail filters written in Scheme
(@pxref{Scheme Filters}). The
metacharacters @samp{%u} and @samp{%h} in the pattern are expanded to
the current recipient user name and home directory correspondingly.
This option is available only if the package has been configured to
use Guile extension language.
@item -S @var{pattern}
@itemx --sieve @var{pattern}
Set name pattern for user-defined mail filters written is Sieve
(@pxref{Sieve Filters}). The
metacharacters @samp{%u} and @samp{%h} in the pattern are expanded to
the current recipient user name and home directory correspondingly.
@item -t @var{number}
@itemx --timeout @var{number}
Wait @var{number} seconds for acquiring the lockfile. If it doesn't
become available after that amount of time, return failure. The timeout
defaults to 5 minutes.
@item -x @var{flags}
@itemx --debug @var{flags}
Enable debugging. The debugging information will be output using syslog.
The @var{flags} is a string consisting of the following flags:
Debug flags are:
@table @samp
@item g
Start with guile debugging evaluator and backtraces. This is convenient
for debugging user-defined filters (@pxref{Scheme Filters}).
@item T
Enable libmailutil traces (MU_DEBUG_TRACE).
@item P
Enable network protocol traces (MU_DEBUG_PROT)
@item t
Enable sieve trace (MU_SIEVE_DEBUG_TRACE)
@item l
Enable sieve action logs
@end table
The digits in the range @samp{0} -- @samp{9} used in @var{flags} set
@command{mail.local} debugging level.
@item -v
@itemx --version
Display program version and exit.
@item --ex-multiple-delivery-success
Don't return errors when delivering to multiple recipients.
@item --ex-quota-tempfail
Return temporary failure if disk or mailbox quota is exceeded. By
default, 'service unavailable' is returned if the message exceeds
the mailbox quota.
@end table
@node MTA
@subsection Using @command{mail.local} with Various MTAs
This section explains how to invoke @command{mail.local} from
configuration files of various Mail Transport Agents.
All examples in this section suppose that @command{mail.local}
must receive following command line switches:
@smallexample
-s %h/.filter.scm -q /etc/mail/userquota
@end smallexample
@menu
* Sendmail:: Using @command{mail.local} with Sendmail.
* Exim:: Using @command{mail.local} with Exim.
@end menu
@node Sendmail
@subsubheading Using @command{mail.local} with Sendmail
The @command{mail.local} must be invoked from the local mailer
definition in the @file{sendmail.cf} file. It must have the
following flags set @samp{lswS}, meaning the mailer is local,
the quote characters should be stripped off the address before
invoking the mailer, the user must have a valid account on this
machine and the userid should not be reset before calling the
mailer. Additionally, @samp{fn} flags may be specified to allow
@command{mail.local} to generate usual @samp{From } envelope
instead of the one supplied by sendmail.
If you wish to use mail.local with SQL authentication, you may
wish to remove the @samp{w} flag, since in that case the user is
not required to have a valid account on the machine that runs
@command{sendmail}.
Here is an example of mailer definition in @file{sendmail.cf}
@smallexample
Mlocal, P=/usr/local/libexec/mail.local,
F=lsDFMAw5:/|@@qSPfhn9,
S=EnvFromL/HdrFromL, R=EnvToL/HdrToL,
T=DNS/RFC822/X-Unix,
A=mail -s %h/.filter.scm -q /etc/mail/userquota $u
@end smallexample
To define local mailer in @samp{mc} source file, it will suffice to
set:
@smallexample
define(`LOCAL_MAILER_PATH', `/usr/local/libexec/mail.local')
define(`LOCAL_MAILER_ARGS',
`mail -s %h/.filter.scm -q /etc/mail/userquota $u')
@end smallexample
@node Exim
@subsubheading Using @command{mail.local} with Exim
Using @command{mail.local} with Exim is quite straightforward. The
following example illustrates the definition of appropriate transport
and director in @file{exim.conf}:
@smallexample
# transport
mail_local_pipe:
driver = pipe
command = /usr/local/libexec/mail.local -s %h/.filter.scm \
-q /etc/mail/userquota $local_part
return_path_add
delivery_date_add
envelope_to_add
# director
mail_local:
driver = localuser
transport = mail_local_pipe
@end smallexample
@node Mailbox Quotas
@subsection Setting up Mailbox Quotas
@node Sieve Filters
@subsection Implementing User-defined Sieve Mail Filters
@node Scheme Filters
@subsection Implementing User-defined Scheme Mail Filters
@page
@node messages
@section @command{messages} --- Count the Number of Messages in a Mailbox
@pindex messages
@command{Messages} prints on standard output the number of messages
contained in each folder specified in command line. If no folders
are specified, it operates upon user's system mailbox. For each
folder, the following output line is produced:
@smallexample
Number of messages in @var{folder}: @var{number}
@end smallexample
@noindent
where @var{folder} represents the folder name, @var{number} represents
the number of messages.
The program uses following option groups: @xref{mailbox}.
The program accepts following command line options:
The program uses following option groups: @xref{mailbox}.
The program accepts following command line options:
@table @option
@item -q
...
...
@@ -2252,6 +1867,13 @@ Output program version and exit.
@end table
@page
@node movemail
@section @command{movemail} --- Moves Mail from the User Maildrop to the Local File
@pindex movemail
[FIXME]
@page
@node readmsg
@section @command{readmsg} --- Extract Messages from a Folder
@pindex readmsg
...
...
@@ -2260,7 +1882,6 @@ The program, readmsg, extracts with the selection argument messages from
a mailbox. Selection can be specify by:
@enumerate
@item A lone ``*'' means select all messages in the mailbox.
@item
...
...
@@ -2317,7 +1938,6 @@ Put form-feed (Control-L) between messages instead of newline.
@itemx --weedlist=@var{weedlist}
A whitespace or coma separated list of header names to show per message.
Default is --weedlist=''From Subject Date To CC Apparently-''
@end table
@page
...
...
@@ -2738,71 +2358,471 @@ Display program version.
@end table
@page
@node
comsatd
@section
Comsat Daemon
@pindex
comsatd
@node
mail.local
@section
@command{mail.local} --- Deliver Mail to the Local Mailbox
@pindex
mail.local
Comsatd is the server which receives reports of incoming mail and
notifies users, wishing to get this service. It can be started
either from @file{inetd.conf} or as a standalone daemon.
@command{mail.local} reads the standard input up to an end-of-file
and appends the received data to the local mailboxes.
@menu
* Starting comsatd:: Invocation.
* Configuring comsatd:: Configuration of @command{comsatd}.
* dot.biffrc:: A per-user configuration file.
* Invocation:: Mail.local options
* MTA:: Using mail.local with various MTAs
* Mailbox Quotas:: Setting up mailbox quotas.
* Sieve Filters:: Implementing user-defined Sieve mail filters.
* Scheme Filters:: Implementing user-defined Scheme mail filters.
@end menu
@node Starting comsatd
@subsection Starting @command{comsatd}
@command{Comsatd} uses following option groups: @xref{mailbox},
@xref{daemon}, @xref{logging}.
@table @option
@item -c @var{file}
@itemx --config @var{file}
Read configuration from given @var{file}. For more information about
comsatd configuration files, see @ref{Configuring comsatd}.
@item -d
@itemx --daemon
Run as a standalone daemon.
@item -i
@itemx --inetd
The server is started from @file{/etc/inetd.conf} file:
@node Invocation
@subsection Invoking @command{mail.local}
General usage of @command{mail.local} program is:
@smallexample
comsat dgram udp wait root /usr/sbin/comsatd \
comsatd -c /etc/comsat.conf
mail.local [OPTION...] recipient [recipient ...]
@end smallexample
This is the default operation mode.
@item -m @var{path}
@itemx --mail-spool=@var{path}
Set path to the mailspool directory
@item -p @var{number}
@itemx --port @var{number}
Specify the port number to listen on. Default is 512.
@item -v
@itemx --version
Output version and exit successfully.
@item -h
@itemx --help
Display short help message and exit.
@end table
@node Configuring comsatd
@subsection Configuring @command{comsatd}
The configuration parameters for @command{comsatd} are kept in a single
configuration file. The file uses line-oriented format: each line
contains a single statement. Comments are introduced with the @samp{#}
sign and empty lines are ignored. You can specify the configuration
file to use by using @option{-c} or @option{--config} command line switch.
@noindent
If recipient part is present is a FQDN, @command{mail.local}
will attempt to deliver to a virtual host.
The configuration file statements can logically be subdivided into
@dfn{General Settings}, @dfn{Security Settings} and @dfn{Access Control
Lists}. The following sections address each of these statement group in
detail.
The program uses following option groups: @xref{mailbox}, @xref{auth},
@xref{logging}, @xref{sieve}.
@table @option
@item -f @var{addr}
@itemx --from @var{addr}
Specify the sender's name. This option forces @command{mail.local} to
add @samp{From } envelope to the beginning of the message. If it is
not specified, @command{mail.local} first looks into the first line
from the standard input. If it starts with @samp{From }, it is assumed
to contain a valid envelope. If it does not, @command{mail.local}
creates the envelope by using current user name and date.
@item -h
@itemx --help
Display this help and exit.
@item -L
@itemx --license
Display @sc{gnu} General Public License and exit.
@item -m @var{path}
@itemx --mail-spool @var{path}
Specify path to mailspool directory.
@item -q
@itemx --quota-db @var{file}
Specify path to mailbox quota database (@pxref{Mailbox Quotas}).
@item -s @var{pattern}
@itemx --source @var{pattern}
Set name pattern for user-defined mail filters written in Scheme
(@pxref{Scheme Filters}). The
metacharacters @samp{%u} and @samp{%h} in the pattern are expanded to
the current recipient user name and home directory correspondingly.
This option is available only if the package has been configured to
use Guile extension language.
@item -S @var{pattern}
@itemx --sieve @var{pattern}
Set name pattern for user-defined mail filters written is Sieve
(@pxref{Sieve Filters}). The
metacharacters @samp{%u} and @samp{%h} in the pattern are expanded to
the current recipient user name and home directory correspondingly.
@item -t @var{number}
@itemx --timeout @var{number}
Wait @var{number} seconds for acquiring the lockfile. If it doesn't
become available after that amount of time, return failure. The timeout
defaults to 5 minutes.
@item -x @var{flags}
@itemx --debug @var{flags}
Enable debugging. The debugging information will be output using syslog.
The @var{flags} is a string consisting of the following flags:
Debug flags are:
@table @samp
@item g
Start with guile debugging evaluator and backtraces. This is convenient
for debugging user-defined filters (@pxref{Scheme Filters}).
@item T
Enable libmailutil traces (MU_DEBUG_TRACE).
@item P
Enable network protocol traces (MU_DEBUG_PROT)
@item t
Enable sieve trace (MU_SIEVE_DEBUG_TRACE)
@item l
Enable sieve action logs
@end table
The digits in the range @samp{0} -- @samp{9} used in @var{flags} set
@command{mail.local} debugging level.
@item -v
@itemx --version
Display program version and exit.
@item --ex-multiple-delivery-success
Don't return errors when delivering to multiple recipients.
@item --ex-quota-tempfail
Return temporary failure if disk or mailbox quota is exceeded. By
default, 'service unavailable' is returned if the message exceeds
the mailbox quota.
@end table
@node MTA
@subsection Using @command{mail.local} with Various MTAs
This section explains how to invoke @command{mail.local} from
configuration files of various Mail Transport Agents.
All examples in this section suppose that @command{mail.local}
must receive following command line switches:
@smallexample
-s %h/.filter.scm -q /etc/mail/userquota
@end smallexample
@menu
* Sendmail:: Using @command{mail.local} with Sendmail.
* Exim:: Using @command{mail.local} with Exim.
@end menu
@node Sendmail
@subsubheading Using @command{mail.local} with Sendmail
The @command{mail.local} must be invoked from the local mailer
definition in the @file{sendmail.cf} file. It must have the
following flags set @samp{lswS}, meaning the mailer is local,
the quote characters should be stripped off the address before
invoking the mailer, the user must have a valid account on this
machine and the userid should not be reset before calling the
mailer. Additionally, @samp{fn} flags may be specified to allow
@command{mail.local} to generate usual @samp{From } envelope
instead of the one supplied by sendmail.
If you wish to use mail.local with SQL authentication, you may
wish to remove the @samp{w} flag, since in that case the user is
not required to have a valid account on the machine that runs
@command{sendmail}.
Here is an example of mailer definition in @file{sendmail.cf}
@smallexample
Mlocal, P=/usr/local/libexec/mail.local,
F=lsDFMAw5:/|@@qSPfhn9,
S=EnvFromL/HdrFromL, R=EnvToL/HdrToL,
T=DNS/RFC822/X-Unix,
A=mail -s %h/.filter.scm -q /etc/mail/userquota $u
@end smallexample
To define local mailer in @samp{mc} source file, it will suffice to
set:
@smallexample
define(`LOCAL_MAILER_PATH', `/usr/local/libexec/mail.local')
define(`LOCAL_MAILER_ARGS',
`mail -s %h/.filter.scm -q /etc/mail/userquota $u')
@end smallexample
@node Exim
@subsubheading Using @command{mail.local} with Exim
Using @command{mail.local} with Exim is quite straightforward. The
following example illustrates the definition of appropriate transport
and director in @file{exim.conf}:
@smallexample
# transport
mail_local_pipe:
driver = pipe
command = /usr/local/libexec/mail.local -s %h/.filter.scm \
-q /etc/mail/userquota $local_part
return_path_add
delivery_date_add
envelope_to_add
# director
mail_local:
driver = localuser
transport = mail_local_pipe
@end smallexample
@node Mailbox Quotas
@subsection Setting up Mailbox Quotas
@node Sieve Filters
@subsection Implementing User-defined Sieve Mail Filters
@node Scheme Filters
@subsection Implementing User-defined Scheme Mail Filters
@page
@node mail.remote
@section @command{mail.remote} --- Pseudo-Sendmail Interface for Mail Delivery
@pindex mail.remote
[FIXME]
@page
@node pop3d
@section POP3 Daemon
@pindex pop3d
The @command{pop3d} daemon implements the Post Office Protocol
Version 3 server.
@command{pop3d} has two operation modes:
@table @asis
@item Inetd
The server is started from @file{/etc/inetd.conf} file:
@smallexample
pop3 stream tcp nowait root /usr/local/sbin/pop3d pop3d
@end smallexample
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.
@end table
The program uses following option groups: @xref{mailbox},
@xref{daemon}, @xref{logging}, @xref{auth}.
@subheading Command line options
@table @option
@item -d[@var{number}]
@itemx --daemon[=@var{number}]
Run in standalone mode. An optional @var{number} specifies the maximum number
of child processes the daemon is allowed to fork. When it is omitted,
it defaults to 10 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 -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 -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 -v
@itemx --version
Display program version and exit.
@item --undelete
Remove all deletion marks from the messages after opening the mailbox.
@item --login-delay=@var{seconds}
Sets the minimum allowed delay between closing a pop3d session and
opening it again with the same user name.
@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.
@end table
@page
@node imap4d
@section IMAP4 Daemon
@pindex imap4d
@sc{gnu} @command{imap4d} is a daemon implementing @sc{imap4} rev1 protocol
for accessing and handling electronic mail messages on a server. It can
be run either as a standalone program or from @file{inetd.conf} file.
@menu
* Namespace:: Namespace.
* Starting imap4d:: Invocation Options.
@end menu
@node Namespace
@subsection Namespace
@cindex namespace
@cindex IMAP4 namespace
@sc{gnu} @command{imap4d} supports a notion of @dfn{namespaces} defined
in RFC 2342. A namespace is a set of directories upon which the user
has certain permissions. It should be understood that these permissions
apply only if the underlying filesystem allows them.
The three namespaces supported by @command{imap4d} are:
@table @asis
@item Personal Namespace
A namespace that is within the personal scope of the authenticated user
on a particular connection. The user has all permissions on this namespace.
@item Other Users' Namespace
A namespace that consists of mailboxes from the ``Personal Namespaces''
of other users. The user can read and list mailboxes from this
namespace. However, he is not allowed to use @samp{%} and @samp{*}
wildcards with @command{LIST} command, that is he can access a
mailbox only if he knows exactly its location.
@item Shared Namespace
A namespace that consists of mailboxes that are intended to be shared
amongst users and do not exist within a user's Personal Namespace.
The user has all permissions on this namespace.
@end table
@noindent
By default, @command{imap4d} starts with the following namespaces:
@table @asis
@item Personal Namespace
The home directory of the user, if exists.
@item Other Users' Namespace
Empty
@item Shared Namespace
Empty
@end table
@emph{Note}, that this means that by default, a user won't be able to
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.
@node Starting imap4d
@subsection Starting @command{imap4d}
@command{imap4d} may run either in @dfn{standalone} or in @dfn{inetd}
operation modes. When run in ``standalone'' mode, the server disconnects
from the terminal and runs as a daemon, forking a child for each new
connection.
The ``inetd'' mode allows to start the server from
@file{/etc/inetd.conf} file. This is the default operation mode.
@smallexample
imap4 stream tcp nowait root /usr/local/sbin/imap4d imap4d
@end smallexample
The program uses following option groups: @xref{mailbox},
@xref{daemon}, @xref{logging}, @xref{auth}.
@subheading Command Line Options
@table @option
@item -d[@var{number}]
@itemx --daemon[=@var{number}]
Run in standalone mode. An optional @var{number} specifies the maximum number
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 -v
@itemx --version
Display program version and exit.
@end table
@page
@node comsatd
@section Comsat Daemon
@pindex comsatd
Comsatd is the server which receives reports of incoming mail and
notifies users, wishing to get this service. It can be started
either from @file{inetd.conf} or as a standalone daemon.
@menu
* Starting comsatd:: Invocation.
* Configuring comsatd:: Configuration of @command{comsatd}.
* dot.biffrc:: A per-user configuration file.
@end menu
@node Starting comsatd
@subsection Starting @command{comsatd}
@command{Comsatd} uses following option groups: @xref{mailbox},
@xref{daemon}, @xref{logging}.
@table @option
@item -c @var{file}
@itemx --config @var{file}
Read configuration from given @var{file}. For more information about
comsatd configuration files, see @ref{Configuring comsatd}.
@item -d
@itemx --daemon
Run as a standalone daemon.
@item -i
@itemx --inetd
The server is started from @file{/etc/inetd.conf} file:
@smallexample
comsat dgram udp wait root /usr/sbin/comsatd \
comsatd -c /etc/comsat.conf
@end smallexample
This is the default operation mode.
@item -m @var{path}
@itemx --mail-spool=@var{path}
Set path to the mailspool directory
@item -p @var{number}
@itemx --port @var{number}
Specify the port number to listen on. Default is 512.
@item -v
@itemx --version
Output version and exit successfully.
@item -h
@itemx --help
Display short help message and exit.
@end table
@node Configuring comsatd
@subsection Configuring @command{comsatd}
The configuration parameters for @command{comsatd} are kept in a single
configuration file. The file uses line-oriented format: each line
contains a single statement. Comments are introduced with the @samp{#}
sign and empty lines are ignored. You can specify the configuration
file to use by using @option{-c} or @option{--config} command line switch.
The configuration file statements can logically be subdivided into
@dfn{General Settings}, @dfn{Security Settings} and @dfn{Access Control
Lists}. The following sections address each of these statement group in
detail.
@menu
* General Settings::
...
...
@@ -2982,6 +3002,12 @@ $B(,5)\
@end smallexample
@page
@node mh
@section @acronym{MH} --- The MH Message Handling System
[FIXME]
@page
@node mailutils-config
@section @command{mailutils-config} --- Get the Information about the Mailutils Build
@pindex mailutils-config
...
...
Please
register
or
sign in
to post a comment