SMTP (Simple Mail Transfer Protocol) được thiết kế để chuyển giao thư điện tử một cách đáng tin cậy và hiệu quả, không phụ thuộc vào loại hệ thống truyền dẫn cụ thể. Điều kiện duy nhất là phải có một kênh truyền dữ liệu theo thứ tự và đảm bảo độ tin cậy. Trong thực tế, SMTP chủ yếu hoạt động trên giao thức TCP, sử dụng cổng 25.
Cách thức hoạt động của SMTP
Khi gửi email, máy khách SMTP (client) sẽ mở kết nối TCP đến máy chủ SMTP (server) ở cổng 25. Sau khi kết nối thành công, hai bên bắt đầu trao đổi lệnh và phản hồi theo định dạng chuẩn của SMTP. Máy khách sẽ lần lượt gửi địa chỉ người gửi (MAIL FROM), một hoặc nhiều địa chỉ người nhận (RCPT TO), sau đó là nội dung email (DATA). Máy chủ trả lời bằng các mã trạng thái để cho biết lệnh được chấp nhận hay từ chối.
Các mã phản hồi bắt đầu bằng số 2 cho biết mọi thứ hoạt động bình thường và có thể tiếp tục, số 4 cho biết sự cố tạm thời cần thử lại sau, và số 5 cho biết lỗi vĩnh viễn khiến quá trình gửi phải dừng lại. Một máy khách đúng chuẩn phải biết phân biệt và xử lý phù hợp từng loại phản hồi này.
Ví dụ một cuộc hội thoại SMTP
Quy trình gửi thư thường bắt đầu bằng việc máy khách kết nối tới máy chủ, nhận thông điệp chào mừng, sau đó gửi lệnh HELO để giới thiệu tên máy của mình. Tiếp đó, máy khách gửi MAIL FROM để khai báo người gửi, gửi một hoặc nhiều lệnh RCPT TO để khai báo người nhận, rồi gửi lệnh DATA để báo hiệu bắt đầu phần nội dung thư. Nội dung thư sẽ được gửi kèm theo tiêu đề và thân thư, và kết thúc bằng một dấu chấm trên một dòng riêng. Khi máy chủ xác nhận đã nhận thư, máy khách có thể gửi lệnh QUIT để đóng kết nối hoặc bắt đầu gửi thư khác.
Tiêu đề phong bì (Envelope)
Trong SMTP, phần MAIL FROM và RCPT TO được gọi là “tiêu đề phong bì”. Người gửi phong bì là địa chỉ trong MAIL FROM, còn người nhận phong bì là địa chỉ trong RCPT TO. Đây là thông tin dùng để điều khiển việc chuyển phát, không nhất thiết trùng với tiêu đề From: và To: hiển thị trong nội dung thư. Địa chỉ email và tên máy chủ nên được ghi đầy đủ theo dạng FQDN, ví dụ postmaster@server.example.com, để đảm bảo máy chủ nhận biết chính xác.
Cách SMTP sử dụng DNS
Để gửi thư tới user@example.com, máy chủ gửi sẽ tra cứu DNS để tìm bản ghi MX của miền example.com, từ đó biết được máy chủ nào chịu trách nhiệm nhận email. Sau đó, nó tiếp tục tra bản ghi A của máy chủ đó để lấy địa chỉ IP. Nếu miền không có bản ghi MX nhưng có bản ghi A, email sẽ được gửi trực tiếp đến địa chỉ IP đó. Ba loại bản ghi DNS thường liên quan gồm: bản ghi NS (chỉ định máy chủ tên), bản ghi MX (máy chủ nhận thư) và bản ghi A (địa chỉ IP của máy chủ).
Các thuật ngữ quan trọng trong SMTP

Điểm cần lưu ý khi triển khai SMTP
Luôn sử dụng địa chỉ và tên miền đầy đủ để tránh lỗi phân giải DNS. Khi gửi tới nhiều người nhận trong cùng một thư, chỉ cần truyền nội dung một lần để tiết kiệm băng thông, nhưng phải theo dõi từng địa chỉ để xử lý khi có lỗi tạm thời. Đồng thời, cần cấu hình DNS chính xác, đặc biệt là các bản ghi MX và A, để đảm bảo email được chuyển giao ổn định và nhanh chóng.