Sendmail Operation Guide

Compiling sendmail

All sendmail(1M) source is in the src subdirectory. To compile sendmail, cd into the src directory and enter:

./Build

This leaves the binary in an appropriately named subdirectory, for example, obj.BSD-OS.2.1.i386. It works for multiple object versions compiled out of the same directory.

Modifying the makefile

sendmail supports two different formats for the local (on disk) version of databases, notably the aliases database. At least one of these should be defined if at all possible.


NDBM
The ``new DBM'' format, available on nearly all systems around today. This was the preferred format prior to 4.4BSD. It allows such complex things as multiple databases and closing a currently open database.

NEWDB
The Berkeley DB package. If you have this, use it. It allows long records, multiple open databases, real in-memory caching, and so forth. You can define this in conjunction with NDBM; if you do, old alias databases are read, but when a new database is created it will be in NEWDB format. If you have NEWDB, NDBM, and NIS defined, and if the alias file name includes the substring /yp/, sendmail will create both new and old versions of the alias file during a newaliases(1M) command. This is required because the Sun NIS/YP system reads the DBM version of the alias file.
If neither of these are defined, sendmail reads the alias file into memory on every invocation. This can be slow and should be avoided. There are also several methods for remote database access:

NIS
Sun's Network Information Services (formerly YP).

NISPLUS
Sun's NIS+ services.

NETINFO
NeXT's NetInfo service.

HESIOD
Hesiod service (from Athena).
Other compilation flags are set in <conf.h> and should be predefined for you unless you are porting to a new environment.

Compilation and installation

After making the local system configuration described above, you should be able to compile and install the system. The script Build is the best approach on most systems:

./Build

This will use uname(1) to create a custom Makefile for your environment.

If you are installing in the standard places, you should be able to install using:

./Build install

This should install the binary in /usr/lib and create links from /usr/bin/newaliases and /usr/bin/mailq to /usr/lib/sendmail. On 4.4BSD systems, it will also format and install manual pages.


© 2000 The Santa Cruz Operation, Inc. All rights reserved.