You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

134 lines
3.8 KiB
HTML

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<!-- SMTP.html (C) K. J. Turner 18/12/14 -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Simple Mail Transfer Protocol</title>
<link rev="made" href="http://www.cs.stir.ac.uk/~kjt/"/>
</head>
<body background="simulator.jpeg">
<div style="text-align: center">
<h1>Simple Mail Transfer Protocol Simulator</h1>
<img src="simulator.gif" alt="Simulator Logo"/>
</div>
<h2>Protocol Description</h2>
<p>
SMTP (Simple Mail Transfer Protocol) is used to transfer email messages.
SMTP operates over <a href="TCPcs.html">TCP (Transmission Control
Protocol)</a> in client-server mode for reliable transfer of data. The
protocol simulation deals with the main commands (sent in approximately
the order below):
</p>
<ul>
<li><em>HELO</em>: names the client (the spelling is deliberate)</li>
<li><em>MAIL FROM</em>: names the sender</li>
<li><em>RCPT TO</em>: names a recipient</li>
<li><em>DATA</em>: asks to send message data</li>
<li>c<em>Mail Message</em>: sends the message datac</li>
<li>c<em>QUIT</em>: finishes the mail sessionc</li>
</ul>
<p>
The simulation supports a limited range of response codes:
</p>
<ul>
<li>
<em>220 Server ready</em>: a connection to the server has been made and
the server is ready
</li>
<li>
<em>221 Server closing</em>: the server accepted the <em>QUIT</em>
command and is ready to close the connection
</li>
<li>
<em>250 OK</em>: the server accepted the command (one of several
similar responses)
</li>
<li>
<em>354 Send mail</em>: the server accepted the <em>DATA</em> command
and is waiting for the <em>Mail Message</em>
</li>
<li>
<em>550 Invalid</em>: the server rejected the command (one of several
similar responses)
</li>
</ul>
<p>
After the client connects to the server using TCP, the server reports its
readiness with a <em>220 Server ready</em> response. The client names
itself in <em>HELO</em>, to which the server normally gives a <em>250
Server hello to client</em> response. To send mail, the client issues
<em>MAIL FROM</em> and normally gets a <em>250 Sender OK</em> response.
Recipients are named in <em>RCPT TO</em>, normally obtaining <em>250
Recipient OK</em> responses. However the server can reject a sender or
recipient with a <em>550 Sender invalid</em> or <em>550 Recipient
invalid</em> response. Once all parties have been named, the client sends
<em>DATA</em> to begin message transmission; a <em>354 Send mail</em>
response is expected from the server. At this point, the real protocol
would send the lines of the message followed by a full stop. In the
simulation, a single <em>Mail Message</em> command stands for this. The
server will normally give a <em>250 Message accepted</em> response and
further messages can be sent. Finally, the client sends <em>QUIT</em> and
the server responds with a <em>221 Server closing</em> code. At this
point the TCP connection is broken.
</p>
<h2>Protocol Parameters</h2>
<p>
This simulation has no parameters.
</p>
<h2>Protocol Simulation</h2>
<center>
<applet code="simulator.ProtocolSimulator.class"
archive="ProtocolSimulator.jar" width="600" height="700"
name="ProtocolSimulator">
<param name="protocol" value="SMTP"/>
</applet>
</center>
<hr/>
<p>
<a href="index.html"><img src="uparrow.gif" alt="Up Arrow"/></a>
Up one level to <a href="index.html">Protocol Simulators</a>
</p>
</body>
</html>