---
aliases: ["Simple Mail Transfer Protocol"]
obj: concept
wiki: https://en.wikipedia.org/wiki/Simple_Mail_Transfer_Protocol
rfc: https://datatracker.ietf.org/doc/html/rfc5321
---

# Simple Mail Transfer Protocol
Simple Mail Transfer Protocol (SMTP) is a protocol used for the transmission of electronic mail ([email](eMail.md)) over a computer network. SMTP is a text-based protocol that facilitates the sending and receiving of [emails](../../../Server/eMails.md) between servers and is a fundamental component of [email](eMail.md) communication on the internet.

## Key Concepts
### 1. **Message Transfer:**
- SMTP is primarily responsible for the transfer of [email](eMail.md) messages between a sender's [email](eMail.md) client (Mail User Agent - MUA) and a recipient's [email](eMail.md) server (Mail Submission Agent - MSA) and between [email](eMail.md) servers (Mail Transfer Agent - MTA).
### 2. **Client-Server Interaction:**
- SMTP operates on a client-server model, where an [email](eMail.md) client sends messages to an [email](eMail.md) server for delivery. Servers communicate with each other to relay messages.
### 3. **Port Number:**
- SMTP uses port `25` for unencrypted communication. Port `587` is commonly used for secure communication with Transport Layer Security (TLS).
### 4. **Commands and Responses:**
- SMTP communication involves a series of commands and responses between the client and server. Common commands include `HELO` (client identification), `MAIL FROM` (specify sender address), `RCPT TO` (specify recipient address), `DATA` (begin message data input), and `QUIT` (terminate the session).
### 5. **Relaying:**
- SMTP allows for the relaying of messages between different [email](eMail.md) servers, facilitating the delivery of [emails](../../../Server/eMails.md) across different domains.

## SMTP Operation
### 1. **Handshake:**
- The SMTP session begins with a handshake, where the client identifies itself to the server using the `HELO` or `EHLO` (extended hello) command.
### 2. **Sender and Recipient Specification:**
- The client specifies the sender's address using the `MAIL FROM` command and the recipient's address using the `RCPT TO` command.
### 3. **Message Transmission:**
- The actual message is transmitted using the `DATA` command, allowing the client to send the message body and headers.
### 4. **Session Termination:**
- The session concludes with the `QUIT` command, indicating the end of the SMTP communication.