Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ sendmail(8) — AIX PS/2 1.2.1

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

bellmail

mail, Mail

uux



sendmail, mailq, newaliases(8,C)               sendmail, mailq, newaliases(8,C)



-------------------------------------------------------------------------------
sendmail, mailq, newaliases



PURPOSE

Routes mail for local or network delivery.

SYNTAX


+---------------------+   +----------- default 1------------+
| /usr/lib/sendmail   |---| +---------+   +-------------+   |--- address ---|
| /usr/lib/mailq      |   +-| one of  |---| -C file     |---+ ^           |
| /usr/lib/newaliases |     | +-----+ | ^ | -d X        | |   +-----------+
+---------------------+     +-| -ba |-+ | | -f name     | |
                              | -bd |   | | -F fullname | |
                              | -bi |   | | -h N        | |
                              | -bm |   | | -n          | |
                              | -bp |   | | -o x[value] | |
                              | -bs |   | | -q [time]   | |
                              | -bt |   | | -r name     | |
                              | -bv |   | | -t          | |
                              | -bz |   | | -v          | |
                              +-----+   | +-------------+ |
                                        +-----------------+

-----------------
1 default = -bm for sendmail
            -bp for mailq
            -bi for newaliases


Warning: See restrictions, Chapter 18, AIX Programming Tools and Interfaces.

DESCRIPTION

The sendmail command receives formatted text messages and routes the message to
one or more other users on the local system, or if connected to a network, to
users on other systems.  The program translates the format of message heading
information to match the requirements of the destination system.  It determines
which network to use based on the syntax and content of the addresses.

The program can deliver messages to:

  o Users on the local system
  o Users connected to the local system using the TCP/IP protocol
  o Users connected to the local system using the uucp protocol.

The sendmail command operates mainly as a background, mail-routing program.
Other programs, such as Mail and the message handler routines, provide user



Processed Nov. 8, 1990   sendmail, mailq, newaliases(8,C)                     1





sendmail, mailq, newaliases(8,C)               sendmail, mailq, newaliases(8,C)



interfaces for generating and receiving mail that sendmail handles.  However,
if you enter the sendmail command with no flags, it reads standard input for
the message text until it receives a Ctrl-D or a line with only a single
period, designating the end of the message.  Then it sends a copy of the
message to all addresses listed.  For example, the following input at the
command line sends the message "This is a test message" to the mail box for
user "george" on the local system:

  $ /usr/lib/sendmail george
  This is a test message
  .
  $

The sendmail command can be run to service TCP/IP mail delivery either as a
daemon (-bd flag) or automatically by the inetd daemon (-bn flag specified in
the file /etc/inetd.conf).  If multiple sendmail commands are running at the
same time, only one of these may be servicing TCP/IP mail delivery; that is, at
most one sendmail process using either the -bd or -bn flag may be run
concurrently.  The choice of whether to run sendmail from inetd (the default
when TCP/IP is installed) or as a daemon depends on the amount of TCP/IP mail
traffic you expect.  If the load is heavy, running the sendmail command as a
daemon avoids the start-up costs associated with multiple invocations by inetd.
To disable sendmail being run by inetd, comment out the smtp entry in
/etc/inetd.conf.

The sendmail command uses a configuration file (/usr/adm/sendmail/sendmail.cf
by default) to set many operational parameters and to determine how the program
parses addresses.  This file is a text file that you can edit.  However,
sendmail uses a frozen form of this file (/usr/adm/sendmail/sendmail.fc).  For
any changes made to this file to be effective, you must build a new copy of the
frozen configuration file by running sendmail with the -bz flag.  This must be
done on each CPU separately.

The sendmail command also allows you to define aliases to use when addressing
mail handled by the local sendmail command.  Aliases are alternate names that
can be used in place of elaborate network addresses.  You can also use aliases
to build distribution lists.  Define aliases in /usr/adm/sendmail/aliases.
This file is a text file that you can edit.  However, sendmail uses a data base
version of this file that is kept in the directory.  For any changes made to
the aliases file to be effective, you must build a new alias data base by
running sendmail with the -bi flag.  If the sendmail daemon is running, you
must also stop that process and start the daemon again before it recognizes the
new alias data base file.  Normally the sender of a message is not included
when sendmail expands an alias address.  For example, if "amy" sends a message
to alias "D998" and she is defined as a member of that alias, sendmail does not
send a copy of the message to "amy".

Every system must have a user or user alias designated postmaster.  Assign this
alias in the file /usr/adm/sendmail/aliases.  Unless you change the entry in
this file, this alias is assigned to "root".  This alias allows other users
outside your system to send mail to a known ID (for example "postmaster") to




Processed Nov. 8, 1990   sendmail, mailq, newaliases(8,C)                     2





sendmail, mailq, newaliases(8,C)               sendmail, mailq, newaliases(8,C)



get information about mailing to users on your system.  Also, users on your
system can send problem notifications to this ID.

Two additional commands are links to sendmail:

/usr/lib/mailq        Prints the contents of the mail queue.  This command is
                      the same as running sendmail with the -bp flag.
/usr/lib/newaliases   Builds a new copy of the alias data base from the file
                      /usr/adm/sendmail/aliases.  This command is the same as
                      running sendmail with the -bi flag.

Mail Addresses

Mail addresses are based on the domain address (Arpanet) protocol.  These
addresses have the following form:

user@host.domain

Note:  The configuration file provided with sendmail specifies that blanks in
       addresses be converted to periods before being transmitted.  This
       convention follows the Arpanet mail protocol as described in RFC822, but
       does not match the Arpanet mail protocol as described in RFC733
       (NIC41952).  You can change this setting by setting the OB option in the
       sendmail configuration file.

A domain is a logical grouping of systems that are connected together by
physical network links.  No direct relationship exists between the actual
physical interconnections and the way in which the systems are grouped in the
domain.  The domain name identifies a specific domain within a larger group of
domains.  The domain name has the format of a tree structure.  Each node (or
leaf) on the tree corresponds to a resource set, and each node can create and
contain new domains below it.  The actual domain name of a node is the path
from the root of the tree to that node.  Domain names do not correspond to
system names, host addresses, or any other type of information.

For example, if node "hera" is part of the domain "IBM", which is in turn a
subdomain of "COM", and a message is sent to "geo" at that address it is sent
to:

  geo@hera.IBM.COM

The message router (usually sendmail) must determine how to send the message to
its final destination.  If the router is at "hera", it delivers the message to
user "geo".  If the router is at another system within the "IBM" domain, it
corresponds with the name server for that domain to find out how to deliver the
message.  If the router is not a part of the "IBM" domain, but is in a domain
that is under the "COM" domain, it corresponds with the name server for the
"COM" domain to find out how to deliver the message.  The respective name
server returns a network address to the router.  That network address
determines the actual path that the message takes to its destination.





Processed Nov. 8, 1990   sendmail, mailq, newaliases(8,C)                     3





sendmail, mailq, newaliases(8,C)               sendmail, mailq, newaliases(8,C)



The domain address is read from right to left, with each domain in the address
separated from the next domain with a . (period).  This format does not imply
any routing.  Thus, although the example is specified as a "COM" address, the
message might actually travel by a different route if that were more convenient
or efficient.  At some sites, the message associated with the sample address
might go directly from the sender to node "hera" over a local area network.  At
other sites it might be sent over a uucp network or a combination of other
delivery methods.

Normally, the actual routing of a message is handled automatically.  However,
you can route the message manually through several specified hosts to get it to
its final destination.  An address using intermediate hosts, called a route
address, has the following form:

   @hosta,@hostb:user@hostc

This address specifies that the message should go first to the remote system
represented by hosta, then to the remote system represented by hostb, and
finally to the remote system represented by hostc.  This path is forced even if
there is a more efficient route to hostc.

In some cases the user may abbreviate the address rather than typing the entire
domain name.  In general, systems in the same domain do not need to use the
full domain name.  For example, a user on node "zeus.IBM.COM" can send a
message to "geo@hera.IBM.COM" by typing only "geo@hera", because they are in
the same local domain, "IBM.COM".

Other mail address formats exist that are used by other mail routing programs
(such as, uucp).  The mail routing program (sendmail) converts most of these
other formats to a format that the network routing system can use.  However, if
you use the domain address format, the routing program operates more
efficiently.

For example, if sendmail receives an address in the following format:

   @host:user

It converts it to the corresponding domain address format:

   user@host

Similarly, if sendmail receives an address in the following format:

   host!user

the mail routing program routes the message directly to the uucp command (part
of the Basic Networking Utilities (BNU)).  However, when sending mail via uucp,
you must include a route address that indicates which BNU host(s) to send the
message through to get to the final destination.






Processed Nov. 8, 1990   sendmail, mailq, newaliases(8,C)                     4





sendmail, mailq, newaliases(8,C)               sendmail, mailq, newaliases(8,C)



To route messages through the BNU network, use one of the following domain
address formats.  Your choice depends on the way in which the systems at your
site are connected:

  1. @system_name.domain_name:uucp-route!user-ID

    For example, the address:

      @zeus:hera!amy

    sends a message to user "amy" on uucp host "hera" by way of system "zeus".
    The address:

      @apollo.802:merlin!lgh

    sends a message to user "lgh" on uucp host "merlin" via system "apollo"
    under the local domain "802".

  2. uucp-route!user-ID@system_name.domain_name

    In this case, the address:

      merlin!arthur!amy@hera.802

    sends a message to user "amy". on system "hera" under domain "802". via the
    BNU link "merlin". through "arthur".

  3. system_name.domain_name:uucp-route!user-ID@system_ name.domain_name

    In this example, the address:

      @apollo.802:merlin!arthur!amy@hera.802

    sends a message to user "amy". on system "hera". under domain "802". that
    first goes through "apollo"., the gateway node for domain "802"., and then
    through the BNU link "merlin". through "arthur".  (Including "802" in this
    example is optional, since the two domain names are identical.)

  4. hosta!hostb!hostc!user

    This example is a purely uucp route address:

      zeus!hera!kronos!amy

    sends a message to "amy". on "kronos"., via the BNU link "zeus" through
    "hera".

  5. @hosta.UUCP:@hostb.UUCP:user@hostc

    This example, like the previous one, is a purely uucp route address:

      @zeus.UUCP:@hera.UUCP:amy@kronos.UUCP



Processed Nov. 8, 1990   sendmail, mailq, newaliases(8,C)                     5





sendmail, mailq, newaliases(8,C)               sendmail, mailq, newaliases(8,C)




    sends a message to "amy". on "kronos"., via the BNU link "zeus" through
    "hera".

Return Codes

The sendmail program returns an exit status code.  These exit codes are defined
in /usr/include/bsd/sysexits.h.  The following table summarizes the meanings of
these return codes:

Return Code           Meaning

EX_CANTCREAT          The sendmail program cannot create a file that the user
                      specified.

EX_DATAERR            The user's input data was not correct.

EX_DB                 A data base was inaccessible or was malformed and
                      unusable.

EX_IOERR              An error occurred during I/O.

EX_NOHOST             The sendmail program could not recognize the specified
                      host name.

EX_NOINPUT            The sendmail program either could not find, or could not
                      read, the specified input file.

EX_NOPERM             The user does not have the needed permissions to perform
                      the requested operation.

EX_NOUSER             The sendmail program could not recognize a specified user
                      ID.

EX_OK                 The sendmail program successfully completed the operation
                      for all addresses.

EX_OSERR              A temporary operating system error occurred.  An example
                      of such an error is "cannot fork because too many
                      processes are currently running".

EX_OSFILE             A system file error occurred.  For example, a system file
                      (such as /etc/passwd) does not exist, cannot be opened or
                      has another type of error preventing it from being used.

EX_PROTOCOL           The remote system returned something that was incorrect
                      during a protocol exchange.

EX_SOFTWARE           An internal software error occurred (including bad
                      arguments).





Processed Nov. 8, 1990   sendmail, mailq, newaliases(8,C)                     6





sendmail, mailq, newaliases(8,C)               sendmail, mailq, newaliases(8,C)



Return Code           Meaning

EX_TEMPFAIL           Temporary failure, for example, the sendmail program
                      could not create a connection.  Try the request again
                      later.

EX_UNAVAILABLE        A service or resource that sendmail needed was not
                      available.

EX_USAGE              The command syntax was not correct.


FLAGS

-ba           Starts sendmail in Arpanet mode.  All input lines to the program
              must end with a carriage return and a line feed (CR-LF).  The
              program generates messages with a CR-LF at the end.  The program
              looks at the "From". and the "Sender". fields to find the name of
              the sender.

-bd           Starts sendmail to run in the background as a TCP/IP mail routing
              daemon.  The smtp line in the /etc/inetd.conf file must be
              commented out before this option will work.

-bi           Builds the alias data base files from information defined in
              /usr/adm/sendmail/aliases.  Running sendmail with this flag is
              the same as running the command, /usr/lib/newaliases.

-bm           Delivers mail in the usual way.  This is the default.

-bn           Starts sendmail to be run by inetd.  This option should be
              specified only on the smtp entry in /etc/inetd.conf if TCP/IP
              mail delivery is to be serviced by inetd.

-bp           Prints a listing of the mail queue.  Running sendmail with this
              flag is the same as running the command, /usr/lib/mailq.

-bs           Uses the simple mail transfer protocol (SMTP) as described in
              RFC821.  This flag implies all of the operations of the -ba flag
              that are compatible with SMTP.

-bt           Starts sendmail in address test mode.  This mode allows you to
              enter addresses interactively and watch as sendmail displays the
              steps it takes to parse the address.  Use this mode for debugging
              the address parsing rules in a new configuration file.

-bv           Starts sendmail with a request to verify the user IDs provided in
              the address field of the command.  The program responds with a
              message telling which IDs can be resolved to a mailer program.
              It does not try to collect or deliver a message.  Use this mode
              to validate the format of user IDs, aliases or mailing lists.




Processed Nov. 8, 1990   sendmail, mailq, newaliases(8,C)                     7





sendmail, mailq, newaliases(8,C)               sendmail, mailq, newaliases(8,C)



-bz           Builds the frozen version of the configuration file from
              information in /usr/adm/sendmail/sendmail.cf.

-Cfile        Starts sendmail using an alternate configuration file specified
              by the file parameter.  Use this flag together with -bt to test a
              new configuration file before installing it as the running
              configuration file.

-dX           Sets debugging value to X.

-Ffullname    Sets the full name of the sender to be the string provided in the
              fullname parameter.

-fname        Sets the name of the from person (the sender of the mail).  This
              flag can be used only by those administrative user IDs designated
              in the configuration file with the T control line, or if your ID
              is the ID supplied in name.

-hN           Sets the hop count to N.  The hop count is the number of times
              that the message has been processed by a sendmail program (not
              just the local copy of sendmail).  The program increments the hop
              count every time the message is processed.  When it reaches a
              limit, the message is returned with an error message usually
              caused by alias looping.

-n            Does not alias.

-ox[value]    Sets option x.  If the option is a valued option, you must also
              specify value.  See the following table for possible options,
              values and their meanings.

-q[time]      Processes saved messages in the queue at the intervals specified
              by time.  If time is not specified, this flag processes the queue
              at once.  You can specify time as a tagged number using the tag s
              for seconds, m for minutes, h for hours, d for days, and w for
              weeks.  If the tag letter is omitted and just a number is
              specified, sendmail uses days as the unit of time.  For example,
              "-q2m" processes the queue every two minutes, but "-q2".
              processes the queue every two days.

-rname        An alternate and obsolete form of the -f flag.

-t            Reads the "To:"., "Cc:"., and "Bcc:". lines of the message header
              to determine where to send the message; deletes the "Bcc:". line
              before transmitting the message; and deletes any addresses in the
              argument list of the sendmail command.

-v            Starts sendmail in verbose mode.  The program displays messages
              regarding the status of transmission, the expansion of aliases
              and any errors that may occur during the sending of the message.





Processed Nov. 8, 1990   sendmail, mailq, newaliases(8,C)                     8





sendmail, mailq, newaliases(8,C)               sendmail, mailq, newaliases(8,C)



You can also set or remove a number of sendmail processing options.  Normally,
the person responsible for the mail system uses these options.  To set these
options, use the -o flag on the command line or the "O" control line in the
configuration file (sendmail.cf).

Option          Function

Afile           Uses the named file as an alternate alias file.

Bc              Sets the blank substitution character to the character
                specified in the parameter c.  The sendmail program replaces
                unquoted spaces in addresses with this character.  The supplied
                configuration file uses the period (.) for this character.

c               If an outgoing mailer program is specified in the configuration
                file as being expensive to use, this option causes sendmail to
                queue messages for that mailer program without sending them.
                The queue can be run later when costs are lowest or when the
                queue is large enough to send the messages efficiently.

dx              Sets the delivery mode to x.  Delivery modes are i for
                interactive (synchronous) delivery, b for background
                (asynchronous) delivery, and q for queue only (next time the
                queue is run) delivery.  The supplied configuration file uses a
                value of b.

ex              Sets error processing to mode x.  Valid modes are:

                m       Mails the error message to the user's mail box.
                w       Writes the error message to the terminal or mails it if
                        the user is not logged in.
                p       Displays the error message on the terminal (default).
                q       Throws away error message and returns the exit status
                        only.
                e       Mails the error message to the user's mail box, but
                        always exits with a zero exit status (normal return).

                If the text of the message is not mailed by modes m or w and if
                the sender is a local user, a copy of the message is appended
                to the file dead.letter in the sender's home directory.

f               Saves "From". lines at the front of messages.  These lines are
                normally discarded.

gN              Sets the default group ID to use when calling mailers to the
                value specified by N.

Hfile           Specifies the name of the SMTP help file
                (/usr/adm/sendmail/sendmail.hf by default).






Processed Nov. 8, 1990   sendmail, mailq, newaliases(8,C)                     9





sendmail, mailq, newaliases(8,C)               sendmail, mailq, newaliases(8,C)



Option          Function

i               Does not interpret a period (.) on a line by itself as a
                message terminator.

Ln              Specifies the log level to be the value supplied in the n
                parameter.  Valid levels and the activities that they represent
                are (each number includes the activities of all numbers of
                lesser value and adds the activity that it represents):

                Level   Activity Logged

                0       Prevents logging.
                1       Logs major problems only.
                2       Logs message collections and failed deliveries.
                3       Logs successful deliveries.
                4       Logs messages deferred (for example, because the host
                        is down).
                5       Logs messages that are placed in the queue (normal
                        event).
                6       Logs unusual but benign incidents (for example, trying
                        to process a locked file).
                9       Logs internal queue ID to external message ID mappings.
                        This can be useful for tracing a message as it travels
                        between several hosts.
                12      Logs messages that are of interest when debugging.
                16      Logs verbose information regarding the queue.


Mx value        Sets the macro x to value.  Use this option from the command
                line only (with the -o flag).

m               Sends to the sender (me) also, if the sender is in an alias
                expansion.  Normally, the sender does not receive a copy of the
                message.

Nnetname        Sets the name of the host network to netname.  The sendmail
                program compares the argument of an SMTP HELO command to
                hostname.netname (it gets the value of hostname from the
                kernel).  If these values do not match, it adds the
                hostname.netname string to the "Received:". lines in the
                message so that messages can be traced accurately.

o               This option indicates that this message may have old style
                headers.  Without this option, the message has new style
                headers (commas instead of spaces between addresses).  If this
                option is set, an adaptive algorithm correctly determines the
                header format in most cases.

Qdir            Sets the directory in which to queue messages to the directory
                specified by the dir parameter.  That directory must exist.




Processed Nov. 8, 1990   sendmail, mailq, newaliases(8,C)                    10





sendmail, mailq, newaliases(8,C)               sendmail, mailq, newaliases(8,C)



Option          Function

rtime           Sets the timeout for reads from a mailer program to the value
                specified by time.  If no timeout value is set, sendmail waits
                indefinitely for a mailer to respond.  The default value for
                this timeout is 5 minutes.

Sfile           Sets the mail statistics file to the file.  If this file
                exists, sendmail stores statistics about mail traffic in a data
                base format in this file.  Use the mailstats command to read
                the information in this file.  If the indicated file does not
                exist, no statistic information is saved.

s               Interactive mode delivers mail without going through the mail
                queue.  When this option is specified, mail is passed through
                the mail queue in interactive mode also.  This action ensures
                that the message being sent is not lost if a delivery problem
                occurs.

Ttime           Sets the timeout on messages in the queue to the specified
                time.  After a message has been in the queue for this amount of
                time, sendmail returns the message to the sender.  In
                sendmail.cf that is provided with sendmail, this value is set
                to three days.

uN              Sets the default user ID to use when calling mailers to the
                value specified by N.

v               Run in verbose mode.

Y               When this option is specified, sendmail delivers each message
                in the mail queue from a separate process.  This option uses
                less memory to process the mail queue.  Use of this option is
                not recommended.


FILES

/usr/lib/sendmail                    Contains the sendmail program.
/usr/lib/mailq                       Displays list of the mail queue.
/usr/lib/newaliases                  Builds alias data base.
/usr/lib/mailstats                   Displays sendmail statistics found in
                                     /usr/adm/sendmail/sendmail.st.
/usr/adm/sendmail/aliases            Contains the text version of sendmail
                                     aliases.
/usr/adm/sendmail/aliases.dir        Contains one of the alias data base files.
/usr/adm/sendmail/aliases.pag        Contains one of the alias data base files.
/usr/adm/sendmail/sendmail.hf        Contains the SMTP help file.
/usr/adm/sendmail/sendmail.cf        Contains the text version of the sendmail
                                     configuration file.
/usr/adm/sendmail/sendmail.fc        Contains the sendmail configuration frozen
                                     file.



Processed Nov. 8, 1990   sendmail, mailq, newaliases(8,C)                    11





sendmail, mailq, newaliases(8,C)               sendmail, mailq, newaliases(8,C)



/usr/adm/sendmail/sendmail.st        Contains the sendmail statistics file.
/usr/adm/sendmail/smdemon.cleanu     Maintains aging copies of the log file in
                                     /usr/spool/mqueue.
/etc/rc.sendmail                     Contains the shell script to start the
                                     sendmail daemon.
/usr/spool/mqueue                    Contains the log file and temporary files
                                     associated with the messages in the mail
                                     queue (the mail queue directory).
                                     Temporary files have names that include
                                     the mail queue ID (mqid) of the message
                                     for which the file was created:
                                     dfmqid  Data file
                                     lfmqid  Lock file
                                     nfmqid  Backup file
                                     qfmqid  Queue control file
                                     tfmqid  Temporary control file
                                     xfmqid  Transcript file for session.
/usr/spool/cron/crontabs/root        Contains a commented entry to run sendmail
                                     periodically for use when not routing mail
                                     to a network.  Uncomment that entry to
                                     process the mail queue at the interval
                                     specified in that cron file.
/bin/uux                             Contains the mailer program to deliver
                                     uucp mail.
/bin/bellmail                        Contains the mailer program to deliver
                                     local mail.

RELATED INFORMATION

See the following commands:  "bellmail,"  "mail, Mail,"  "uux."

See the chapter about managing the mail system in Managing the AIX Operating
System.

See the chapter about sending and receiving mail in Using the AIX Operating
System.

See the file sendmail.cf in AIX Operating System Technical Reference.

















Processed Nov. 8, 1990   sendmail, mailq, newaliases(8,C)                    12



Typewritten Software • bear@typewritten.org • Edmonds, WA 98026