Sendmail - Introduction
Sendmail acts as a post office, to which all messages can be submitted for routing. Sendmail interprets both Internet (that is, user @domain) and UUCP (that is, host !user) styles of addressing. The Sendmail configuration file controls how the addresses are interpreted. Sendmail can rewrite message addresses to conform to standards on many common target networks.
The original version of Sendmail was written by Eric Allman in the early 1980s at UC Berkeley, who had also written delivermail previously. Delivermail was shipped in 1979 with 4.0 and 4.1 BSD. Sendmail was shipped with BSD 4.1c in 1983 (the first BSD version to include TCP/IP)
Sendmail can be difficult to configure. Whereas nearly all popular Unix based server software has human readable configuration files, Sendmail's configuration is not considered human readable. Instead, the Sendmail authors recommend that administrators learn and use macro language tools, particularly M4 to configure Sendmail. Sendmail is unique amongst Unix based MTAs in this requirement, and no MTA developed since Sendmail requires or recommends the use of macro languages for configuration.
Sendmail supports a variety of mail transfer protocols, including SMTP, ESMTP, DECnet's mail11, HylaFax, QuickPage and UUCP. Additionally, Sendmail v8.12 as of September 2001 introduced support for milters - external mail filtering programs that can participate in each step of the SMTP conversation.
What is Sendmail?
Sendmail is a Mail Transfer Agent (MTA). An MTA is a program that is responsible for delivering electronic mail messages.
Upon receiving a message from an MUA or another MTA, an MTA stores the message locally, analyzes the recipients, and either delivers the message (for local addresses) or forwards the message to another MTA for routing.
In either case, the MTA can edit and add to the message headers.
Part of a Mail Message
Mail Messages have three cleary separate components: Envelope, Header and Body.
From firstname.lastname@example.org Wed Jul 23 08:22:22 CDT 2008 Received: (from root@localhost) by crrp4440.cri.hp.com (8.11.1 (PHNE_35951)/8.11.1) id m6NDMMO05254; Wed, 23 Jul 2008 08:22:22 -0500 (CDT) Date: Wed, 23 Jul 2008 08:22:22 -0500 (CDT) Message-Id: <200807231322.m6NDMMO05254@crrp4440.cri.hp.com>
- Sender/Recipient information needed for delivery of messages
- "Mail From:" / "Rcpt To:" headers.
- Contains the address’s necessary for the MTA to route the message
- Data stored in the QF file
To: email@example.com From: firstname.lastname@example.org Subject: crrp4440.cri.hp.com: Event Monitor Notification
- Contains the "From:" / "To:" headers.
- Headers are defined in RFC 822.
- Header and body section are separated by a blank line
- Data stored in the QF file
>------------ Event Monitoring Service Event Notification ------------< Notification Time: Wed Jul 23 08:22:22 2008 crrp4440.cri.hp.com sent Event Monitor notification information: /storage/events/disks/default/0_1_2_1.0.0 is >= 3. Its current value is CRITICAL(5). Event data from monitor: Event Time..........: Wed Jul 23 08:22:22 2008 Severity............: CRITICAL Monitor.............: disk_em Event #.............: 3 System..............: crrp4440.cri.hp.com Summary: Disk at hardware path 0/1/2/1.0.0 : Drive is not responding. Description of Error: As part of the polling functionality, the monitor periodically requests data from the device. The monitor's request of Test Unit Ready command failed. Probable Cause / Recommended Action: The I/O request that the monitor made to this device failed because the device timed-out. Check cables, power supply, ensure the drive is powered ON, and if needed contact your HP support representative. Additional Event Data: System IP Address...: 126.96.36.199 Event Id............: 0x4887308e00000000 Monitor Version.....: B.01.01 Event Class.........: I/O Client Configuration File...........: /var/stm/config/tools/monitor/default_disk_em.clcfg Client Configuration File Version...: A.01.00 Qualification criteria met. Number of events..: 1 Associated OS error log entry id(s): None Additional System Data: System Model Number.............: 9000/800/rp4440 OS Version......................: B.11.23 STM Version.....................: C.54.00 EMS Version.....................: A.04.20 Latest information on this event: http://docs.hp.com/hpux/content/hardware/ems/disk_em.htm#3 v-v-v-v-v-v-v-v-v-v-v-v-v D E T A I L S v-v-v-v-v-v-v-v-v-v-v-v-v Component Data: Physical Device Path...: 0/1/2/1.0.0 Device Class...........: Disk Inquiry Vendor ID......: HP 36.4G Inquiry Product ID.....: ST336754LC Firmware Version.......: HPC3 Serial Number..........: 3KQ1YQKE00007702UQHD Product/Device Identification Information: Logger ID.........: disc30; sdisk Product Identifier: Disk Product Qualifier.: HP 36.4GST336754LC SCSI Target ID....: 0x00 SCSI LUN..........: 0x00 SCSI Command Data Block: Command Data Block Contents: 0x0000: 00 00 00 1E 7B 03 47 C4 00 00 Command Data Block Fields (6-byte fmt): Command Operation Code...(0x00)..: TEST UNIT READY Logical Unit Number..............: 0 Hardware Status: (not present in log record). SCSI Sense Data: (not present in log record) >---------- End Event Monitoring Service Event Notification ----------<
- Contains the data to be sent excluding the header.
- Can contain many different data types
- Data stored in the DF file
- HP-UX Mailing Services Administrator’s Guide - HP-UX 11i v1 and HP-UX 11i v2
- Cedrone, Stuart. Module 6 - Sendmail Basic Configuration & Troubleshooting. 2006.03.23
BACK TO Sendmail Handbook