You are on page 1of 3

SMTP

Simple Mail Transfer Protocol (SMTP) is the de facto standard for e-mail
transmissions across the Internet. Formally SMTP is defined in RFC 821 (STD 10) as
amended by RFC 1123 (STD 3) chapter 5. The protocol used today is also known as
ESMTP and defined in RFC 2821

SMTP is a relatively simple, text-based protocol, in which one or more recipients of a


message are specified (and in most cases verified to exist) along with the message text
and possibly other encoded objects. The message is then transferred to a remote server
using a procedure of queries and responses between the client and server. Either an end-
user's email client, a.k.a. MUA (Mail User Agent), or a relaying server's MTA (Mail
Transport Agents) can act as an SMTP client.

An email client knows the outgoing mail SMTP server from its configuration. A relaying
server typically determines which SMTP server to connect to by looking up the MX
(Mail eXchange) DNS record for each recipient's domain name (the part of the email
address to the right of the at (@) sign). Conformant MTAs (not all) fall back to a simple
A record in the case of no MX. Some current mail transfer agents will also use SRV
records, a more general form of MX, though these are not widely adopted. (Relaying
servers can also be configured to use a smart host.)

The SMTP client initiates a TCP connection to server's port 25 (unless overridden by
configuration). It is quite easy to test an SMTP server using the telnet program (see
below).

SMTP is a "push" protocol that does not allow one to "pull" messages from a remote
server on demand. To do this a mail client must use POP3 or IMAP. Another SMTP
server can trigger a delivery in SMTP using ETRN.

[edit] History
Forms of one-to-one electronic messaging were used in the 1960s. People communicated
with one another using systems developed for a particular mainframe computer. As more
computers began to be interconnected with others, especially in the US Government's
ARPANET, standards were developed to allow users using different systems to be able to
email one another. SMTP grew out of these standards developed during the 1970s.

SMTP can trace its roots to the Mail Box Protocol (ca. 1971), FTP Mail (ca. 1973),[1] and
Mail Protocol.[2] The work continued throughout the 1970s, until the ARPANET
converted into the modern Internet around 1980. Jon Postel then proposed a Mail
Transfer Protocol in 1980 that began to remove the mail's reliance on FTP.[3] SMTP was
published as RFC 821 in August 1982, also by Jonathan Postel.[1]
The SMTP standard was developed around the same time the Usenet was, a one-to-many
communication network with some similarities.

SMTP became widely used in the early 1980s. At the time, it was a complement to
UUCP (Unix to Unix CoPy) mail, which was better suited to handle e-mail transfers
between machines that were intermittently connected. SMTP, on the other hand, works
best when both the sending and receiving machines are connected to the network all the
time. Both use a store and forward mechanism and are examples of push technology.
Usenet's newsgroups are still propagated with UUCP between servers[4], but UUCP mail
has virtually disappeared[5] along with the "bang paths" it used as message routing
headers.

The article about sender rewriting contains technical background info about the early
SMTP history and source routing before RFC 1123.

Sendmail was one of the first (if not the first) mail transfer agents to implement SMTP.
Some other popular SMTP server programs include Postfix, qmail, Novell GroupWise,
Exim, Novell NetMail, Microsoft Exchange Server and Sun Java System Messaging
Server. As of 2001 there were at least 50 programs that implemented SMTP either as
clients (senders of messages) or as servers (receivers of messages).

Message Submission (RFC 2476) and SMTP-AUTH (RFC 2554) were introduced in
1998 and 1999, both describing new trends in email delivery. Originally, SMTP servers
were typically internal to an organization, receiving mail for the organization from the
outside, and relaying messages from the organization to the outside. But as time went on,
SMTP servers (Mail transfer agents), in practice, were expanding their roles to become
Mail submission agents for Mail user agents, some of which were now relaying mail
from the outside of an organization. (e.g. A company executive wishes to send email
while on a trip using the corporate SMTP server.) This issue, a consequence of the rapid
expansion and popularity of the World Wide Web, meant that the SMTP protocol had to
include specific rules and methods for relaying mail and authenticating users to prevent
abuses such as unsolicited email (spam) relaying.

Since this protocol started out as purely ASCII text-based, it did not deal well with binary
files. Standards such as Multipurpose Internet Mail Extensions (MIME) were developed
to encode binary files for transfer through SMTP. MTAs developed after Sendmail also
tended to be implemented 8-bit-clean, so that the alternate "just send eight" strategy could
be used to transmit arbitrary data via SMTP. Non-8-bit-clean MTAs today tend to support
the 8BITMIME extension, permitting binary files to be transmitted almost as easily as
plain text.

[edit] Developers

Many people edited or contributed to the core SMTP specifications, among them Jon
Postel, Eric Allman, Dave Crocker, Ned Freed, Randall Gellens, John Klensin, and Keith
Moore.
[edit] Outgoing mail SMTP server
An email client requires the name or the IP address of an SMTP server as part of its
configuration. The server will deliver messages on behalf of the user. This setting allows
for various policies and network designs. End users connected to the Internet can use the
services of an e-mail provider that is not necessarily the same as their connection
provider. Network topology, or the location of a client within a network or outside of a
network, is no longer a limiting factor for email submission or delivery. Modern SMTP
servers typically use a client's credentials (authentication) rather than a client's location
(IP address), to determine whether it is eligible to relay email.

Server administrators choose whether clients use TCP port 25 (SMTP) or port 587
(Submission), as formalized in RFC 4409, for relaying outbound mail to a mail server.
The specifications and many servers support both. Although some servers support port
465 for legacy secure SMTP in violation of the specifications, it is preferable to use
standard ports and standard ESMTP commands[6] according to RFC 3207 if a secure
session needs to be used between the client and the server. Some servers are set up to
reject all relaying on port 25, but valid users authenticating on port 587 are allowed to
relay mail to any valid address. A server that relays all email for all destinations for all
clients connecting to port 25 is known as an open relay and is now generally considered a
bad practice worthy of blacklisting

You might also like