134 lines
3.8 KiB
HTML
Executable File
134 lines
3.8 KiB
HTML
Executable File
<!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>
|
|
|