TCLUG Archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [TCLUG:16693] Sendmail 8.10.1



Eric F Crist wrote:
> 
> I need help setting up the new version of sendmail, 8.10.1, as you may have
> guessed from the Subject line...
> 
> I've looked at all of the documentation (README's and INSTALL's) and it's all
> still cryptic to me, as I've only begun using linux (October).
> 
> Here are a few questions:
> 
> 1) In the sendmail-8.10.1/devtools/Site, what are the .m4 files?
> 2) The README/INSTALL files mention to use sh Build to config/install the new
> sendmail daemon.  I don't understand how to enter configuration criteria.

With sendmail there is no "./configure" script that you can pass flags
to change settings.  Sendmail uses m4 instead of autoconf to generate
Makefiles.  When compiling, you should create a
devtools/Site/site.config.m4 file if you want to add libraries, install
the files in a different location, etc.  When you run Build, it will
automatically include site.config.m4 and use your changes.  The file
devtools/README has the complete list of variables and defines.

Here's an example of a site.config.m4 I use on Solaris for adding SASL
support (for SMTP AUTH) and the Berkeley DB libraries.

APPENDDEF(`confENVDEF', `-DSASL')
APPENDDEF(`conf_sendmail_LIBS', `-lsasl')
APPENDDEF(`confLIBDIRS', `-L/usr/local/BerkeleyDB/lib')
APPENDDEF(`confINCDIRS', `-I/usr/local/BerkeleyDB/include')

(If sendmail used configure, this would probably look "./configure
--enable-sasl --libdir=/usr/local/BerkeleyDB/lib
--includedir=/usr/local/BerkeleyDB/include".)

The cf directory has the m4 files for making a sendmail.cf file. 
cf/README explains what to do.  Basically, you should copy the example
file in cf/cf for your OS to a new name, and modify the DOMAIN() define
so it that points to a file in cf/domain that you create.

Here's an example, cf/cf/test.mc


VERSIONID(`@(#)test.mc       8.10.0 (rmb) 03/15/2000')
OSTYPE(solaris2)dnl
DOMAIN(test)dnl
MAILER(local)dnl
MAILER(smtp)dnl


The domain file includes the specific information for your config file. 
I've included a cf/domain/test.m4 file that's probably more complex than
anything you'd need (and it doesn't touch on rulesets), but it can give
you an idea of what it should look like.

After making these files, go to cf/cf and run "m4 ../m4/cf.m4 test.mc >
sendmail.cf" to create your config.


VERSIONID(`@(#)test.m4   8.10.0 (test) 03/08/2000')
define(`MAIL_SETTINGS_DIR', `/etc/mail-ssl/')dnl
define(`confFORWARD_PATH',
`$z/.forward.$w+$h:$z/.forward+$h:$z/.forward.$w:$z/.forward')dnl
define(`confCHECK_ALIASES', `true')dnl
define(`confDOUBLE_BOUNCE_ADDRESS', postmaster)dnl
define(`confERROR_MODE', `mail')dnl
define(`confMAX_MESSAGE_SIZE', `3000000')dnl
define(`confPRIVACY_FLAGS', `goaway, noetrn, noreceipts')dnl
define(`QUEUE_SORT_ORDER', `host')dnl
define(`confTO_IDENT', `0s')dnl
define(`confTO_QUEUERETURN', `2d')dnl
define(`QUEUE_DIR', `/var/mail/mqueue-ssl')dnl
define(`confCONTROL_SOCKET_NAME', `/var/mail/mqueue-ssl/.control')dnl
GENERICS_DOMAIN_FILE(`/etc/mail-ssl/genericsdomains')dnl
FEATURE(`no_default_msa')dnl
DAEMON_OPTIONS(`Port=10000, Name=MTA, M=a')dnl
FEATURE(redirect)dnl
FEATURE(`use_cw_file')dnl
divert(-1)
# The text version should be access, domaintable, etc.
# Use makemap to create the hash db.
divert(0)
FEATURE(`access_db', `hash /etc/mail-ssl/access.db')dnl
FEATURE(`domaintable', `hash /etc/mail-ssl/domaintable.db')dnl
FEATURE(`mailertable', `hash /etc/mail-ssl/mailertable.db')dnl
FEATURE(`genericstable', `hash /etc/mail-ssl/genericstable.db')dnl
FEATURE(`virtusertable', `hash /etc/mail-ssl/virtusertable.db')dnl
divert(-1)
# SASL config
divert(0)
define(`confAUTH_MECHANISMS', `CRAM-MD5')dnl
TRUST_AUTH_MECH(`CRAM-MD5')dnl


I highly recommend reading the operations guide (doc/op/op.ps) for more
info.  Also, buy the O'Reilly Sendmail book if you can.

If you don't have your heart set on using sendmail and don't need
features like SMTP AUTH, I'd recommend Postfix
(http://www.postfix.org).  It's a lot easier to configure and maintain.

Rob