DISCLAIMER: This documentation is under modification.
Sendmail is a trademark of Sendmail, Inc.
This is usually
on 4.4BSD and newer systems;
many systems install it in
I understand it is in /usr/ucblib
on System V Release 4.
Some vendors ship them owned by bin;
this creates a security hole that is not actually related to
sendmail. Other important directories that should have restrictive ownerships
and permissions are
/bin, /usr/bin, /etc, /etc/mail, /usr/etc, /lib, and /usr/lib.
Actually, the pathname varies depending on the operating system;
/etc/mail is the preferred directory.
Some older systems install it in
/usr/lib/sendmail.cf, and I've also seen it in
/usr/ucblib. If you want to move this file,
to the flags passed to the C compiler.
Moving this file is not recommended:
other programs and scripts know of this location.
The system libraries can reference other files;
in particular, system library subroutines that
sendmail calls probably reference
Except on Ultrix,
which does not support facilities in the syslog.
This format may vary slightly if your vendor has changed
This is the usual value of the
it can, of course, go anywhere you like in your filesystem.
HP-UX 10 has service switch support,
but since the APIs are apparently not available in the libraries
sendmail does not use the native service switch in this release.
Actually, any mailer that has the `A' mailer flag set
will permit aliasing;
this is normally limited to the local mailer.
AliasWait option is required in the configuration
for this action to occur.
This should normally be specified.
That is, it sets its effective uid to the real uid;
thus, if you are executing as root,
as from root's crontab file or during system startup
the root permissions will still be honored.
On some systems the default is zero to turn the protocol off entirely.
This is actually
to $(host hostname$).
In particular, a
$: default can be used.
You may want to use it for special
per user extensions.
For example, in the address
+foo part is not part of the user name,
and is passed to the local mailer for local use.
As of version 8.6,
all of these macros have reasonable defaults.
Previous versions required that they be defined.
For example, on some systems
gethostname might return
foo which would be mapped to
Older versions of sendmail didn't pre-define
$j at all, so up until 8.6,
always had to define
g option has been combined into the
noreceipts flag turns off support for RFC 1891
(Delivery Status Notification).
When running as a daemon,
it changes to this user after accepting a connection
but before reading any
And of course, vendors are encouraged to add themselves
to the list of recognized vendors by editing the routine
conf.c. Please send e-mail to sendmail@Sendmail.ORG
to register your vendor dialect.
These instructions are known to be incomplete.
Other features are available which provide similar functionality,
e.g., virtual hosting and mapping local addresses into a
generic form as explained in cf/README.
Actually, this is no longer true in SMTP;
this information is contained in the envelope.
The older ARPANET protocols did not completely distinguish
envelope from header.
If you do, please send updates to
This example is contrived and probably inaccurate for your environment.
Glance over it to get an idea;
nothing can replace looking at what your own system generates.