SMTP

Lịch sử

Giao thức trước đó của SMTP trong Arpanet là Mail Box Protocol (RFC 278) có từ tháng 7 năm 1971 và sau đó là FTP Mail (RFC 458) từ tháng 2 năm 1973. Với sự xuất hiện của Internet từ ARPANET vào khoảng năm 1980, Jon Postel đề nghị tách riêng nó ra khỏi sự phụ thuộc của việc vận chuyển thư điện tử từ dịch vụ FTP (RFC 772) và SMTP được công bố theo RFC 821 vào năm 1982. Vào đầu những năm 1980, nó đã trở thành một bổ sung cho UUCP, được sử dụng chủ yếu cho các máy tính kết nối định kỳ dùng cho việc lưu hành e-mail. SMTP đã trở thành tiêu chuẩn cho các máy tính nối liên tục với mạng.
SMTP là một giao thức dùng nền văn bản (ASCII) và tương đối đơn giản. Trước khi một thông điệp được gửi, người ta có thể định vị một hoặc nhiều địa chỉ nhận thông điệp - những địa chỉ này thường được kiểm tra về sự tồn tại trung thực của chúng). Việc kiểm thử một trình chủ SMTP là một việc tương đối dễ dàng, dùng chương trình ứng dụng "telnet" (xem dưới đây).
SMTP dùng cổng 25 của giao thức TCP. Để xác định trình chủ SMTP của một tên miền nào đấy (domain name), người ta dùng một mẫu tin MX (Mail eXchange - Trao đổi thư) của DNS (Domain Name System - Hệ thống tên miền).
SMTP định nghĩa tất cả những gì đã làm với email. Nó xác định cấu trúc của các địa chỉ, yêu cầu tên miền và bất cứ điều gì liên quan đến email.
SMTP cũng xác định các yêu cầu cho Post Office Protocol (POP) và truy cập Internet Message Protocol (IMAP) máy chủ, do đó email được gửi đúng cách.
SMTP bắt đầu được sử dụng rộng rãi vào những năm đầu thập niên kỷ 1980. Tại thời điểm đó, SMTP chỉ là một phần mềm bổ sung của bộ trình ứng dụng đồng giao thức UUCP (Unix to Unix CoPy - Sao chép từ máy Unix sang máy Unix) nhưng tiện lợi hơn trong việc truyền tải thư điện tử giữa các máy vi tính - những máy này thỉnh thoảng mới lại được kết nối với nhau một lần, để truyền thông dữ liệu. Thực ra, SMTP sẽ làm việc tốt hơn nếu các máy gửi và máy nhận được kết nối liên tục.
Trong bài viết về "người gửi viết lại địa chỉ", những tin tức căn bản về kỹ thuật của SMTP trong lịch sử trước đây, và kỹ thuật định tuyến trở về nguồn, trước khi RFC 1123 ra đời (năm 1989, bị thay thế bởi RFC 2821) đã được đề cập đến.
Sendmail là một trong những phần mềm đặc vụ truyền tải thư tín (mail transfer agent) đầu tiên (nếu không phải là cái trước tiên nhất) thực thi giao thức SMTP. Tính đến năm 2001, người ta đã thấy có ít nhất là 50 chương trình ứng dụng thực thi giao thức SMTP, bao gồm cả chương trình client (phần mềm dùng để gửi thông điệp) và chương trình server (phần mềm dùng để nhận thông điệp). Một số trình chủ SMTP nổi tiếng có thể liệt kê bao gồm: exim, Postfix, qmail, và Microsoft Exchange Server.
Do thiết kế của giao thức dùng dạng thức văn bản thường của bộ mã ASCII, khi bản thiết kế được khởi công, chức năng của SMTP giải quyết tập tin có dạng thức nhi phân rất kém. Những tiêu chuẩn như MIME đã được xây dựng để mã hóa những tập tin nhị phân, cho phép chúng được truyền tải dùng giao thức SMTP. Hiện nay, phần lớn các trình chủ SMTP hỗ trở phần mở rộng 8BITMIME của SMTP, cho phép các tập tin ở dạng thức nhị phân được truyền thông qua đường dây, dễ như việc truyền tải văn bản thường vậy.
SMTP là một giao thức "đẩy" thông điệp và không cho phép ai "rút" thông điệp từ máy chủ ở xa, theo yêu cầu của mình, một cách tùy tiện. Để lấy được thông điệp, một trình khách thư điện tử phải dùng POP3 (Post Office Protocol - Giao thức bưu điện tử) hoặc IMAP (Internet Message Access Protocol - Giao thức truy cập thông điệp Internet). Chúng ta còn có thể dùng phần mềm ETRN (Extended Turn) để khởi động một trình chủ SMTP phân phát thông điệp mà nó đang lưu trữ.

Những lập trình viên

Rất nhiều người đã từng sửa đổi hoặc cống hiến vào những phần chủ chốt trong đặc tả của SMTP, trong số đó có: Jon Postel, Eric Allman, Dave Crocker, Ned Freed, Randall Gellens, John Klensin, và Keith Moore.

Bảo an trong SMTP và thư nhũng lạm

Một trong những giới hạn của bản thiết kế SMTP gốc là việc nó không cung cấp một phương tiện nào để chứng thực (authentication) người gửi khi chúng ta cần. Chính vì thế mà phần mở rộng SMTP-AUTH đã được thiết kế và bổ sung.
Mặc dầu đã có phần chứng thực người gửi bổ sung, nhũng lạm thư điện tử vẫn còn là một vấn đề lớn, khó giải quyết. Việc sửa đổi giao thức SMTP một cách triệt để, hoặc thay thế giao thức toàn bằng một cái khác, là một việc không dễ gì thực hiện được, vì sự thay đổi sẽ gây ảnh hưởng đến mạng lưới truyền thông của những máy chủ SMTP khổng lồ, đã và đang được dùng. Internet Mail 2000 là một trong những bản dự thảo đề cập đến vấn đề này.
Vì lý do trên, một số đề nghị về việc dùng các giao thức bên lề để hỗ trợ hoạt động của SMTP đã được công bố. Nhóm nghiên cứu chống thư nhũng lạm (Anti-Spam Research Group) của Lực lượng chuyên trách nghiên cứu liên mạng (Internet Research Task Force - viết tắt là IRTF) hiện đang làm việc trên một số dự thảo về chứng thực thư điện tử (E-mail authentication) và một số những dự thảo khác liên quan đến việc cung cấp một cơ chế chứng thực nguồn gửi với tính năng: tuy đơn giản song linh hoạt, tuy ở mức độ hạng nhẹ song có khả năng khuếch trương. Những hoạt động gần đây của Lực lượng chuyên trách nghiên cứu liên mạng (Internet Engineering Task Force - viết tắt là IETF), bao gồm MARID (2004) (cộng với sự tiến tới hai cuộc thử nghiệm được IETF chấp thuận trong năm 2005 sau đó), và DKIM (DomainKeys - tạm dịch là "Chìa khóa tại vùng") trong năm 2006.