✨SMTP

SMTP

SMTP (tiếng Anh: Simple Mail Transfer Protocol - giao thức truyền tải thư tín đơn giản) là một chuẩn truyền tải thư điện tử qua mạng Internet. SMTP được định nghĩa trong bản RFC 821 (STD 10) và được chỉnh lý bằng bản RFC 1123 (STD 3), chương 5. Giao thức hiện dùng được là ESMTP (extended SMTP - SMTP mở rộng), được định nghĩa trong bản RFC 2821.

Mặc dù máy chủ thư điện tử và các mail transfer agents (MTA:dịch vụ chuyển thư) khác sử dụng SMTP để gửi và nhận thư, các ứng dụng thư điện tử thường sử dụng SMTP chỉ để gửi thư đến một máy chủ thư điện tử để được chuyển tiếp. Để truy xuất emails, chúng sử dụng IMAP hoặc POP3.

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.

Ví dụ về truyền thông của SMTP

Sau khi kết nối giữa người gửi (trình khách) và người nhận (trình chủ) đã được thiết lập, những việc làm sau đây là những việc hoàn toàn hợp lệ, đối với một phiên giao dịch dùng giao thức SMTP. Trong cuộc hội thoại dưới đây, những gì trình khách gửi được đánh dấu bằng chữ C: đứng trước, còn những gì trình chủ gửi được đánh dấu bằng S:. Các hệ thống máy tính đều có thể thiết lập một kết nối, bằng cách dùng những dòng lệnh của phần mềm telnet, trên một máy khách. Chẳng hạn:

:telnet www.example.com 25

khởi động một kết nối SMTP từ máy gửi thông điệp đến máy chủ www.example.com.

S: 220 www.example.com ESMTP Postfix C: HELO mydomain.com S: 250 Hello mydomain.com C: MAIL FROM:[email protected] S: 250 Ok C: RCPT TO:[email protected] S: 250 Ok C: DATA S: 354 End data with . C: Subject: test message C: From: [email protected] C: To: [email protected] C: C: Hello, C: This is a test. C: Goodbye. C:. S: 250 Ok: queued as 12345 C: QUIT S: 221 Bye

Tuy không bắt buộc và không được liệt kê trên đây, hầu hết các trình khách sẽ hỏi trình chủ xem tính năng mở rộng SMTP nào là tính năng trình chủ hỗ trợ, bằng cách gửi thông điệp chào hỏi "HELLO" cho trình chủ, và khởi động tính năng ESMTP (Extended SMTP - SMTP mở rộng) của trình chủ.

Những trình khách hiện đại thường dùng câu lệnh "SIZE" (cỡ) - một trong những từ chìa khóa (keyword) - trong SMTP mở rộng để điều tra cỡ lớn tối đa của thông điệp mà trình chủ có thể chấp nhận. Những trình khách và trình chủ cũ trước đây thường cho truyền tải ào ạt một lượng thông điệp thật lớn qua cho nhau, để rồi chúng lại bị từ chối sau khi đã đến đích, phung phí tài nguyên của mạng lưới một cách vô ý thức. Đấy là chưa kể thời gian kết nối tốn kém vào các ISP (Internet Service Provider - Nhà cung cấp dịch vụ Internet) quay số, mà người dùng phải trả giá từng phút đồng hồ một.

Khi có dự định hiệu chỉnh những tập tin khổng lồ, hoặc dự định gửi tập tin bằng những trình khách cũ, người dùng có thể xác định được độ lớn tối đa của thông điệp mà trình chủ ESMTP cho phép và chấp nhận, trước khi gửi thông điệp. Người dùng có thể sử dụng phần mềm "telnet" như đã nói ở trên, thay thế dòng lệnh "HELLO mydomain.com" với dòng lệnh "HELLO mydomain.com", như được liệt kê dưới đây:

S: 220-serverdomain.com ESMTP {postfix version and date} S: 220-NO UCE. {etc., terms of service} C: EHLO mydomain.com S: 250-serverdomain.com Hello mydomain.com [127.0.0.1] S: 250-SIZE 14680064 S: 250-PIPELINING S: 250 HELP

Trình chủ tại serverdomain.com trên đây báo cáo với người dùng rằng nó sẽ nhận một thông điệp với cỡ tối đa là 14.680.064 byte (một byte bằng 8-bit). Tuy báo vậy, song thực tế còn tùy thuộc vào thực trạng và tình hình sử dụng tài nguyên ở máy chủ lúc đó, trình chủ có thể không có khả năng chấp nhận được thông điệp có độ lớn như đã báo.

Có trường hợp trình chủ ESMTP chỉ thông báo cỡ SIZE tối đa, khi trình khách dùng HELLO trong khi tương giao với trình chủ, mà thôi. Khi dùng, nếu chúng ta phát hiện thấy không có con số nào hiện ra sau câu lệnh "SIZE", trong khi giới hạn về độ lớn của thông điệp nhất định phải được xác định một cách chính xác, thì người dùng có thể tương giao tiếp tục với trình chủ bằng cách giả vờ tạo một mẫu tin đầu ESMTP trong một thông điệp, trong đó đã gắn một con số ước chừng nào đấy về cỡ lớn của thông điệp và gửi thông điệp này cho trình chủ. Xin xem thêm phần liên kết ngoài, dòng kết nối cho RFC 1870 dưới đây để biết thêm chi tiết.

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.

Những bản RFC liên quan

👁️ 2 | 🔗 | 💖 | ✨ | 🌍 | ⌚
**SMTP** (tiếng Anh: **_Simple Mail Transfer Protocol_** - _giao thức truyền tải thư tín đơn giản_) là một chuẩn truyền tải thư điện tử qua mạng Internet. SMTP được định nghĩa trong bản RFC 821
nhỏ|Ký hiệu A còng, một phần của địa chỉ Email SMTP. **Thư điện tử** hay **hòm thư điện tử** (**email** hay **e-mail**) là một phương thức trao đổi tin nhắn giữa những người sử dụng
**Giao thức mở rộng thư điện tử Internet đa mục đích** hay **MIME** (_Multipurpose Internet Mail Extensions_) là một tiêu chuẩn Internet về định dạng cho thư điện tử. Hầu như mọi thư điện tử
**Thư rác**, **thư linh tinh**, hay còn được dùng dưới tên gốc Anh ngữ là **spam** hay **spam mail**, là các thư điện tử vô bổ thường chứa các loại quảng cáo được gửi một
Trong máy tính, **Internet Message Access Protocol** (**IMAP**) là giao thức chuẩn Internet được sử dụng bởi các ứng dụng email để truy xuất thư email từ máy chủ thư qua kết nối TCP/IP. IMAP
Trong lập trình, **Base64** là nhóm lược đồ mã hóa nhị phân thành văn bản đại diện cho dữ liệu nhị phân (cụ thể hơn là chuỗi byte 8 bit) ở định dạng chuỗi ASCII
**Unix** (; được đăng ký nhãn hiệu là **UNIX**) là một họ hệ điều hành máy tính đa nhiệm, đa người dùng được viết vào những năm 1960 và 1970 do một số nhân viên
**TCP** (_Transmission Control Protocol_ - "Giao thức điều khiển truyền vận") là một trong các giao thức cốt lõi của bộ giao thức TCP/IP. Sử dụng TCP, các ứng dụng trên các máy chủ được
**Giao thức truyền thông** (tiếng Anh là **_communication protocol**,_ hay gọi tắt là _**protocol**_) hay còn được dịch là **giao thức giao tiếp**, **giao thức liên mạng**, **giao thức tương tác** hay **giao thức trao
**Hosting** là dịch vụ lưu trữ các trang web trên máy chủ kết nối Internet. ## Các loại hosting ### Chia sẻ hosting Là một dịch vụ lưu trữ rất nhiều các trang web trên
:_Xem thêm các nghĩa khác tại OSI_ **Kết nối các hệ thống mở** (_tiếng Anh_: Open Systems Interconnection, viết tắt là **OSI**) là một nỗ lực tiêu chuẩn hóa mạng máy tính do Tổ chức
**Agobot**, thường được biết đến là **Gaobot**, là một họ sâu máy tính. Lập trình viên người Đức - Axel "Ago" Gembe - là người chịu trách nhiệm viết phiên bản đầu tiên của Agobot.
**POP** viết tắt của từ Post Office Protocol là một giao thức tầng ứng dụng, dùng để lấy thư điện tử từ server mail, thông qua kết nối TCP/IP. POP đã được cập nhật hai
**Sender Policy Framework** (SPF), xuất phát từ kỹ thuật ngăn chặn thư rác (spam), là phương pháp xác thực địa chỉ người gửi (Email address). Kỹ thuật này giúp người nhận nhận ra địa chỉ
nhỏ|Cách thức hoạt động của Máy chủ thư điện tử **Máy chủ thư điện tử** là một loại máy chủ mà chức năng là để nhận, giữ và gửi thư điện tử. Các địa chỉ
**Trao đổi dữ liệu điện tử** (Electronic Data Interchange - EDI) là sự truyền thông tin từ máy tính gửi đến máy tính nhận bằng phương tiện điện tử, trong đó có sử dụng một
"**Embrace, extend, and extinguish**" (**EEE**), hay còn gọi là "**embrace, extend, and exterminate**", là cụm từ mà Bộ Tư pháp Hoa Kỳ phát hiện rằng đã được Microsoft sử dụng trong nội bộ để diễn
**Windows Contacts** là trình quản lý thông tin liên lạc trong Windows Vista thay thế phần lớn các chức năng của Windows Address Book. Windows Mail được tích hợp với chương trình này. Windows Contacts
thumb|Chữ "za" kiểu katakana **Katakana** (Kanji: **片仮名**, Hán Việt: Phiến giả danh; katakana: カタカナ hay Hiragana: かたかな), còn được gọi là _chữ cứng_, là một dạng chữ biểu âm và là thành phần trong hệ
**Windows Live Hotmail**, thường được gọi đơn giản là **Hotmail**, là một dịch vụ Webmail miễn phí phổ biến của Microsoft, một bộ phận của nhóm dịch vụ Windows Live. Bản beta của dịch vụ
**Yahoo! Mail** là một dịch vụ Email trên nền web (webmail) của Yahoo!, là nhà cung cấp e-mail lớn nhất trên Internet, hiện đang phục vụ hàng triệu người dùng. Những đối thủ cạnh tranh
**Tầng ứng dụng** (tiếng Anh: Application layer) là tầng thứ bảy trong bảy tầng cấp của mô hình OSI. Tầng này giao tiếp trực tiếp với các tiến trình của ứng dụng và thi hành
**Opera** là một trình duyệt web và cũng là một bộ phần mềm Internet được phát triển bởi Opera Software, hiện được hơn 270 triệu người sử dụng trên thế giới. Trình duyệt này bao
**Gmail** là một dịch vụ email miễn phí hỗ trợ quảng cáo do Google phát triển. Người dùng có thể truy cập vào Gmail trên web và thông qua các ứng dụng dành cho thiết
**TELNET** (viết tắt của Terminal network) là một giao thức mạng (_network protocol_) được dùng trên các kết nối với Internet hoặc các kết nối tại mạng máy tính cục bộ LAN. Tài liệu của
**Mozilla Thunderbird** là một ứng dụng email, tin tức, RSS và ứng dụng trò chuyện đa nền tảng tự do nguồn mở, phát triển bởi Mozilla Foundation. Dự án này lấy hình mẫu từ trình
**Mô hình OSI** (_Open Systems Interconnection Reference Model_, viết ngắn là _OSI Model_ hoặc _OSI Reference Model_) - tạm dịch là **Mô hình tham chiếu kết nối các hệ thống mở ** - là một
**Nokia N9** (tên mã 'Lankku', tiếng Phần Lan tạm dịch là _"tấm ván phẳng"_) là một điện thoại thông minh của Nokia chạy hệ điều hành nhân Linux Meego "Harmattan". **Nokia N9** được bán ra
nhỏ|300x300px| So sánh kích thước của [[Kepler-10c, với Trái Đất và Hải vương tinh]] **Trái Đất khổng lồ** là một hành tinh ngoại hành tinh khổng lồ lớn gấp ít nhất mười lần khối lượng
**cURL** (phát âm là 'curl') là một dự án phần mềm máy tính cung cấp thư viện (**libcurl**) và công cụ dòng lệnh (**curl**) để truyền dữ liệu bằng nhiều giao thức khác nhau.
**Email marketing** là hành động gửi thông điệp thương mại, thường là cho một nhóm người sử dụng email. Theo nghĩa rộng nhất của nó, những email được gửi đến danh sách khách hàng tiềm
**SOAP** (viết tắt từ tiếng Anh _Simple Object Access Protocol_) là một giao thức do W3C định nghĩa . SOAP áp dụng XML để xác định dữ liệu dạng văn bản (plain text) qua HTTP
**Giám sát mạng** là việc sử dụng một hệ thống để liên tục theo dõi một mạng máy tính, xem xét coi có các thành phần hoạt động chậm lại hoặc không hoạt động và
**Zabbix** là một phần mềm doanh nghiệp mã nguồn mở giám sát các mạng và ứng dụng, được tạo ra bởi Alexei Vladishev và được công bố lần đầu tiên vào năm 2001. Nó được
**Session Initiation Protocol** (**SIP**) () là một giao thức truyền thông để truyền tín hiệu và điều khiển các phiên truyền thông đa phương tiện trong các ứng dụng điện thoại Internet cho các cuộc
liên_kết=//upload.wikimedia.org/wikipedia/commons/thumb/d/d2/DNS_schema.svg/350px-DNS_schema.svg.png|thế=|phải|nhỏ|350x350px| Hệ thống phân cấp của các nhãn trong một tên miền đủ điều kiện. **Tên miền đầy đủ** (còn được gọi là _tên miền tuyệt đối_), là tên miền chỉ định vị trí chính
thumb|Mô tả tương tác của mạng lưới thiết bị kết nối Internet **Internet Vạn Vật**, hay cụ thể hơn là **Mạng lưới vạn vật kết nối Internet **hoặc là** Mạng lưới thiết bị kết nối
right|thumb|Giao diện email client Mozilla Thunderbird trên hệ điều hành GNU/Linux **Email client** (từ kỹ thuật là **Mail User Agent** (MUA), trong tiếng Việt là **trình duyệt mail**) là một phần mềm máy tính được
**Apple Mail** là ứng dụng email được Apple tích hợp vào các hệ điều hành macOS, iOS, iPadOS và watchOS. Ứng dụng này phát triển từ NeXTMail, vốn được NeXT phát triển như một phần
**Bugzilla** là một hệ thống giám sát lỗi và công cụ kiểm tra lỗi mục đích chung dựa trên web ban đầu được phát triển và sử dụng bởi dự án Mozilla và được cấp
THUỘC TÍNH SẢN PHẨM Nhãn hiệu: Sukin. Xuất xứ: Úc. Loại da: Mọi loại da. Hạn sử dụng: 2022. Dung tích: 125ml. CHI TIẾT SẢN PHẨM Nước Hoa Hồng Cấp Ẩm Kiêm Xịt Khoáng Sukin