A client PC speaks with a SMTP server (email server) by using SMTP commands. There is a center rundown of SMTP commands that all SMTP servers supports and these are alluded to as essential SMTP commands in this post. All essential SMTP commands that are indicated by the SMTP protocol are listed below.
To permit more adaptability and extra components most SMTP servers likewise support extended SMTP commands (additionally called ESMTP commands). In authority documentation these ESMTP commands are likewise alluded to as SMTP service expansions. Some regular and frequently used ESMTP commands (SMTP service expansions) are portrayed in this post too.
Essential SMTP Commands
The following are the essential SMTP commands portrayed. All SMTP servers that takes after the SMTP protocol must support these essential commands.
• HELO (Hello)
The client sends this command to the SMTP server to recognize itself and start the SMTP discussion. The domain name or IP address of the SMTP client is generally sent as an argument together with the command (e.g. "HELO client.example.com"). If a domain name is used as an argument with the HELO command, it must be a fully qualified domain name (additionally called FQDN).
• MAIL FROM
Determines the email address of the sender. This command likewise tells the SMTP server that another mail exchange is beginning and makes the server to reset all its state tables and supports and so forth. This command is typically sent as the main command after the recognizing and login.. In the event that the senders email address is acknowledged the server will answer with a 250 OK answer code.
• RCPT TO (Recipient To)
Indicates the email address of the recipient. This command can be rehashed different times for a given email message keeping in mind the end goal to deliver a single email message to numerous recipients.
The DATA command begins the exchange of the message (body content, attachments and so forth). After that the DATA command has been sent to the server from the client, the server will respond with a 354 answer code. After that, the message can be exchanged to the server. At the point when all message have been sent, a dot (".") must be sent in a separate line. If the message is acknowledged for delivery, the SMTP server will respond with a 250 answer code
• RSET (Reset)
If the RSET command is sent to the email server the present mail exchange will be prematurely ended. The connection won't be terminated (this is held for the QUIT command) however all data about the sender, recipients and email information will be evacuated and caches and cookies will be cleared.
• VRFY (Verify)
This command requests that the server affirm that a predefined client name or mailbox is substantial (exists). If the client name is solicited, the full name from the client and the completely determined mailbox are returned. In some email servers the VRFY command is overlooked in light of the fact that it can be a security gap. The command can be used to test for login names on servers. Servers that overlook the VRFY command will ordinarily send some sort of answer, however they won't send the data that the client requested.
• NOOP (No operation)
The NOOP command does nothing else than makes the recipient to send an OK answer. The primary design is to watch that the server is still connected and can speak with the client.
Requests that the server close the connection. If the connection can be shut the servers answers with a 221 numerical code and after that is the session shut.
Extended SMTP (ESMTP) Commands
In the event that a client starts the SMTP correspondence using an EHLO (Extended Hello) command rather than the HELO command some extra SMTP commands are frequently accessible. They are frequently alluded to as Extended SMTP (ESMTP) commands or SMTP service augmentations. Each server can have its own particular series of extended SMTP commands. After the client has sent the EHLO command to the server, the server regularly sends a rundown of accessible ESMTP commands back to the client.
• EHLO (Extended Hello)
Same as HELO however tells the server that the client might need to use the Extended SMTP (ESMTP) protocol. EHLO can be used despite the fact that you won't use any ESMTP command. Furthermore, servers that don't offer any extra ESMTP commands will regularly in any event recognize the EHLO command and answer legitimately.
• AUTH (Authentication)
The AUTH command is used to confirm the client to the server. The AUTH command sends the clients username and password to the email server. AUTH can be consolidated with some different passwords as PLAIN, LOGIN and CRAM-MD5 (e.g. AUTH LOGIN) to use diverse login techniques and distinctive levels of security.
• STARTTLS (Start Transport Layer Security)
Email servers and clients that uses the SMTP protocol regularly impart using plain content over the Internet. The correspondence regularly experiences at least one switches that is not controlled or trusted by the server and client. This correspondence can be observed and it is additionally conceivable to change the messages that are sent by means of the switches.
The SIZE command has two purposes. The SMTP server can illuminate the client what is the greatest message size and the client can educate the SMTP server the (assessed) size of the email message that will be sent. The client ought not to send an email message that is bigger than the size reported by the server, yet ordinarily it is no issue if the message is to some degree bigger than the size educated by the client to the server.
The client sends the SIZE command, and size data, together with the MAIL FROM command. The server sends the command and size data alone. The size is determined in bytes.
This command causes the server to send accompanying data to the client, for instance a rundown of commands that are supported by the SMTP server.