summaryrefslogtreecommitdiff
path: root/README
blob: ff4a322dedd631a48f4bc52b4b5966afb9af1caa (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
This is the GNU Mailutils package
=================================

* Introduction
==============

GNU Mailutils is a rich and powerful protocol-independent mail
framework.  It contains a series of useful mail libraries, clients,
and servers.  These are the primary mail utilities for the GNU system.
The central library is capable of handling electronic mail in various
mailbox formats and protocols, both local and remote.  Specifically,
this project contains a POP3 server, an IMAP4 server, and a Sieve mail
filter. It also provides a POSIX `mailx' client, and a collection of
other handy tools.

The GNU Mailutils libraries supply an ample set of primitives for
handling electronic mail in programs written in C, C++, Python or
Scheme.

At the core of Mailutils is libmailutils, a library which provides
universal access to various mailboxes and protocols: UNIX mailbox,
Maildir, MH, POP3, IMAP4, Sendmail, SMTP.  Mailutils offers functions
for almost any mail-related task, such as parsing of messages, email
addresses and URLs, handling MIME messages, listing mail folders,
mailcap facilities, extensible Sieve filtering, access control lists.
It supports various modern data security and authentication
techniques: TLS encryption, SASL and GSSAPI, to name a few.
The framework is able to work with a wide variety of authorization
databases, ranging from traditional system password database up to
RADIUS, SQL and LDAP.

The utilities provided by Mailutils include imap4d and pop3d mail
servers, mail reporting utility comsatd, general-purpose mail delivery
agent maidag, mail filtering program sieve, and an implementation of
MH message handling system.

All utilities share the same subset of command line options and use
a unified configuration mechanism, which allows to easily configure
the package as a whole.

This software is part of the GNU Project and is copyrighted by the
Free Software Foundation.  All libraries are distributed under the
terms of the Lesser GNU Public License.  The documentation is licensed
under the GNU FDL, and everything else is licensed under the GNU GPL.
The complete texts of the corresponding licences are included in the
files COPYING.LESSER, COPYING and doc/texinfo/COPYING.DOC.

* Why use this package?
=======================

This package started off to try and handle large mailbox files more
gracefully then current POP3 servers did. While it handles this task,
it also allows you to support a variety of different mailbox formats
without any real effort on your part. Also, if a new format is added
at a later date, your program will support that new format
automatically as soon as it is compiled against the new library.

This package is also released as part of Debian, so you should expect
it to compile cleanly on all the platforms supported there.

* How to install
================

Please see the INSTALL file in this directory for the generic instructions
on how to use configure. The following short summary describes the
mailutils-specific configuration options:

    --enable-debug

	Compile Mailutils with debugging support. This disables
	compiler optimizations and adds debugging information to the
	binaries. 

    --disable-pam

	Do not build PAM support. By default configure will build PAM
	support if the host system supports it. Use this option to
	suppress this behaviour.

    --disable-pthread

	Do not build thread-safe libraries.

    --without-fribidi

        Do not include fribidi support, even if libfribidi is present.
		
    --with-sql=MODLIST

        Enable support for authentication using given SQL modules.
        MODLIST is a colon-separated list of SQL modules to use.
        Available modules are 'mysql', 'postgres' and 'odbc'. E.g.,
        to enable all modules: 

		--with-sql=mysql:postgres:odbc


        Note that depending on how your SQL systems are installed,
        this may require adding appropriate directories to the library
        and include paths, e.g.


	./configure LDFLAGS='-L/usr/local/mysql/lib -L/usr/local/pgsql/lib' \
                    CPPFLAGS='-I/usr/local/mysql/include \
                             -I/usr/local/pgsql/include' 
    		    --with-sql=mysql:postgres


    --with-mysql

        Equivalent to --with-sql=mysql

        Note that depending on how your MySQL system is installed, this
        may require adding appropriate directories to the library and
        include paths, e.g.:

	./configure LDFLAGS='-L/usr/local/mysql/lib' \
                    CPPFLAGS='-I/usr/local/mysql/include' --with-mysql

    --with-postgres

        Equivalent to --with-sql=postgres 

	You may have to explicitly specify LIBS and CPPFLAGS (see
	above). 

    --with-odbc[={odbc|iodbc}]

        Without arguments or with 'odbc' as its argument it is
        equivalent to --with-sql=odbc.

	--with-odbc=iodbc enables ODBC support via libiodbc.

	You may have to explicitly specify LIBS and CPPFLAGS (see
	above). 

    --with-mh-bindir=DIR

        By default the MH binaries are installed in
        ${exec_prefix}/bin/mu-mh. To change this, use --with-mh-bindir
        option. If DIR starts with '/' it is taken as an absolute
        path specification, otherwise ${prefix} is prepended to it. 

    --with-virtual-pwddir=DIR

	Use DIR instead of $sysconfdir/domain as the location of
	virtual mail domain database. This option is ignored if
        --disable-virtual-domains is specified.

    --without-readline

	Build 'mail' without readline support.

    --without-unistring

        Build 'imap4d' without libunistring. Note, that libunistring
        is necessary for SEARCH command to properly work on multibyte
	string. The use of this option is therefore discouraged. It
	is here mainly for development and debugging purposes.

    --without-gnutls

	Disable the TLS/SSL encryption via GnuTLS (a Transport Layer
	Security Library) in IMAP4/POP3 daemons and utilities.

    --without-gsasl

	Disable GNU SASL support.

	GSASL is used by several Mailutils components (notably pop3d
	and imap4d as well as their client counterparts) for
	authentification.  It is enabled by default if configure
	detects the presense of GNU SASL version 0.2.3 or later.

    --with-gssapi

	Enable GSSAPI authentication. For this to work, you will have
	to have Kerberos V installed on your system.

    --without-python

	Do not build Python interface library.

    --without-guile

	Do not build Guile interface library.

    --with-guile-site-dir[=DIR]

        Specify the directory to install guile modules to. By default
        they are installed in

	  $(prefix)/share/mailutils/$(VERSION)/guile.

	The option --with-guile-site-dir used without argument instructs
	configure script to install modules to the site-wide Guile
	directory, where it is easier to find them. This directory is
	defined as $(guile_pkgdatadir)/site where guile_pkgdatadir is
	the Guile package data directory as returned by `guile-config
	info pkgdatadir'.

	Otherwise, if an argument to the option is given, it specifies
	the absolute file name of the installation directory for Guile
	modules. 
	
    --with-mail-rc=FILE

	Set the location of the system-wide configuration file for mail
	utility. FILE must be an absolute filename specification.
	Default is $sysconfdir/mail.rc

    --with-mail-spool=PATH

	Override the location of the mailspool. The default value
	depends on the system. Usually it is either /var/spool/mail
	or /var/mail. PATH is either an absolute directory name, or a
	valid `mbox' URL in the form:

		mbox:path;type=TYPE;param=N;user=

	This method allows you to use indexed mailspools. For servers
	with a really big number of users this may provide a
	significant speedup in opening the mailbox. 

	TYPE is one of:
		hash       --  The user's mailbox is kept in a subdirectory
			       whose name is determined by hashing first
			       N characters of the user name. There are
			       256 subdirectories named from 00 through FF.
		index	   --  The user's mailbox is located PARAM directories
                               down the `path'. The directories are named
                               after the first N letters of a login name.
			       For example, when N=2 the mailbox for
			       user `smith' is `/var/spool/mail/s/m/smith'.
	        rev-index  --  Same as above, except that the last letters
			       are used, thus the mailbox for `smith' will
	                       be /var/spool/mail/h/t/smith. This may provide
	                       a better average distribution than the `index'
			       method.
	
    --with-log-facility=facility

	Enable logging to the given syslog facility. Default is `mail'.

    --disable-nls

        Do not use Native Language Support

The following options enable DBM support in Mailutils. DBM support is
necessary if you wish to use APOP authentication in POP3 daemon or to
use DBM-based mail box quotas with maildag.

    --with-gdbm

	Use GNU DBM

    --with-berkeley-db[=ARG]

	Use Berkeley DB. If ARG is not specified, configure will
	attempt to autodetect the database version to use. Unless ARG
	begins with a digit, it is taken as a library name, without
	the `lib' prefix and library type suffix, so that specifying

	    --with-berkeley-db=db-3.1

	instructs configure to use library libdb-3.1.so (or
	libdb-3.1.a).
	Otherwise, if ARG begins with a digit, it is understood as a
	library version number to link to. In this case configure
	assumes a Slackware-like installation layout. Thus, using

	    --with-berkeley-db=3.1

	tells configure to use library libdb-3.1.so (or libdb-3.1.a)
	and header file /usr/include/db31/db.h    

    --with-ndbm

	Use NDBM

    --with-tokyocabinet

	Use Tokyo Cabinet DBM

    --with-kyotocabinet

	Use Kyoto Cabinet DBM


Use following options to disable support for particular protocols or
features:

    --disable-imap        Disables IMAP protocol support. 
    --disable-pop         Disables POP protocol support. 
    --disable-smtp        Disables support for SMTP mailer.
    --disable-sendmail    Disables support for `Sendmail' mailer.
    --disable-mh          Disables support for MH mailbox format.  
    --disable-virtual-domains 
                          Disables support for authentication using
                          virtual mail domains.

Mailutils is shipped with a set of various utilities, which are built
by default.  These utilities fall into two groups:

a) Server utilities: pop3d, imap4d and comsat.
b) Client utilities: frm, maidag, mail, sieve, messages, readmsg,
   dotlock, movemail mimeview, and MH utilities.

The following options disable each group:
   
    --disable-build-servers    do not build server utilities
    --disable-build-clients    do not build client utilities
    	       
Each particular program can be disabled using its individual
`--disable-build' option:

    --disable-build-frm        do not build frm
    --disable-build-pop3d      do not build pop3d
    --disable-build-imap4d     do not build imap4d
    --disable-build-comsat     do not build comsat
    --disable-build-maidag     do not build maidag
    --disable-build-mail       do not build mail
    --disable-build-sieve      do not build sieve
    --disable-build-guimb      do not build guimb
    --disable-build-messages   do not build messages
    --disable-build-readmsg    do not build readmsg
    --disable-build-dotlock    do not build dotlock
    --disable-build-movemail   do not build movemail
    --disable-build-mimeview   do not build mimeview
    --disable-build-mh         do not build MH utilities

Several environment variables affect the configuration. Currently,
the only mailutils-specific variable is DEFAULT_CUPS_CONFDIR. It
sets the location of CUPS (Common UNIX Printing System) configuration
directory, which is needed for `mimeview' utility. By default, this
location is $sysconfdir/cups. On most sites, however, it may be
reasonable to set it to /etc/cups, e.g.:

	./configure DEFAULT_CUPS_CONFDIR=/etc/cups ...


* Where to report BUGS
======================

Please report any bugs to <bug-mailutils@gnu.org>. We encourage
sysadmins who will be using this package to subscribe to this list by
sending an email to <bug-mailutils-request@gnu.org> with the word
`subscribe' in the body of the message. Another way to subscribe is
by visiting http://mail.gnu.org/mailman/listinfo/bug-mailutils.

* Copyright information:

Copyright (C) 2002-2019 Free Software Foundation, Inc.

   Permission is granted to anyone to make or distribute verbatim
   copies of this document as received, in any medium, provided that
   the copyright notice and this permission notice are preserved,
   thus giving the recipient permission to redistribute in turn.

   Permission is granted to distribute modified versions
   of this document, or of portions of it,
   under the above conditions, provided also that they
   carry prominent notices stating who last changed them.


Local Variables:
mode: outline
paragraph-separate: "[ 	]*$"
version-control: never
End:

Return to:

Send suggestions and report system problems to the System administrator.