README revision 302408
197049SpeterThis directory contains the source files for mail.local.
297049Speter
397049SpeterThis is not intended to be used on *stock* System V derived systems such as
497049SpeterSolaris or HP-UX, since they use a totally different approach to mailboxes
597049Speter(essentially, they have a set-group-ID program rather than set-user-ID, and
697049Speterthey rely on the ability to "give away" files to do their work).
797049Speter
897049SpeterIf you choose to run *this* mail.local on these systems then you may also
997049Speterneed to replace the existing MUAs, as well as IMAP and POP servers, with
1097049Speterones that are compatible with the BSD interface.  You have been warned!
1197049Speter
1297049SpeterFor systems with maillock() support, compile with -DMAILLOCK and link with
1397049Speter-lmail to use the maillock() routines.  This can be accomplished in your
1497049Spetersite.config.m4 file with:
1597049Speter
1697049Speter	APPENDDEF(`conf_mail_local_ENVDEF', `-DMAILLOCK')
1797049Speter	APPENDDEF(`conf_mail_local_LIBS', `-lmail')
1897049Speter
1997049SpeterDefining CONTENTLENGTH (-DCONTENTLENGTH) will build a mail.local which
2097049Speteroutputs a Content-Length: header.  Solaris 2.3 and later will automatically
2197049Speterinclude Content-Length: support.  This can be accomplished in your
2297049Spetersite.config.m4 file with:
2397049Speter
2497049Speter	APPENDDEF(`conf_mail_local_ENVDEF', `-DCONTENTLENGTH')
2597049Speter
2697049SpeterDefining MAILGID to a 'gid' (-DMAILGID=6) will cause mailboxes to be
2797049Speterwritten group writable and with group 'gid'.  This can be accomplished in
2897049Speteryour site.config.m4 file with:
2997049Speter
3097049Speter	APPENDDEF(`conf_mail_local_ENVDEF', `-DMAILGID=6')
3197049Speter
3297049Spetermail.local will not be installed set-user-ID root. To use it as local
3397049Speterdelivery agent without LMTP mode, use:
3497049Speter
3597049Speter	 MODIFY_MAILER_FLAGS(`LOCAL', `+S')
3697049Speter
3797049Speterin the .mc file.
3897049Speter
3997049SpeterDefining HASHSPOOL (-DHASHSPOOL) will build a mail.local which supports
4097049Speterdelivering to subdirectories of the mail spool, based on a hash of the
4197049Speterusername (i.e., a hash depth of 2 and a username of "user" will result in
4297049Speter/var/spool/mail/u/s/user).  If the hash depth is greater than the length
4397049Speterof the username, "_" will be used.  The necessary subdirectories must
4497049Speterexist; mail.local will not create them.  Use the "-H" option to set the
4597049Speterhash type and depth (like "-H u2" for a username hash two levels deep).
4697049Speter
4797049SpeterThe HASHSPOOL option also adds two other options: "-p path" to specify
4897049Speteran alternate mail spool path (i.e., "-p /local/mail") and "-n" to specify
4997049Speterthat mail.local should not strip the @domain part of recipient addresses
5097049Speterin LMTP mode.
5197049Speter
5297049SpeterIn addition to HASHSPOOL, defining HASHSPOOLMD5 and linking against
5397049Speterlibcrypto from OpenSSL like:
5497049Speter
5597049Speter	APPENDDEF(`conf_mail_local_ENVDEF', `-DHASHSPOOL -DHASHSPOOLMD5')
5697049Speter	APPENDDEF(`conf_mail_local_LIBS', `-lcrypto')
5797049Speter
5897049Speterwill offer an alternate hash, using a base64 encoding (changing / to _)
5997049Speterof an MD5 hash of the username.  This results in a more balanced
6097049Spetersubdirectory tree.  The subdirectories will be named with A-Z, a-z, 0-9,
6197049Speter+, and _.  The hash type is "m", so use "-H m3" to get a three level MD5
6297049Speterbased hash.
6397049Speter
6497049Speter$Revision: 8.11 $, Last updated $Date: 2003-10-20 20:19:13 $
6597049Speter