Protocal overview
SMTP is
a connection oriented, text-based protocol in which a mail sender
communicates with a mail receiver by issuing command strings and supplying
necessary data over a reliable ordered data stream channel, typically
a Transmission Control Portocal (TCP) connection. An SMTP transaction consists of
three command/reply sequences:
1.
MAIL command, to establish
the return address, also called return-path, reverse-path, or envelope
sender.
2.
RCPT command, to establish
a recipient of the message. This command can be issued multiple times, one for
each recipient. These addresses are also part of the envelope.
3.
DATA to signal the
beginning of the message text;
the content of the message, as opposed to its envelope. It consists of a message header and a message body separated by an
empty line.
Besides the intermediate
reply for DATA, each server's reply can be either positive (2xx reply codes) or
negative. Negative replies can be permanent (5xx codes) or transient (4xx
codes).
A reject is
a permanent failure and the client should send a bounce message to the server
it received it from. A drop is a positive response followed by
message discard rather than delivery.
The
initiating host, the SMTP
client, can be either an end-user's email client, functionally identified
as a mail user agent (MUA), or a relay server's mail transfer
agent (MTA), that is an SMTP server acting as an SMTP client, in the
relevant session, in order to relay mail.
Fully
capable SMTP servers maintain queues of messages for retrying message
transmissions that resulted in transient failures.
A
MUA knows the outgoing mail SMTP server
from its configuration. A relay server typically determines which server to
connect to by looking up the MX (Mail exchange) DNS resource
record for each recipient's domain name.
Relay
servers can also be configured to use a smart host. A relay server
initiates a TCP connection to the server on the “well-known port” for
SMTP: port 25, or for connecting to an MSA, port 587. The main
difference between an MTA and an MSA is that connecting to an MSA
requires SMTP Authentication.
SMTP vs mail retrieval
SMTP
is a delivery protocol only. In normal use, mail is "pushed" to a
destination mail server (or next-hop mail server) as it arrives. Mail is routed
based on the destination server, not the individual user(s) to which it is
addressed. Other protocols, such as the Post Office Protocol (POP)
and the Internet Message Access Protocol (IMAP) are specifically
designed for use by individual users retrieving messages and managing mail
boxes.
To
permit an intermittently-connected mail server to pull messages from a remote server on demand, SMTP has a
feature to initiate mail queue processing on a remote server (see Remote
Message Queue Starting below).
POP and IMAP are unsuitable protocols for
relaying mail by intermittently-connected machines; they are designed to
operate after final delivery, when information critical to the correct
operation of mail relay (the "mail envelope") has been removed.
Remote Message Queue Starting
Remote
Message Queue Starting is a feature of SMTP that permits a remote host to start
processing of the mail queue on a server so it may receive messages destined to
it by sending the TURN command.
This
feature however was deemed insecure[17] and
was extended in RFC 1985 with the ETRN command which
operates more securely using an authentication method based on Domain
Name System information.
On-Demand Mail Relay
On-Demand
Mail Relay (ODMR) is an SMTP
extension standardized in RFC 2645 that allows an intermittently-connected
SMTP server to receive email queued for it when it is connected.
Internationalization
Users
whose native script is not Latin based, or who use diacritic not in
the ASCII character set have had difficulty with the Latin email
address requirement. RFC 6531 was created to solve that problem,
providing internationalization features for SMTP, the SMTPUTF8 extension and
support for multi-byte and non-ASCII characters in email addresses, such as
those with diacritics and other language characters such
as Greek and Chinese.
Current support is limited, but there is
strong interest in broad adoption of RFC 6531 and the related RFCs in countries like
China that have a large user base where Latin (ASCII) is a foreign script.
Comments
Post a Comment