SMTP (mình chia ra 2 phần: phần đầu là nội dung ppt, phần 2 có thêm chi tiết về SMTP sẽ được diễn giải kèm theo ppt được tô màu đỏ để đánh dấu) *Phần nội dung để đưa vào ppt: 1. SMTP LÀ GÌ? SMTP (Simple Mail Transfer Protocol) - Là giao thức chuẩn TCP/IP được dùng để truyền thông điệp email một cách đáng tin cậy từ client đến server (mặc định là port 25). - Một máy chủ SMTP sẽ có một địa chỉ (hoặc nhiều địa chỉ) có thể được thiết lập bởi các mail client hoặc ứng dụng mà bạn đang sử dụng. Và thường được định dạng như smtp.serveraddress.com (Ví dụ, địa chỉ máy chủ SMTP của Gmail là smtp.gmail.com.) 2. CÁCH SMTP TRUYỀN THƯ - Truyền trực tiếp: server gửi đến server nhận. Thường không sử dụng server trung gian - Gồm 3 giai đoạn truyền: + Thiết lập kết nối (bắt tay) + Truyền thông điệp + Đóng kết nối - Tương tác lệnh/ phản hồi tương tự HTTP, FTP: + Lệnh: văn bản ASCII. Một số lệnh SMTP thông dụng: HELO, MAIL FROM, RCPT TO, DATA, QUIT. + Phản hồi: mã và cụm trạng thái - Thông điệp phải ở dạng mã ASCII 7 bit => SMTP dùng kết nối bền vững, yêu cầu thông điệp phải ở dạng ASCII 7 bit, dùng CRLF để xác định kết thúc thông điệp. *So sánh SMTP và HTTP Giống nhau: đều có tương tác lệnh/phản hồi, các mã trạng thái dạng ASCII. Khác nhau: HTTP SMTP kéo (pull) đẩy (push) Mỗi đối tượng được đóng gói trong thông điệp phản hồi của nó Nhiều đối tượng được gửi trong thông điệp nhiều phần *Phần nội dung cụ thể: 1. SMTP LÀ GÌ? SMTP (Simple Mail Transfer Protocol) - Là giao thức chuẩn TCP/IP được dùng để truyền thông điệp email một cách đáng tin cậy từ client đến server (mặc định là port 25). - Một máy chủ SMTP sẽ có một địa chỉ (hoặc nhiều địa chỉ) có thể được thiết lập bởi các mail client hoặc ứng dụng mà bạn đang sử dụng. Và thường được định dạng như smtp.serveraddress.com (Ví dụ, địa chỉ máy chủ SMTP của Gmail là smtp.gmail.com.) - SMTP lần đầu tiên được xác định vào năm 1982 bởi RFC 821 và được RFC 5321 cập nhật vào năm 2008 thành các bổ sung SMTP mở rộng , đây là loại giao thức được sử dụng rộng rãi ngày nay. Máy chủ thư và các đại lý chuyển thư khác sử dụng SMTP để gửi và nhận thư. Nói đơn giản, SMTP là một giao thức để có thể gửi email trên internet. - Về mặt kỹ thuật thì SMTP server giống như các máy chủ thông thường khác. Điểm khác ở đây là khả năng gửi email số lượng lớn không giới hạn. Ví dụ, Gmail là máy chủ gửi email miễn phí của Google. Nhưng đặt ra hạn chế là bạn chỉ gửi được tối đa 500 email/ngày. Còn với SMTP server nó là các máy chủ chuyên dụng để gửi email số lượng lớn. Cần trả phí gửi cho các smtp server này. - Ngoài ra, một máy chủ SMTP đóng nhiệm vụ quan trọng trong việc xác thực email gửi đi có phải là tài khoản đang hoạt động không. Đây là vai trò đầu tiên trong việc bảo vệ hộp thư đến của bạn từ email bất hợp pháp. Nó cũng sẽ gửi email trở lại người gửi nếu nó không thể được chuyển thành công. Điều này thông báo cho người gửi rằng họ có địa chỉ email không đúng hoặc email của họ đang bị chặn bởi máy chủ nhận. 2. CÁCH SMTP TRUYỀN THƯ - Truyền trực tiếp: server gửi đến server nhận. Không sử dụng server trung gian - Gồm 3 giai đoạn truyền: + Thiết lập kết nối (bắt tay) + Truyền thông điệp + Đóng kết nối Minh họa về cách vận hành của SMTP: 1. Alice gọi tác nhân người dùng của mình để nhận e-mail, cung cấp địa chỉ e-mail của Bob (ví dụ: bob@someschool.edu), soạn thư và hướng dẫn tác nhân người dùng để gửi tin nhắn. 2. Tác nhân người dùng của Alice sẽ gửi thư đến mail server của cô ấy, ở đó thư sẽ được đặt trong hàng đợi. 3. Phía client của SMTP, chạy trên mail server của Alice, nhìn thấy thư trong hàng đợi tin nhắn. Nó mở một kết nối TCP đến một server SMTP, chạy trên mail server của Bob. 4. Sau một số lần bắt tay SMTP ban đầu, ứng dụng khách SMTP gửi tin nhắn của Alice vào kết nối TCP. 5. Tại mail server của Bob, phía server của SMTP nhận thư, máy chủ của Bob sẽ nhận thư sau đó đặt tin nhắn vào hộp thư của Bob. 6. Bob gọi tác nhân người dùng của mình để đọc tin nhắn một cách thuận tiện. Cụ thể cách mà SMTP chuyển thư từ máy chủ gửi thư đến máy chủ nhận thư: Đầu tiên, máy khách SMTP (chạy trên máy chủ gửi thư) có TCP thiết lập kết nối tới cổng 25 tại máy chủ SMTP (chạy trên máy chủ nhận thư). Nếu máy chủ ngừng hoạt động, máy khách sẽ thử lại sau. Một lần kết nối này được thiết lập, máy chủ và máy khách thực hiện một số thao tác bắt tay ở lớp ứng dụng—giống như con người thường tự giới thiệu trước khi truyền thông tin từ người này sang người khác, máy khách và máy chủ SMTP giới thiệu mình trước khi truyền thông tin. Trong giai đoạn bắt tay SMTP này, ứng dụng khách SMTP cho biết địa chỉ e-mail của người gửi (người tạo thư) và địa chỉ email của người nhận. Sau khi máy khách SMTP và máy chủ đã tự giới thiệu với nhau, máy khách gửi tin nhắn. SMTP có thể tin tưởng vào dịch vụ truyền dữ liệu đáng tin cậy của TCP để nhận thông báo đến máy chủ không có lỗi. Sau đó, máy khách lặp lại quá trình này trên cùng một kết nối TCP nếu nó có các tin nhắn khác để gửi đến máy chủ; ngược lại, nó hướng dẫn TCP đóng sự liên quan. - Tương tác lệnh/ phản hồi tương tự HTTP, FTP: + Lệnh: văn bản ASCII. Một số lệnh SMTP thông dụng: HELO, MAIL FROM, RCPT TO, DATA, QUIT. + Phản hồi: mã và cụm trạng thái - Thông điệp phải ở dạng mã ASCII 7 bit => SMTP dùng kết nối bền vững, yêu cầu thông điệp phải ở dạng ASCII 7 bit, dùng CRLF để xác định kết thúc thông điệp. *So sánh SMTP và HTTP Giống nhau: đều có tương tác lệnh/phản hồi, các mã trạng thái dạng ASCII. Khác nhau: HTTP SMTP kéo (pull) đẩy (push) Mỗi đối tượng được đóng gói trong thông điệp phản hồi của nó Nhiều đối tượng được gửi trong thông điệp nhiều phần