xref: /freebsd/contrib/sendmail/mail.local/README (revision 39ee7a7a6bdd1557b1c3532abf60d139798ac88b)
1This directory contains the source files for mail.local.
2
3This is not intended to be used on *stock* System V derived systems such as
4Solaris or HP-UX, since they use a totally different approach to mailboxes
5(essentially, they have a set-group-ID program rather than set-user-ID, and
6they rely on the ability to "give away" files to do their work).
7
8If you choose to run *this* mail.local on these systems then you may also
9need to replace the existing MUAs, as well as IMAP and POP servers, with
10ones that are compatible with the BSD interface.  You have been warned!
11
12For systems with maillock() support, compile with -DMAILLOCK and link with
13-lmail to use the maillock() routines.  This can be accomplished in your
14site.config.m4 file with:
15
16	APPENDDEF(`conf_mail_local_ENVDEF', `-DMAILLOCK')
17	APPENDDEF(`conf_mail_local_LIBS', `-lmail')
18
19Defining CONTENTLENGTH (-DCONTENTLENGTH) will build a mail.local which
20outputs a Content-Length: header.  Solaris 2.3 and later will automatically
21include Content-Length: support.  This can be accomplished in your
22site.config.m4 file with:
23
24	APPENDDEF(`conf_mail_local_ENVDEF', `-DCONTENTLENGTH')
25
26Defining MAILGID to a 'gid' (-DMAILGID=6) will cause mailboxes to be
27written group writable and with group 'gid'.  This can be accomplished in
28your site.config.m4 file with:
29
30	APPENDDEF(`conf_mail_local_ENVDEF', `-DMAILGID=6')
31
32mail.local will not be installed set-user-ID root. To use it as local
33delivery agent without LMTP mode, use:
34
35	 MODIFY_MAILER_FLAGS(`LOCAL', `+S')
36
37in the .mc file.
38
39Defining HASHSPOOL (-DHASHSPOOL) will build a mail.local which supports
40delivering to subdirectories of the mail spool, based on a hash of the
41username (i.e., a hash depth of 2 and a username of "user" will result in
42/var/spool/mail/u/s/user).  If the hash depth is greater than the length
43of the username, "_" will be used.  The necessary subdirectories must
44exist; mail.local will not create them.  Use the "-H" option to set the
45hash type and depth (like "-H u2" for a username hash two levels deep).
46
47The HASHSPOOL option also adds two other options: "-p path" to specify
48an alternate mail spool path (i.e., "-p /local/mail") and "-n" to specify
49that mail.local should not strip the @domain part of recipient addresses
50in LMTP mode.
51
52In addition to HASHSPOOL, defining HASHSPOOLMD5 and linking against
53libcrypto from OpenSSL like:
54
55	APPENDDEF(`conf_mail_local_ENVDEF', `-DHASHSPOOL -DHASHSPOOLMD5')
56	APPENDDEF(`conf_mail_local_LIBS', `-lcrypto')
57
58will offer an alternate hash, using a base64 encoding (changing / to _)
59of an MD5 hash of the username.  This results in a more balanced
60subdirectory tree.  The subdirectories will be named with A-Z, a-z, 0-9,
61+, and _.  The hash type is "m", so use "-H m3" to get a three level MD5
62based hash.
63
64$Revision: 8.11 $, Last updated $Date: 2003-10-20 20:19:13 $
65