II. Mô hình cây thư mục lưu trữ mail trên máy
1. Tiến trình giao dịch SMTP
SVTH : Trương Minh Tuyến Trang 108N Y N N Y Y N Y Y N N N N N Y Nhận lệnh từ Client HELO N từ điển lệnh SMTP Y Định danh Sender kiểm tra lệnh nhận được tên Domain từ Client Y MAIL Y Báo lỗi Ghi lại địa chỉ
người gởi Định danh Recipient N Y RCPT người nhận là cục bộ Y Ghi lại địa chỉ
người nhận
Inbox DATA Nhận dữ liệu từ client <CRLF>.
<CRLF>
Ghi lại nội dung thư
chuyển thư đến Server người nhận
RSET huỷ bỏ các lệnh trước đó Y
N
NOOP kiểm tra lại kết nối
- Tiến trình giao dịch SMTP là khá phức tạp. Nó phải thực hiện chức năng như một bộ dịch và xử lý lệnh theo chuẩn giao thức SMTP. Tất cả các lệnh gửi tới đều phải trải qua quá trình phân tích để xác định chính xác yêu cầu của người sử dụng. Hệ thống sử dụng một từ điển các lệnh của SMTP để làm công việc này.
- Sau khi lệnh đã được xác định là hợp lệ, nó sẽ được thực hiện tuỳ theo yêu cầu của người sử dụng.
- Trong toàn bộ phiên giao dịch SMTP, hệ thống sử dụng chủ yếu năm lệnh là: HELO, MAIL FROM, RCPT TO, DATA và QUIT. Các lệnh này luôn phải thực hiện theo một trình tự quy định như sau:
⇒ HELO
⇒ MAIL FROM
⇒ RCPT TO (lệnh này có thể được lập lại nhiều lần - sử dụng trong trường hợp cho nhiều người nhận).
⇒ .. .
⇒ DATA
⇒ .. . (phần dữ liệu thư)
⇒ <CRLF>.<CRLF>
⇒ QUIT
- Bên trên chỉ là mô phỏng một phiên làm việc cơ bản của giao thức SMTP, ngoài ra nó còn một số lệnh khác tuỳ vào người sử dụng ở client gởi đến nhìn chung qui tắc hoạt động của tiến trình vẫn đảm bảo theo lược đồ trên cho dù lệnh SMTP có thêm vào hay bớt đi.
- Trong quá trình nhận thư từ phía Client, hệ thống sẽ phân tích địa chỉ người nhận để xác định là người nhận cục bộ hoặc người nhận thuộc một hệ
thống Mail Server khác. Đây là phần phức tạp nhất trong phiên giao dịch SMTP:
1. Nếu người nhận là cục bộ, hệ thống chỉ cần ghi nội dung thư vào hộp thư tương ứng của người sử dụng.
2. Nếu người nhận không thuộc mạng cục bộ, hệ thống sẽ chuyển thư cho modul SMTP Sender. Phần chức năng này sẽ chịu trách nhiệm kết nối với hệ thống Mail Server ở xa. Nếu kết nối thành công, thư sẽ được chuyển đến Mail Server ở xa đó. Trong trường hợp ngược lại, hệ thống sẽ gửi trả các thông tin phản hồi cho người sử dụng.
- Vì hệ thống được thiết kế để cung cấp dịch vụ đồng thời cho nhiều Client nên để đảm bảo an toàn và tính đồng bộ trong các thao tác xử lý, mỗi lần hệ thống ghi nội dung thư vào hộp thư, nó đều thực hiện việc khoá tạm thời hộp thư để tránh tình trạng mất mát và sai xót.
- Phiên giao dịch sẽ kết thúc khi có yêu cầu ngừng phiên giao dịch từ phía Client. Tất nhiên, nếu hệ thống phía máy chủ kết thúc thì tất cả các phiên giao dịch cũng sẽ kết thúc và mọi thao tác sẽ bị huỷ bỏ.