3 |
@c See file mailutils.texi for copying conditions. |
@c See file mailutils.texi for copying conditions. |
4 |
@comment ******************************************************************* |
@comment ******************************************************************* |
5 |
|
|
6 |
GNU Mailutils provides a set of programs for handling the email. |
@sc{gnu} Mailutils provides a set of programs for handling the email. |
7 |
|
|
8 |
@menu |
@menu |
9 |
* authentication:: Authorization and authentication principles. |
* authentication:: Authorization and authentication principles. |
18 |
* sieve:: Mail filtering utility. |
* sieve:: Mail filtering utility. |
19 |
* guimb:: Mailbox scanning and processing language. |
* guimb:: Mailbox scanning and processing language. |
20 |
* comsatd:: Comsat daemon. |
* comsatd:: Comsat daemon. |
21 |
* mailutils-config:: Get the information about the mailutils build. |
* mailutils-config:: Get the information about the Mailutils build. |
22 |
@end menu |
@end menu |
23 |
|
|
24 |
@page |
@page |
130 |
|
|
131 |
There are some command line options that are used so often that it is |
There are some command line options that are used so often that it is |
132 |
inconvenient to specify them in the command line each time you run |
inconvenient to specify them in the command line each time you run |
133 |
a mailutils utility. The @dfn{configuration files} provide a way to |
a Mailutils utility. The @dfn{configuration files} provide a way to |
134 |
add default command line arguments without having to type them in |
add default command line arguments without having to type them in |
135 |
the command line. Upon startup, each mailutils utility scans and |
the command line. Upon startup, each Mailutils utility scans and |
136 |
processes the contents of the three startup files, none of which |
processes the contents of the three startup files, none of which |
137 |
are required to exist: |
are required to exist: |
138 |
|
|
170 |
file the tag must not be present, all options are for that specific |
file the tag must not be present, all options are for that specific |
171 |
program. |
program. |
172 |
|
|
173 |
A tag is either a name of a particular mailutils utility or @dfn{option |
A tag is either a name of a particular Mailutils utility or @dfn{option |
174 |
group}, prefixed with colon (@samp{:}). The command line options common for |
group}, prefixed with colon (@samp{:}). The command line options common for |
175 |
several mailutils programs are divided into @dfn{option groups} or |
several Mailutils programs are divided into @dfn{option groups} or |
176 |
@dfn{capabilities}, e.g. the options @option{--mail-spool} and |
@dfn{capabilities}, e.g. the options @option{--mail-spool} and |
177 |
@option{--lock-flags} form group @samp{mailbox}. These groups are discussed |
@option{--lock-flags} form group @samp{mailbox}. These groups are discussed |
178 |
in detail below. |
in detail below. |
179 |
|
|
180 |
When processing the non-program-specific configuration files, |
When processing the non-program-specific configuration files, |
181 |
a mailutils utility selects |
a Mailutils utility selects |
182 |
those lines whose tag is either the name of that utility or the name |
those lines whose tag is either the name of that utility or the name |
183 |
of the option group supported by it. In the program-specific configuration |
of the option group supported by it. In the program-specific configuration |
184 |
file, all lines are selected. For each line found, its tag (if present) |
file, all lines are selected. For each line found, its tag (if present) |
195 |
or single quotes). |
or single quotes). |
196 |
|
|
197 |
@menu |
@menu |
198 |
* default:: Options understood by most GNU utilities. |
* default:: Options understood by most @sc{gnu} utilities. |
199 |
* mailbox:: Specifies the mail spool location, and locking strategy. |
* mailbox:: Specifies the mail spool location, and locking strategy. |
200 |
* mailer:: Sets the mailer URL. |
* mailer:: Sets the mailer URL. |
201 |
* address:: Specifies the default email address and domain. |
* address:: Specifies the default email address and domain. |
202 |
* daemon:: Options common for daemon programs. |
* daemon:: Options common for daemon programs. |
203 |
* auth:: Authentication-specific options. |
* auth:: Authentication-specific options. |
204 |
* logging:: Logging control options. |
* logging:: Logging control options. |
205 |
* sieve:sieve group. Sieve specific options |
* sieve: sieve group. Sieve specific options |
206 |
* config sample:: A sample configuration file. |
* config sample:: A sample configuration file. |
207 |
@end menu |
@end menu |
208 |
|
|
209 |
@node default |
@node default |
210 |
@subsection default --- Options understood by most GNU utilities. |
@subsection default --- Options understood by most @sc{gnu} utilities. |
211 |
|
|
212 |
Each program also understands the following informational options: |
Each program also understands the following informational options: |
213 |
|
|
220 |
Display help message and exit. |
Display help message and exit. |
221 |
@item -L |
@item -L |
222 |
@itemx --license |
@itemx --license |
223 |
Display GNU General Public License and exit. |
Display @sc{gnu} General Public License and exit. |
224 |
@item -v |
@item -v |
225 |
@itemx --version |
@itemx --version |
226 |
Display program version and exit. |
Display program version and exit. |
418 |
@subsection A sample configuration file. |
@subsection A sample configuration file. |
419 |
@cindex mailutils.rc, an example |
@cindex mailutils.rc, an example |
420 |
|
|
421 |
The following configuration file specifies that all mailutils programs |
The following configuration file specifies that all Mailutils programs |
422 |
should use @file{/var/spool/mail} as a local mailspool |
should use @file{/var/spool/mail} as a local mailspool |
423 |
directory. Programs performing authentication will use @acronym{pam} |
directory. Programs performing authentication will use @acronym{pam} |
424 |
service @samp{mailutils}. All programs, except @command{imap4d} will |
service @samp{mailutils}. All programs, except @command{imap4d} will |
439 |
@section IMAP4 daemon |
@section IMAP4 daemon |
440 |
@pindex imap4d |
@pindex imap4d |
441 |
|
|
442 |
GNU imap4d is a daemon implementing @sc{imap4} rev1 protocol for |
@sc{gnu} imap4d is a daemon implementing @sc{imap4} rev1 protocol for |
443 |
accessing and handling electronic mail messages on a server. It can |
accessing and handling electronic mail messages on a server. It can |
444 |
be run either as a standalone program or from @file{inetd.conf} file. |
be run either as a standalone program or from @file{inetd.conf} file. |
445 |
|
|
453 |
@cindex namespace |
@cindex namespace |
454 |
@cindex IMAP4 namespace |
@cindex IMAP4 namespace |
455 |
|
|
456 |
GNU imap4d supports a notion of @dfn{namespaces} defined in RFC 2342. A |
@sc{gnu} imap4d supports a notion of @dfn{namespaces} defined in RFC 2342. A |
457 |
namespace is a set of directories upon which the user has certain |
namespace is a set of directories upon which the user has certain |
458 |
permissions. It should be understood that these persmissions apply |
permissions. It should be understood that these persmissions apply |
459 |
only if the underlying filesystem allows them. |
only if the underlying filesystem allows them. |
488 |
|
|
489 |
@item Other Users' Namespace |
@item Other Users' Namespace |
490 |
Empty |
Empty |
491 |
|
|
492 |
@item Shared Namespace |
@item Shared Namespace |
493 |
Empty |
Empty |
494 |
|
|
495 |
@end table |
@end table |
496 |
|
|
497 |
@emph{Note}, that this means that by default, a user won't be able to |
@emph{Note}, that this means that by default, a user won't be able to |
1216 |
name followed by the summary information regarding it, e.g.: |
name followed by the summary information regarding it, e.g.: |
1217 |
|
|
1218 |
@example |
@example |
1219 |
|
@cartouche |
1220 |
& fold |
& fold |
1221 |
"/var/spool/mail/gray": 23 messages 22 unread |
"/var/spool/mail/gray": 23 messages 22 unread |
1222 |
|
@end cartouche |
1223 |
@end example |
@end example |
1224 |
@end table |
@end table |
1225 |
|
|
1287 |
Displays current mailbox summary. E.g.: |
Displays current mailbox summary. E.g.: |
1288 |
|
|
1289 |
@example |
@example |
1290 |
|
@cartouche |
1291 |
& summary |
& summary |
1292 |
"/var/spool/mail/gray": 23 messages 22 unread |
"/var/spool/mail/gray": 23 messages 22 unread |
1293 |
|
@end cartouche |
1294 |
@end example |
@end example |
1295 |
@end table |
@end table |
1296 |
|
|
1321 |
Print a multipart message. The @code{decode} command decodes and prints |
Print a multipart message. The @code{decode} command decodes and prints |
1322 |
out specified message parts. E.g. |
out specified message parts. E.g. |
1323 |
@example |
@example |
1324 |
|
@cartouche |
1325 |
& decode 15[2] |
& decode 15[2] |
1326 |
+--------------------------------------- |
+--------------------------------------- |
1327 |
| Message=15[2] |
| Message=15[2] |
1330 |
+--------------------------------------- |
+--------------------------------------- |
1331 |
Content-Type: message/delivery-status |
Content-Type: message/delivery-status |
1332 |
... |
... |
1333 |
|
@end cartouche |
1334 |
@end example |
@end example |
1335 |
@item top [@var{msglist}] |
@item top [@var{msglist}] |
1336 |
@itemx to [@var{msglist}] |
@itemx to [@var{msglist}] |
1405 |
|
|
1406 |
@example |
@example |
1407 |
@group |
@group |
1408 |
|
@cartouche |
1409 |
& from 14 15 |
& from 14 15 |
1410 |
U 14 smith@@noldor.org Fri Jun 30 18:11 14/358 The Save c |
U 14 smith@@noldor.org Fri Jun 30 18:11 14/358 The Save c |
1411 |
U 15 gray@@noldor.org Fri Jun 30 18:30 8/245 Re: The Sa |
U 15 gray@@noldor.org Fri Jun 30 18:30 8/245 Re: The Sa |
1412 |
& Save 14 15 |
& Save 14 15 |
1413 |
"smith" 22/603 |
"smith" 22/603 |
1414 |
|
@end cartouche |
1415 |
@end group |
@end group |
1416 |
@end example |
@end example |
1417 |
@noindent |
@noindent |
1660 |
@node Mail Variables |
@node Mail Variables |
1661 |
@subsection How to alter the behavior of mail |
@subsection How to alter the behavior of mail |
1662 |
|
|
1663 |
Following variables control the behavior of GNU @command{mail}: |
Following variables control the behavior of @sc{gnu} @command{mail}: |
1664 |
|
|
1665 |
@table @code |
@table @code |
1666 |
@item Sign |
@item Sign |
1955 |
@menu |
@menu |
1956 |
* Invocation:: Mail.local options |
* Invocation:: Mail.local options |
1957 |
* MTA:: Using mail.local with various MTAs |
* MTA:: Using mail.local with various MTAs |
1958 |
* Mailbox Quotas:: Setting up mailbox quotas. |
* Mailbox Quotas:: Setting up mailbox quotas. |
1959 |
* Filters:: Implementing user-defined mail filters. |
* Sieve Filters:: Implementing user-defined Sieve mail filters. |
1960 |
|
* Scheme Filters:: Implementing user-defined Scheme mail filters. |
1961 |
@end menu |
@end menu |
1962 |
|
|
1963 |
@node Invocation |
@node Invocation |
1980 |
Display this help and exit. |
Display this help and exit. |
1981 |
@item -L |
@item -L |
1982 |
@itemx --license |
@itemx --license |
1983 |
Display GNU General Public License and exit. |
Display @sc{gnu} General Public License and exit. |
1984 |
@item -m @var{path} |
@item -m @var{path} |
1985 |
@itemx --mail-spool @var{path} |
@itemx --mail-spool @var{path} |
1986 |
Specify path to mailspool directory. |
Specify path to mailspool directory. |
1989 |
Specify path to mailbox quota database (@pxref{Mailbox Quotas}). |
Specify path to mailbox quota database (@pxref{Mailbox Quotas}). |
1990 |
@item -s @var{pattern} |
@item -s @var{pattern} |
1991 |
@itemx --source @var{pattern} |
@itemx --source @var{pattern} |
1992 |
Set name pattern for user-defined mail filters (@pxref{Filters}). The |
Set name pattern for user-defined mail filters written in Scheme |
1993 |
|
(@pxref{Scheme Filters}). The |
1994 |
|
metacharacters @samp{%u} and @samp{%h} in the pattern are expanded to |
1995 |
|
the current recipient user name and home directory correspondingly. |
1996 |
|
|
1997 |
|
This option is available only if the package has been configured to |
1998 |
|
use Guile extension language. |
1999 |
|
@item -S @var{pattern} |
2000 |
|
@itemx --sieve @var{pattern} |
2001 |
|
Set name pattern for user-defined mail filters written is Sieve |
2002 |
|
(@pxref{Sieve Filters}). The |
2003 |
metacharacters @samp{%u} and @samp{%h} in the pattern are expanded to |
metacharacters @samp{%u} and @samp{%h} in the pattern are expanded to |
2004 |
the current recipient user name and home directory correspondingly. |
the current recipient user name and home directory correspondingly. |
2005 |
@item -t @var{number} |
@item -t @var{number} |
2007 |
Wait @var{number} seconds for acquiring the lockfile. If it doesn't |
Wait @var{number} seconds for acquiring the lockfile. If it doesn't |
2008 |
become available after that amount of time, return failure. The timeout |
become available after that amount of time, return failure. The timeout |
2009 |
defaults to 5 minutes. |
defaults to 5 minutes. |
2010 |
@item -x guile |
@item -x @var{flags} |
2011 |
@itemx --debug guile |
@itemx --debug @var{flags} |
2012 |
|
Enable debugging. The debugging information will be output using syslog. |
2013 |
|
The @var{flags} is a string consisting of the following flags: |
2014 |
|
Debug flags are: |
2015 |
|
|
2016 |
|
@table @samp |
2017 |
|
@item g |
2018 |
Start with guile debugging evaluator and backtraces. This is convenient |
Start with guile debugging evaluator and backtraces. This is convenient |
2019 |
for debugging user-defined filters (@pxref{Filters}). |
for debugging user-defined filters (@pxref{Scheme Filters}). |
2020 |
@item -x @var{number} |
|
2021 |
@itemx --debug @var{number} |
@item T |
2022 |
Set debugging level. |
Enable libmailutil traces (MU_DEBUG_TRACE). |
2023 |
|
|
2024 |
|
@item P |
2025 |
|
Enable network protocol traces (MU_DEBUG_PROT) |
2026 |
|
|
2027 |
|
@item t |
2028 |
|
Enable sieve trace (MU_SIEVE_DEBUG_TRACE) |
2029 |
|
|
2030 |
|
@item l |
2031 |
|
Enble sieve action logs |
2032 |
|
@end table |
2033 |
|
|
2034 |
|
The digits in the range @samp{0} -- @samp{9} used in @var{flags} set |
2035 |
|
@command{mail.local} debugging level. |
2036 |
@item -v |
@item -v |
2037 |
@itemx --version |
@itemx --version |
2038 |
Display program version and exit. |
Display program version and exit. |
2120 |
@node Mailbox Quotas |
@node Mailbox Quotas |
2121 |
@subsection Setting up mailbox quotas |
@subsection Setting up mailbox quotas |
2122 |
|
|
2123 |
@node Filters |
@node Sieve Filters |
2124 |
@subsection Implementing user-defined mail filters. |
@subsection Implementing user-defined Sieve mail filters. |
2125 |
|
|
2126 |
|
@node Scheme Filters |
2127 |
|
@subsection Implementing user-defined Scheme mail filters. |
2128 |
|
|
2129 |
@page |
@page |
2130 |
@node messages |
@node messages |
2240 |
@pindex sieve |
@pindex sieve |
2241 |
|
|
2242 |
Sieve is a language for filtering e-mail messages at time of final |
Sieve is a language for filtering e-mail messages at time of final |
2243 |
delivery, described in RFC 3028. GNU mailutils provides two |
delivery, described in RFC 3028. @sc{gnu} Mailutils provides two |
2244 |
implementations of this language: a stand-alone @dfn{sieve interpreter} |
implementations of this language: a stand-alone @dfn{sieve interpreter} |
2245 |
and a @dfn{sieve translator and filter}. The following sections describe these |
and a @dfn{sieve translator and filter}. The following sections describe these |
2246 |
utilities in detail. |
utilities in detail. |
2254 |
@subsection A Sieve Interpreter |
@subsection A Sieve Interpreter |
2255 |
|
|
2256 |
Sieve interpreter @command{sieve} allows to apply Sieve scripts to an |
Sieve interpreter @command{sieve} allows to apply Sieve scripts to an |
2257 |
arbitrary number of mailboxes. GNU @command{sieve} implements a superset |
arbitrary number of mailboxes. @sc{gnu} @command{sieve} implements a superset |
2258 |
of the Sieve language as described in RFC 3028. @xref{Input Language}, |
of the Sieve language as described in RFC 3028. @xref{Input Language}, |
2259 |
for a description of the Sieve language. @xref{Extensions}, for a |
for a description of the Sieve language. @xref{Extensions}, for a |
2260 |
discussion of differences between the GNU implementation of Sieve and |
discussion of differences between the @sc{gnu} implementation of Sieve and |
2261 |
its standard. |
its standard. |
2262 |
|
|
2263 |
@menu |
@menu |
3110 |
|
|
3111 |
@page |
@page |
3112 |
@node mailutils-config |
@node mailutils-config |
3113 |
@section mailutils-config --- Get the information about the mailutils build. |
@section mailutils-config --- Get the information about the Mailutils build. |
3114 |
@pindex mailutils-config |
@pindex mailutils-config |
3115 |
|
|
3116 |
This program is designed for developers wishing to link their programs |
This program is designed for developers wishing to link their programs |
3117 |
against libmailbox. It allows to examine the particulars of the |
against libmailbox. It allows to examine the particulars of the |
3118 |
current build of mailutils and to get the command line parameters |
current build of Mailutils and to get the command line parameters |
3119 |
necessary for compiling and linking an application with mailutils |
necessary for compiling and linking an application with Mailutils |
3120 |
libraries. |
libraries. |
3121 |
|
|
3122 |
@menu |
@menu |
3131 |
When invoked with the option @option{--compile}, or its short form |
When invoked with the option @option{--compile}, or its short form |
3132 |
@option{-c}, @command{mailutils-config} prints the flags |
@option{-c}, @command{mailutils-config} prints the flags |
3133 |
that must be given to the compiler for compiling the program using |
that must be given to the compiler for compiling the program using |
3134 |
mailutils functions. An example usage: |
Mailutils functions. An example usage: |
3135 |
|
|
3136 |
@example |
@example |
3137 |
cc -omyprog.o `mailutils-config --compile` myprog.c |
cc -omyprog.o `mailutils-config --compile` myprog.c |
3142 |
|
|
3143 |
The @option{--link}, or its short form @option{-l} prints to the |
The @option{--link}, or its short form @option{-l} prints to the |
3144 |
standard output the loader flags necessary to link a program against |
standard output the loader flags necessary to link a program against |
3145 |
mailutils libraries. |
Mailutils libraries. |
3146 |
|
|
3147 |
When invoked without arguments, it produces the flags necessary to |
When invoked without arguments, it produces the flags necessary to |
3148 |
link against the basic library of mailutils: @file{libmailbox}. |
link against the basic library of Mailutils: @file{libmailbox}. |
3149 |
Up to two arguments may be given that alter this behavior. These |
Up to two arguments may be given that alter this behavior. These |
3150 |
are: |
are: |
3151 |
|
|
3169 |
@subsection Obtaining General Build Information |
@subsection Obtaining General Build Information |
3170 |
|
|
3171 |
The @option{--info}, or @option{-i} retrieves the options (flags) used |
The @option{--info}, or @option{-i} retrieves the options (flags) used |
3172 |
when building mailutils. It may be used with or without |
when building Mailutils. It may be used with or without |
3173 |
arguments. |
arguments. |
3174 |
|
|
3175 |
When used without arguments, it prints the list of all |
When used without arguments, it prints the list of all |
3242 |
@table @asis |
@table @asis |
3243 |
@c @item VERSION=" VERSION, |
@c @item VERSION=" VERSION, |
3244 |
@item USE_LIBPAM |
@item USE_LIBPAM |
3245 |
The mailutils uses @sc{pam} libraries. |
The Mailutils uses @sc{pam} libraries. |
3246 |
|
|
3247 |
@item HAVE_LIBLTDL |
@item HAVE_LIBLTDL |
3248 |
The @sc{gnu} wrapper library @file{libltdl} is present and is used |
The @sc{gnu} wrapper library @file{libltdl} is present and is used |
3249 |
by mailutils. @xref{Using libltdl,,,libtool,Using libltdl}, for |
by Mailutils. @xref{Using libltdl,,,libtool,Using libltdl}, for |
3250 |
more information on @file{libltdl} library. |
more information on @file{libltdl} library. |
3251 |
|
|
3252 |
|
|