Search

Simple Mail Transfer Protocol (SMTP) - How SMTP works?

In Simple Mail Transfer Protocol (SMTP) - How SMTP works lesson, you will learn the basics of Simple Mail Transfer Protocol (SMTP), RFC's related with Simple Mail Transfer Protocol (SMTP) and the working of Simple Mail Transfer Protocol (SMTP).

An electronic mail (e-mail) allows users to send mails across an internet. E-mail is one of the most widely used application services in internet and widely used in business activities. Currently, the electronic mail (e-mail) standard for the Internet is Simple Mail Transport Protocol (SMTP). SMTP is the Application Level protocol that handles message services over TCP/IP networks. SMTP uses TCP Well Known port 25.

SMTP was first defined in RFC 788 in 1981. In 1982, RFC 821 revised SMTP, along with RFC 822. In 2001, major revisions of RFC 821 and 822 were released as RFC 2821 (SMTP) and RFC 2822 (Internet Message Format).

The exchange of email using TCP is performed by a message transfer agent (MTA). An example for MTA for UNIX Operating Systems is Sendmail. End users normally don't deal with the MTA. MTA's are set by the System Administrators.

The communication between a SMTP client and SMTP server is by human readable ASCII text.

How Simple Mail Transfer Protocol (SMTP) works

Simple Mail Transfer Protocol (SMTP) is based on end-to-end message delivery. An Simple Mail Transfer Protocol (SMTP) client contacts the destination host's Simple Mail Transfer Protocol (SMTP) server on well-known port 25, to deliver the mail. The client then waits for the server to send a 220 READY FOR MAIL message. Upon receipt of the 220 message, the client sends a HELO command. The server then responds with a "250 Requested mail action okay" message.

After this, the mail transaction will begin with a MAIL command that gives the sender identification as well as a FROM: field that contains the address to which errors should be reported.

After a successful MAIL command, the sender issues a series of RCPT commands that idenclfy recipients of the mail message. The receiver will the acknowledge each RCPT command by sending 250 OK or by sending the error message 550 No such user here.

After all RCPT commands have been acknowledged, the sender issues a DATA command to inform the receiver that the sender is ready to transfer a complete mail message. The receiver responds with message 354 Start mail command with an ending sequence that the sender should use to terminate the message data. The termination sequence consists of 5 characters: carriage return, line feed, period, carriage return, and line feed (<CRLF>.<CRLF>).

The client now sends the data line by line, ending with the 5-character sequence <CRLF>.<CRLF> line, upon which the receiver will acknowledge with a 250 OK, or an appropriate error message if anything went wrong.

After the sending is completed, the client can follow any of these actions.


Terminate Session: If the current Simple Mail Transfer Protocol (SMTP) client has no more messages to send, the connection can be closed with a QUIT command, which will be answered with a 221 Service closing transmission channel reply.


Exchange Roles: If the current Simple Mail Transfer Protoco (SMTP) client has no more messages to send, but is ready to receive any messages from the current Simple Mail Transfer Protoco (SMTP) server, it can issue the TURN command. Now the SMTP client and the SMTP server will switch their role of sender/receiver, and the sender (previous receiver) can now send messages by issuing a MAIL command.


Send Another Mail: If the Simple Mail Transfer Protoco (SMTP) client (sender) has another message to send, it can issue a new MAIL command.

This lesson explains Simple Mail Transfer Protocol (SMTP), the RFC's related with Simple Mail Transfer Protocol (SMTP) and how Simple Mail Transfer Protocol (SMTP) works. To learn the communication process between Simple Mail Transfer Protocol (SMTP) Client and Server, Click "Next".

Related Tutorials
• Simple Mail Transport Protocol (SMTP) Client - Server Communication
• SMTP Status Codes and Extended Simple Mail Transfer Protocol (ESMTP)