PHẦN 2: CƠ SỞ LÝ THUYẾT
5.4 Giao thức IMAP:
5.4.1 Lịch sử:
Phiên bản chính thức đầu tiên của IMAP là IMAP2 được định nghĩa trong RFC-1064 công bố tháng 6 năm 1988. Sau đó được cập nhật vào tháng 8 năm 1990 nhưng vẫn giữ nguyên tên gọi. Đến tháng 2 năm 1991, RFC 1203 nâng cấp IMAP lên IMAP3. Tuy nhiên IMAP3 không được mọi người chấp nhận sử dụng rộng rãi.
Tháng 12 năm 1994, IMAP4 ra đời và được định nghĩa trong 2 tài liệu RFC- 1730 và RFC-1731. RFC-1730 miêu tả các nét chính của giao thức IMAP, trong khi RFC-1731 miêu tả chi tiết các cơ chế chứng thực cho IMAP. IMAP4 sau đó tiếp tục được cập nhật trong RFC-2060 và gần đây nhất là RFC- 3501.
5.4.2 Tổng quan:
Internet Message Access Protocol (viết tắt là IMAP) là giao thức cũng cấp giao tiếp giữa application và server ở 3 dạng: Trực tuyến(online), ngoại tuyến(offline), ngắt kết nối(disconnect):
• Offline: Mail được tải về client, mail trên server bị xóa và sau đó kết nối bị ngắt. Mail được đọc, trả lời và thực hiện các hành động khác ở trạng thái offline. Nếu muốn gởi thư phải kết nối lại với server.
• Online: Mail cũ vẫn nằm trên server, mọi hành động trên client đều có thực hiện tương đương trên server.
• Disconnect: Mail cũ lưu tạm trên Client và làm việc. Và được cập nhật trên server khi có kết nối ở lần kế tiếp.
Xét về chức năng thì IMAP giống POP đó là có thể truy cập và thao tác trên hòm thư. Tuy nhiên, IMAP hỗ trợ nhiều lệnh hơn và do đó mạnh mẽ hơn POP.
Đặc điểm IMAP:
• Sử dụng giao thức TCP để liên lạc.
• Hoạt động ở cổng chuẩn 143, cổng 993 cho các kết nối an toàn. Mô hình hoạt động của IMAP4:
(Nguồn: www.TCPIPGuide.com)
Client ở trạng thái này sau khi kết nồi với server được thiết lập. Client sẽ sử dụng các lệnh chứng thực để chứng thực bản thân với server và chuyển sang trạng thái đã được tiếp theo.
Trạng thái đã được chứng thực (Authenticated State): Client lựa chọn hòm thư.
Trạng thái đã chọn hòm thư (Selected State):
Client truy xuất, thao tác trên các thư trong hòm thư đang được chọn. Khi client đóng hòm thư sẽ trở lại trạng thái đã được chứng thực.
Trạng thái đăng xuất (Logout State):
Client có thể phát sinh lệnh Logout ở các trạng thái khác và nhảy vào trạng thái này hoặc do thời gian phiên làm việc đã vượt quá ngưỡng qui định. Server sẽ đáp lại client và đóng kết nối.
5.4.3 Các lệnh hỗ trợ:
IMAP sử dụng các thẻ để đánh dấu các lệnh. Thẻ (tag) là một chuỗi thường bắt đầu bằng 1 kí tự và theo sau là một dãy số có giá trị tăng dần (A0001, A002, ...). Khi server đáp lại bằng một trả lời với thẻ trùng với lệnh cho biết quá trình thực hiện lệnh đó đã kết thúc. Client có thể gửi lệnh tiếp theo. Trả lời từ server có 3 dạng: trả lời với thẻ của lệnh, trả lời không thẻ (bắt đầu bằng dấu *) và trả lời yêu cầu client cung cấp thêm thông tin để thực hiện lệnh (bắt đầu bằng dấu +).
Mã kết quả:
- OK: Thường đi kèm với thẻ của lệnh, cho biết lệnh được thực hiện thành công. Hoặc có thể không kèm theo thẻ trong lời chào từ server khi một phiên làm việc mới bắt đầu.
- NO: Khi đi kèm với thẻ lệnh cho biết lệnh thất bại. Khi không kèm theo thẻ thường cung cấp những cảnh báo.
- BAD: Thông báo lỗi, kèm theo thẻ khi chính lệnh ứng với thẻ đó bị lỗi.
- PREAUTH: Kèm trong thông báo không thẻ gửi tới client cho biết phiên làm việc không yêu cầu chứng thực.
- BYE: luôn luôn không kèm theo thẻ. Được sử dụng khi server đáp lại lệnh LOGOUT của client hoặc khi kết nối bị đóng.
Mã trả lời:
- ALERT: - BADCHARSET: - CAPABILITY: - PARSE: - PERMANENTFLAGS: - READ-ONLY: