Simple Mail Transport Protocol SMTP
20.1.1 Simple Mail Transport Protocol SMTP
SMTP is the basic e−mail protocol. SMTP stands for simple mail transfer protocol, and it is based on the TCPIP suite. This is the language that sendmail understands well, and peer communication between two involved sendmail programs is actually an exchange of SMTP messages. A simplified presentation of such a communication or rather, a conversation between two arbitrary hosts, identified as ms1.mydomain and ms3.yourdomain, is shown in Figure 20.2. The two hosts communicate directly. The local sendmail is delivering an e−mail from the local user me to the remote user you; it literally talks to the remote hosts sendmail about having an e−mail message from the user me on the local host sent to the user you on the remote host the e−mail address is youms3.yourdomain. The local sendmail conveys the sender and recipient information before it transmits the e−mail message; the address information constitutes the envelope, and it is conveyed separately from the message header. Only one recipient may be listed in the envelope, although the same e−mail could be addressed to more recipients simultaneously. Any division of a multiple−addressed e−mail into multiple single−addressed envelopes must be performed before the address parsing; SMTP assumes a single recipient only. 461 Figure 20.2: A simplified presentation of SMTP. To get a better look at the SMTP protocol, another example using sendmail in verbose mode follows. The verbose mode lists the complete dialogue between the two sendmail programs on the senders and recipients hosts. In this example the e−mail message is sent by the sender bjlpatsy.myschool.scps.edu to the recipient misapollo.ph.myschool.scps.edu; the text for the e−mail is in the file named indata.mail. Again, the two hosts communicate directly there are no relay mailhosts in the e−mail delivery. usrlibsendmail −v misapollo.ph.myschool.scps.edu indata.mail misapollo.ph.myschool.scps.edu… Connecting to apollo.ph.myschool.scps.edu via ether… Trying 146.98.8.31… connected. 220 apollo.ph.myschool.scps.edu HP Sendmail 1.38.193.416.2 ready at Tue, 5 Jul 1998 17:06:13 −0400 HELO patsy.myschool.scps.edu 250 apollo.ph.myschool.scps.edu Hello patsy.myschool.scps.edu, pleased to meet you MAIL From:bjlpatsy 250 bjlpatsy… Sender ok RCPT To:misapollo.ph.myschool.scps.edu 250 misapollo.ph.myschool.scps.edu… Recipient ok DATA 354 Enter mail, end with . on a line by itself . 250 Ok QUIT 221 apollo.ph.myschool.scps.edu closing connection misapollo.ph.myschool.scps.edu… Sent 462 The first two lines are messages at the senders host, describing what sendmail is doing: m i s a p o l l o . p h . m y s c h o o l . s c p s . e d u … C o n n e c t i n g t o apollo.ph.myschool.scps.edu via ether… Trying 146.98.8.31… connected. ♦ T h e f i r s t l i n e s h o w s t o w h o m t h e e − m a i l i s a d d r e s s e d a n d t h a t t h e h o s t apollo.ph.myschool.scps.edu is on the network. The second line shows the IP address of the recipients host in this case the IP address was obtained by DNS. • Once the senders sendmail has connected to the recipients host, it waits for the other side to initiate further conversation. The recipient says it is ready by sending the number 220 followed by its domain name this is the only required information; the program name usually, but not always, sendmail; and the version of that program. It also states that it is ready and gives its local date and time. 220 apollo.ph.myschool.scps.edu HP Sendmail 1.38.193.416.2 ready at Tue, 5 Jul 1998 17:06:13 −0400 ♦ • Next, the senders sendmail sends the hello message HELO this is not a typo; the recipient replies with 250 and the acknowledgment that the senders hostname is acceptable: HELO patsy.myschool.scps.edu ♦ 250 apollo.ph.myschool.scps.edu Hello patsy.myschool.scps.edu, pleased to meet you ♦ • If all has gone well so far, the senders sendmail sends the name of the e−mail sender the user on that host from the envelope of the e−mail message; the recipients sendmail accepts the senders name and replies with the message starting with the number 250: MAIL From:bjlpatsy ♦ 250 bjlpatsy… Sender ok ♦ • Next, the senders sendmail sends the name of the e−mail recipient the user on the remote host from the envelope of the e−mail message; the recipients send−mail accepts in this case or rejects this name then it would reply with an error User unknown. The reply starts with the number 250: RCPT To:misapollo.ph.myschool.scps.edu ♦ 250 misapollo.ph.myschool.scps.edu… Recipient ok ♦ • After the envelope information has been sent, the senders sendmail attempts to send the e−mail data header and body combined: DATA ♦ 354 Enter mail, end with . on a line by itself ♦ . ♦ The DATA message essentially tells the recipient to get ready for a data receipt; the sent data is not displayed, and only a single dot on a line by itself is used to mark the end of a mail message — this is a convention of the SMTP protocol. To prevent misinterpretation of any lines in the e−mail body that could contain a single dot, the senders sendmail inserts an extra dot at the beginning of any line that begins with a dot; the recipients sendmail removes those extra dots. • After the e−mail message has been successfully sent, it is confirmed by the recipients • 463 250 Ok ♦ QUIT ♦ 221 apollo.ph.myschool.scps.edu closing connection ♦ The last line simply confirms that the e−mail message was successfully delivered: misapollo.ph.myschool.scps.edu… Sent ♦ •20.1.2 The MTA Program sendmail
Parts
» Unix Administration. 7485KB Mar 29 2010 05:04:17 AM
» UNIX Operating System UNIX — Introductory Notes
» Berkeley Standard Distribution — BSD UNIX System V or ATT UNIX
» System Administrators Job UNIX System and Network Administration
» Computing Policies UNIX System and Network Administration
» Legal Acts Administration Guidelines
» Code of Ethics Administration Guidelines
» USENIX System Administrators Guild — SAGE
» In This Book UNIX System and Network Administration
» Introduction The Unix Model — Selected Topics
» Access Classes File ProtectionFile Access
» Default File Mode File ProtectionFile Access
» Plain Regular File Socket Named Pipe
» Special File Names Special File Creation
» Process Types Process Attributes
» Process Life Cycles Processes
» System V ATT Flavored ps Command
» Destroying Processes The UNIX kill command will eliminate a process entirely:
» Becoming a Superuser Communicating with Other Users
» The man Command UNIX Online Documentation
» The uptime Command The uptime command displays:
» Personal Documentation UNIX Administration Starters
» Shell Script Execution UNIX Shell Scripts
» Shell Variables UNIX Shell Scripts
» Double Command−Line Scanning
» Introductory Notes System Startup and Shutdown
» The Bootstrap Program System Startup
» The Kernel Execution System Startup
» System States System Startup
» The Outlook of a Startup Procedure
» Initialization Scripts System Startup
» The BSD rc Scripts BSD Initialization Sequence
» BSD−Like Initialization System V Initialization
» An Example Shutdown Procedures
» Introduction to the UNIX Filesystem
» System V Filesystem Directory Organization
» Mounting a Filesystem home, users
» Dismounting a Filesystem home, users
» Automatic Filesystem Mounting Removable Media Management
» BSD Filesystem Configuration File
» Filesystem Types A Few Other Filesystem Issues
» Swap Space — Paging and Swapping
» Loopback Virtual Filesystem A Few Other Filesystem Issues
» Display Filesystem Statistics: The df Command
» Checking Filesystems: The fsck Command
» Introduction UNIX Filesystem Layout
» Disk Partitions Physical Filesystem Layout
» Filesystem Structures Physical Filesystem Layout
» The mkfs Command Filesystem Creation
» File Identification and Allocation
» File Storage vs. File Transfer
» Reserved Free Space Filesystem Performance Issues
» Logical Volume Manager — AIX Flavor
» Logical Volume Manager — Solaris Flavor
» Redundant Array of Inexpensive Disks RAID
» The Volume Snapshot Snapshot
» The Filesystem Snapshot Snapshot
» Virtual UNIX Filesystem Logical Filesystem Layout
» Disk Space Upgrade UNIX Filesystem Layout
» User Database — File etcpasswd
» Initialization Template Files UNIX Login Initialization
» User Login Initialization Files
» Systemwide Login Initialization Files
» Restricted User Accounts Users and Secondary Groups
» Assigning User Passwords Standard UNIX Users and Groups
» Managing Disk Usage by Users
» System V Accounting Accounting
» AIX−Flavored Accounting Accounting
» Physical Security Passwords UNIX Lines of Defense
» File Permissions UNIX Lines of Defense
» Backups Password Encryption UNIX Lines of Defense
» Setting Password Restrictions UNIX Lines of Defense
» The Wheel Group Secure Terminals — Other Approaches
» History of the Root Account Tracking User Activities
» The syslogd Daemon The Concept of System Logging
» The Configuration File etcsyslog.conf
» Linux Logging Enhancements The logger Command
» Testing System Logging System Logging Configuration
» The last Command Limiting the Growth of Log Files
» BSD Printing Subsystem UNIX Printing Subsystem
» The lp, lpstat, and cancel Commands
» The etcprintcap File BSD Printer Configuration and the Printer Capability Database
» Filters BSD Printer Configuration and the Printer Capability Database
» The Printer Database Directory Hierarchy on System V
» Setting a Remote Printer on HP−UX
» BSD and AIX Cross−Printing Solaris and BSD Cross−Printing
» Third−Party Printer Spooling Systems
» The tput Command The tset, tput, and stty Commands
» The stty Command The tset, tput, and stty Commands
» The tar Command Tape−Related Commands
» The cpio Command Tape−Related Commands
» The dd Command Tape−Related Commands
» The mt Command Magnetic Tape Devices and Special Device Files
» The SVR3 and SVR4 backup Commands
» The fbackup Command Backup and Dump Commands
» The dumpufsdump Command Backup and Dump Commands
» Interactive Restore The restore Commands
» The frecover Command Restoring Files from a Backup
» Tape Control UNIX Backup and Restore
» The NTP Daemon Network Time Distribution
» The crontab Files Network Time Distribution
» The crontab Command Network Time Distribution
» Linux Approach Network Time Distribution
» Programs Scheduled for a Specific Time
» UNIX and Networking Network Fundamentals
» TCPIP and the Internet ISO OSI Reference Model
» TCPIP Protocol Architecture Computer Networks
» Internet Protocol IP Internet Layer and IP Protocol
» Network Access Layer Transport Layer and TCP and UDP Protocols
» Application Layer TCPIP Layers and Protocols
» IP Address Classes Data Delivery
» Dynamic Routing Internet Routing
» Protocols, Ports, and Sockets
» UNIX Database Files Multiplexing
» The arp Command Address Resolution ARP
» The portmapper Daemon The etcrpc File
» The ifconfig Command Configuring the Network Interface
» The netstat Command Configuring the Network Interface
» The inetd Daemon Super Internet Server
» Further Improvements and Development
» Host Names and Addresses Domain Name Service DNS
» The Local Host Table — etchosts
» Handling the NIC Host Table — A Journey into the Past
» Other Resolver Parameters BIND Configuration
» Name Servers UNIX Name Service — BIND
» The Configuration File etcnamed.boot
» The named.local File The named.cache file
» Subdomains and Parenting BIND Version 8.X.X
» The nslookup Interactive Mode
» A Few Examples of nslookup Usage
» Purpose and Concepts Network Information Service NIS
» To Create an NIS Client NIS Domain Name
» The etcnetgroup File DatabasesNIS Maps
» Security Issues NIS Management
» The showmount Command Mounting Remote Filesystems
» An Example The Automount Maps
» The rlogin Command The rcp Command
» The HOME.rhosts File Using UNIX r−Commands — An Example
» SSH Configuration Secure Shell SSH
» Root Access SSH Installation and User Access Setup
» SSH — Version 2 Secure Shell SSH
» Simple Mail Transport Protocol SMTP
» Rewriting an E−mail Address Pattern Matching
» Address Transformation The Parsing of E−mail Addresses
» Testing Rewrite Rules The sendmail −bt Command
» The Debugging Level Checking the Mail Queue
» Mail Subcommands The Mail Program and .mailrc File
» POP Transactions Post Office Protocol POP
» Internet Message Access Protocol IMAP
» Finger Common UNIX Network Applications
» The ping Command Host Connectivity
» The traceroute Command Host Connectivity
» The X Administration Philosophy
» Window Managers An Introduction to the X Window System
» xdm Configuration Files The X Display Managers
» Vendor−Specific X Flavors — a Configuration Example
» XDMCP Queries The Xaccess File
» Other Access Control Mechanisms
» Components of the xdm−Based User X Environment
» Other Startup Methods The User X Environment
» A Permanent X11 Installation
» Introduction to Kernel Reconfiguration
» Kernel Configuration Database Kernel Reconfiguration
» The config Command BSD−Like Kernel Configuration Approach
» HP−UX 10.x Kernel Configuration
» UNIX and Modems Introduction to Modems
» Terminal Lines and Modem Control
» C−Kermit Third−Party Communication Software
» UUCP Versions UUCP Chat−Transfer Session
» The UUCP Daemons UUCP Commands, Daemons, and Related Issues
» The UUCP Spool Directories and Files
» Additional Security in BNU UUCP
» Additional Security in Version 2 UUCP
» Intranet vs. Internet Introduction to Intranet
» Intranet Design Approach Introduction to Intranet
» Life Cycle of a Virus Virus Types
» The Viruswall Implementation Viruswalls
» Application Proxies SOCKS Proxies
» Web Services Intranet Front−End Services
» Other External Services Intranet Front−End Services
» Network Infrastructure and Desktops
» Dynamic Host Configuration Protocol DHCP
» UNIX and Not−UNIX Platform Integration
» HP−UX Installation UNIX Installation Procedures
» Linux Installation UNIX Installation Procedures
» Solaris Patch Installation HP−UX Patch Installation
» Solaris and Lost Root Password HP−UX and Lost Root Password
» Solaris Procedure to Create an Alternate Boot Partition
» Solaris Recovery of the Failed Mirrored Boot Disk
Show more