Tải bản đầy đủ (.docx) (31 trang)

Báo cáo giao thức IMAP

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (756.55 KB, 31 trang )

MỤC LỤC
1. Lịch sử phát triển của giao thức IMAP……………………………………… 2
1.1. Giới thiệu giao thức IMAP……………………………………………………2
1.2. Lịch sử phát triển…………………………………………………………… 2
2. Mục đích sử dụng, phạm vi ứng dụng, bản chất của giao thức
IMAP……….4
2.1. Mục đích sử dụng ………………………………………………………… 4
2.2. Phạm vi ứng dụng…………………………………………………………….4
2.3. Bản chất của giao thức IMAP……………………………………………… 5
3. Mô tả nguyên lý hoạt động của giao thức IMAP………………………………5
3.1. Mức độ liên kết……………………………………………………………….5
3.2. Các lệnh và phản hồi………………………………………………………….5
3.3. Trạng thái và sơ đồ lưu
lượng……………………………………………… 7
3.4. Định dạng dữ liệu…………………………………………………………… 8
3.5. Các lệnh của khách hàng…………………………………………………….10
3.6. Máy chủ trả lời………………………………………………………………12
4. Phân tích các ưu, nhược điểm của giao thức IMAP……………………….…
14
4.1. Ưu điểm…………………………………………………………………… 14
4.2. Nhược điểm………………………………………………………………….16
5. Mô phỏng……………………………………………………………………….18
6. Kết luận và xu hướng phát triển………………………………………………29
7. Tài liệu tham khảo…………………………………………………………… 30
1
1. Lịch sử phát triển của giao thức IMAP
1.1. Giới thiệu IMAP
Tiêu chuẩn Internet Message Access Protocol (IMAP) – Giao thức truy cập thông
điệp Internet là một giao thức Internet ở tầng ứng dụng, cho phép máy khách truy
cập thư điện tử trên một máy chủ thư từ xa. IMAP cùng với Giao thức truy cập hộp
thư (POP - Post Office Protocol) là một trong hai giao thức tiêu chuẩn Internet phổ


biến nhất về lấy thư điện tử. Trên thực tế, tất cả các máy khách và máy chủ thư điện
tử hiện đại đều hỗ trợ cả hai giao thức này để truyền tải thông điệp điện tử từ một
máy chủ.
Giao thức truy cập hộp thư POP rất phổ biến với người dùng do tính đơn giản và có
lịch sử phát triển lâu dài. Tuy nhiên, POP có rất ít tính năng và thường chỉ chú trọng
hỗ trợ phương thức truy cập thư ngoại tuyến (offline). Do đó, Giao thức truy cập
thông điệp Internet ra đời với mục đích cụ thể là cung cấp tính linh hoạt trong cách
truy cập, cách lấy và cách làm việc với thông điệp điện tử của người dùng. Trong
thực tế, IMAP có thể hoạt động theo cả ba chế độ: trực tuyến (online), ngoại tuyến
và không kết nối (disconnected – chế độ lai giữa online và offline, người dùng thao
tác với bản sao tạm thời của các thông điệp trên máy chủ), trong đó, chế độ trực
tuyến và không kết nối nhận được quan tâm của rất nhiều người dùng, còn chế độ
ngoại tuyến thì ít hơn do giống với POP. Hiện tại, IMAP do Nhóm chuyên trách kỹ
thuật Internet - Internet Engineering Task Force (IETF) phát hành dưới dạng RFC
(Request for Comments, là những tài liệu kỹ thuật và tổ chức về Internet, bao gồm
những tài liệu đặc tả kỹ thuật và chính sách được tổ chức IETF phát hành).
1.2. Lịch sử phát triển
IMAP có lịch sử phát triển, cụ thể như sau:
- Phiên bản đầu tiên gọi là Giao thức truy cập hộp thư tạm thời (Interim Mail Access
Protocol - IMAP), được thiết kế bởi Mark Crispin năm 1986. Giao thức tạm thời
thiếu liên kết yêu cầu/trả lời và do đó cú pháp của nó không tương thích với tất cả
các phiên bản sau này. Hiện tại, không còn tồn tại một tài liệu đặc tả hay một phần
mềm nào sử dụng giao thức truy cập hộp thư tạm thời này nữa.
2
- Phiên bản thứ hai gọi là Giao thức truy cập hộp thư tương tác (Interactive Mail
Access Protocol – IMAP2), được phát triển tại Đại học Stanford – Mỹ từ giữa
những năm 1980, sau đó được chuẩn hóa và định nghĩa trong RFC 1064 vào tháng 7
năm 1988 và được cập nhật vào tháng 8 năm 1990 tại RFC 1176. IMAP2 có một số
yêu cầu/trả lời giống với IMAP phiên bản đầu tiên nhưng đã đưa ra được liên kết
yêu cầu/trả lời và IMAP2 cũng là phiên bản được công bố công khai đầu tiên.

- Phiên bản thứ ba gọi là Giao thức truy cập hộp thư tương tác (Interactive Mail
Access Protocol – IMAP3 ), được xác lập tại RFC 1203 vào tháng 2 năm 1991, đưa
ra một số khuyến nghị trái ngược với RFC 1176 của phiên bản IMAP2 nhưng
IMAP3 không chấp thuận bởi cộng đồng, do đó phiên bản IMAP2 vẫn được sử
dụng trong khoảng thời gian này.
- Phiên bản thứ tư gọi là Giao thức truy cập hộp thư tương tác IMAP2bis
(Interactive Mail Access Protocol – IMAP2bis), được xem là giao thức mở rộng của
IMAP2 với việc hỗ trợ cấu trúc nội dung kiểu giao thức mở rộng thư Internet đa
chức năng (Multipurpose Internet Mail Extensions - MIME) và thêm nhiều tính
năng hộp thư như tạo, xóa, đổi tên, tải thông điệp lên nhưng IMAP2bis không được
công bố dưới dạng RFC. Sau đó vào tháng 12 năm 1994, phiên bản IMAP2bis đã
được nhóm IETF IMAP đổi tên thành giao thức truy cập thông điệp Internet
(Internet Message Access Protocol - IMAP4) để tránh nhầm lẫn với phiên bản
IMAP3 và được công bố tại RFC 1730 (RFC mô tả giao thức chính) và RFC
1731 (RFC mô tả cơ chế xác thực của IMAP4). Tiếp đó, IETF đã sửa đổi, bổ
sung IMAP4 thành IMAP4rev1 vào tháng 12 năm 1996 tại RFC 2060 và cập nhật
IMAP4rev1 vào tháng 3 năm 2003 tại RFC 3501.
Ta có thể tóm tắt lộ trình của IMAP qua các mốc thời gian sau:
-1986, IMAP được chấp nhận ở đại học Stanford
-1987, IMAP2 được định nghĩa, cập nhật client và server. Được hiện thực trên
server Unix
-1988, tài liệu chính thức của IMAP được xuất hiện trên Net vào tháng Bảy
-1989, Mark Crispin, tác giả đầu tiên của IMAP, được đại học Washington thu
nhận
-1990, bản sửa đổi bổ sung của tài liệu chính thức của IMAP2 được xuất bản vào
tháng Tám
-1991, bổ sung hỗ trợ cho Multipurpose Internet Mail Extentions. Cho phép truyền
file không phải ASCII trên Internet, bổ sung này tạo nền tảng cho IMAP2 beta
-1992, đại học Washington triển khai server của IMAP2 beta
3

-1993, nhóm thực hiện IMAP của tổ chức chuyên trách về công nghệ Internet IETF
được thành lập. IMAP được hiện thực trên hệ điều hành VMS server của Digital
dành cho máy tính lớn.
-1994, tài liệu chính thức của IMAP4 được xuất bản
-1995, đại học Carnegie Mellon đưa ra server IMAP4 đầu tiên
-1996, đại học Washington chủ trì hai cuộc họp đầu tiên về IMAP. Sun, Netscape
và những nhà sản xuất khác tuyên bố hỗ trợ IMAP4
-1997, đặc tả cho IMAP4.1 tiếp tục được hoàn thiện. Phát hành hai IMAP cho
client là Netscape Messenger và Microsoft Outlook Express, được tích hợp với hai
trình duyệt Web phổ biến: Netscape Communicator và Microsoft Internet Explorer
2. Mục đích sử dụng, phạm vi ứng dụng, bản chất của giao
thức IMAP
2.1. Mục đích sử dụng:
IMAP được sử dụng để đặt sự kiểm soát email trên mail server. Cụ thể, IMAP
cung cấp truy cập Email theo ba chế độ khác nhau: offline (ngoại tuyến), online
( trực tuyến) và disconnected ( ngắt kết nối).
Truy cập chế độ offline IMAP giống như POP, các thông điệp email được truyền
đến máy client server, xóa khỏi mail server và mối liên kết bị ngắt. Sau đó người
dùng đọc, trả lời và làm các việc khác ở chế độ ngoại tuyến, còn nếu muốn gửi thư
mới đi họ phải kết nối lại.
Truy cập chế độ online IMAP là chế độ truy cập mà người dùng đọc và làm việc
với thông điệp email trong khi vẫn đang giữ kết nối với mail server ( kết nối mở).
Các thông điệp này vẫn nằm ở mail server cho đến khi nào người dùng quyết định
xóa nó đi. Chúng được gắn nhãn hiệu cho biết loại để “đọc” hay “trả lời”.
Truy cập chế độ disconnected, IMAP cho phép người dùng lưu tạm thông điệp ở
client server và làm việc với chúng, sau đó cập nhật trở lại vào mail server ở lần
kết nối kế tiếp. Chế độ này hữu ích cho những ai dùng laptop hay truy cập mạng
bằng liên kết quay số điện thoại, đồng thời không muốn bỏ phí những lợi điểm của
kho chứa thư ở mail server.
2.2. Phạm vi ứng dụng

Các giao thức Internet tiêu chuẩn như Gmail, ThunderBird, Mozilla Suite,
SeaMonkey,…
4
2.3. Bản chất của giao thức IMAP
IMAP là thế hệ mới của giao thức POP (Post Office Protocol). IMAP là một giao
thức dạng client/server mà ở đó e-mail được nhận về và được lưu trữ trên
servers. Khi sử dụng các e-mail client như OE, Netscape, khách hàng có thể
xem trước thông tin header bao gồm người gửi và chủ đề lá thư, từ đó cho phép
khách hàng quyết định có download lá thư đó về hay không. Khách hàng cũng có
thể tạo nhiều folder hoặc mailboxes trên server, xóa tin nhắn.
3. Mô tả nguyên lý hoạt động của giao thức IMAP
3.1. Mức độ liên kết
Giao thức IMAP4 được nhận một dòng dữ liệu đáng tin cậy cung cấp bởi TCP. Khi
sử dụng TCP, IMAP4 sẽ nhận thông tin trên port 143.
3.2. Các lệnh và phản hồi
Một phiên IMAP4 bao gồm việc thiết lập một kết nối máy khách/máy chủ, một lời
chào ban đầu từ máy chủ và tương tác máy khách/máy chủ.Những tương tác máy
khách/máy chủ bao gồm lệnh của một khách hàng, dữ liệu của máy chủ và một kết
quả hoàn tất do máy chủ trả lời lệnh tương ứng.
Tất cả các tương tác truyền bởi máy khách và máy chủ dưới dạng dòng, nghĩa là
chuỗi kết thúc với một CRLF. Giao thức nhận của một khách hàng IMAP4 hay
máy chủ IMAP4 sẽ đọc một dòng hoặc một chuỗi các octet với một số đứng sau
một đường thẳng
(Octet: khối dữ liệu có kích thước 8 bit)
3.2.1. Giao thức khách hàng gửi và giao thức máy chủ nhận
Một lệnh của khách hàng sẽ bắt đầu một hoạt động. Mỗi lệnh của khách hàng được
bắt đầu bởi một định danh (thường là một chuỗi chữ số ngắn. Ví dụ: A0001,
A0002, v.v…) được gọi là một “thẻ” (“tag”). Một thẻ khác nhau được tạo ra bởi
mỗi lệnh của khách hàng.
Có hai trường hợp trong đó một đường dây từ khách hàng không đại diện cho một

lệnh cần hoàn thành. Trong trường hợp một, một đối số lệnh là trích dẫn với một
số octet, trong trường hợp hai, các đối số lệnh yêu cầu thông tin phản hồi của máy
5
chủ. Trong cả hai trường hợp, máy chủ sẽ gửi một lệnh tiếp tục đáp ứng yêu cầu
nếu nó đã sẵn sàng cho octet ( nếu thích hợp) và phần còn lại của lệnh.
Lưu ý: Nếu thay vào đó, máy chủ phát hiện một lỗi trong các lệnh, nó sẽ gửi một
câu trả lời BAD có tag phù hợp với lệnh để từ chối lệnh và ngăn cản khách hàng
gửi thêm bất kỳ lệnh nào.
Nó cũng có thể để cho máy chủ gửi một đáp ứng hoàn thiện cho một số lệnh
khác ( nếu đang tiến hành nhiều lệnh), hoặc đang tháo thẻ dữ liệu. Trong cả hai
trường hợp, khách hàng sẽ có hành động thích hợp để quyết định các lệnh sẽ tiếp
tục tiến hành hay là chờ giải quyết
Giao thức nhận của IMAP4 sẽ đọc một dòng lệnh từ khách hàng, phân tích cú pháp
lệnh và đối số của nó, truyền dữ liệu về máy chủ và máy chủ sẽ hoàn thành lệnh
đưa đến phản hồi.
3.2.2. Giao thức máy chủ gửi và giao thức khách hang nhận
Dữ liệu được truyền bởi máy chủ đến khách hàng và trạng thái lệnh không được
hoàn thành sẽ được bắt đầu bởi dấu “*”, được gọi là phản hồi untagged ( tháo thẻ).
Dữ liệu máy chủ có thể được gửi như là kết quả của một lệnh khách, hoặc có thể
được gửi đơn phương bởi máy chủ. Không có sự khác biệt về cú pháp giữa một dữ
liệu máy chủ từ môt lệnh cụ thể và dữ liệu được gửi đơn
phương.
Máy chủ phản hồi một kết quả hoàn thiện cho thấy hoạt động thành công hay thất
bại. Nó được gắn thẻ với các từ khóa tương tự với các lệnh khách đã vận hành. Vì
vậy, nếu tiến hành nhiều hơn một lệnh, các từ khóa trong một câu trả lời có thể xác
định phản ứng của máy chủ. Có ba loại khả năng có thể được phản hồi từ máy chủ:
OK ( chỉ thị thành công), NO ( chỉ thị thất bại) và BAD ( giao thức bị lỗi do lệnh
không được công nhận hoặc lỗi cú pháp lệnh).
Giao thức nhận của khách hàng IMAP4 đọc dòng phản hồi từ máy chủ, sau đó nó
sẽ có các hành động phản hồi dựa trên các mã thông báo đầu tiên của phản ứng, ví

dụ như một thẻ “*” hoặc thẻ “+”
Khách hàng phải chuẩn bị sẵn sàng chấp nhận bất kỳ phản ứng nào của máy chủ ở
bất kỳ thời gian nào. Điều này có thể bao gồm cả dữ liệu máy chủ mà nó không
6
được yêu cầu. Dữ liệu của máy chủ nên được ghi lại, để cho các khách hàng có thể
tham khảo dữ liệu từ bản sao chứ không cần gửi lệnh cho máy chủ để yêu cầu dữ
liệu. Trong vài trường hợp, một số dữ liệu của máy chủ bắt buộc phải được ghi lại.
7
3.3. Trạng thái và sơ đồ lưu lượng
Một máy chủ IMAP4 luôn ở một trong bốn trạng thái. Hầu hết các lệnh có hiệu lực
ở vài trạng thái nhất định. Đó là lỗi giao thức khi khách hàng cố gắng thực hiện
một lệnh trong khi lệnh đang ở trạng thái không phù hợp. Trong trường hợp này,
máy chủ sẽ trả lời với một lệnh kết quả BAD hoặc NO (tùy thuộc máy chủ thực
hiện)
3.3.1. Trạng thái chưa xác thực
Trong trạng thái chưa đăng nhập, người dùng phải cung cấp và xác nhận các thông
tin trước khi phần lớn các lệnh được cho phép. Trạng thái này được nhập khi một
kết nối bắt đầu, trừ khi kết nối đó đã được xác thực trước.
3.3.2. Trạng thái xác thực
Trong trạng thái xác thực, người dùng được xác nhận và phải chọn một hộp thư để
truy cập trước khi lệnh ảnh hưởng đến tin nhắn được cho phép. Trạng thái này
được nhập khi bắt đầu một kết nối đã được xác thực trước, khi thông tin xác nhận
được cung cấp đã được chấp nhận, hoặc sau một lỗi trong việc lựa chọn một hộp
thư.
3.3.3. Trạng thái lựa chọn
Trong trạng thái lựa chọn, một hộp thư đã được lựa chọn để truy cập. Trạng thái
này được nhập khi một hộp thư đã được lựa chọn thành công
3.3.4. Trạng thái đăng xuất
Trong trạng thái đăng xuất, phiên hoạt động của người dùng đang chấm dứt, và
máy chủ sẽ đóng kết nối, Trạng thái này có thể được nhập như là một yêu cầu của

khách hàng hoặc một quyết định đơn phương của máy chủ.
8
+ +
|kết nối ban đầu và lời chào từ máy chủ|
+ +
|| (1) || (2) || (3)
VV || ||
+ + || ||
| chưa đăng nhập | || ||
+ + || ||
|| (7) || (4) || ||
|| VV VV ||
|| + + ||
|| | đăng nhập |<=++ ||
|| + + || ||
|| || (7) || (5) || (6) ||
|| || VV || ||
|| || + + || ||
|| || |lựa chọn|==++ ||
|| || + + ||
|| || || (7) ||
VV VV VV VV
+ +
| đăng xuất và đóng kết nối |
+ +
(1)Kết nối không cần đăng nhập trước (lời chào OK)
(2)Kết nối đăng nhập trước ( lời chào PREAUTH)
(3)Kết nối bị từ chối ( lời chào BYE)
(4)Lệnh ĐĂNG NHẬP thành công
(5)Lệnh CHỌN hoặc KIỂM TRA thành công

(6)Lệnh ĐÓNG, hoặc lệnh CHỌN hoặc KIỂM TRA thất bại
(7)Lệnh ĐĂNG XUẤT, tắt máy chủ hoặc đóng kết nối
3.4. Định dạng dữ liệu
IMAP4 sử dụng các lệnh và phản ứng dạng văn bản. Dữ liệu trong IMAP4 có thể
dưới một trong các hình thức: nguyên tử, số, chuỗi, danh sách ngoặc và NIL
3.4.1. Nguyên tử
Một nguyên tử bao gồm một hoặc nhiều ký tự không đặc biệt
3.4.2. Số
9
Một số bao gồm một hoặc nhiều ký tự chữ số, và đại diện cho một giá trị số
3.4.3. Chuỗi
Một chuỗi là một trong hai hình thức: chữ và chuỗi trích dẫn. Các hình thức
theo chữ là hình thức chung của chuỗi. Các hình thức theo chuỗi trích dẫn là
một cách thay thế tránh chi phí hạn chế khi xử lý một chữ.
Một chữ là một chuỗi không hoặc nhiều octet (bao gồm cả CR và LF), tiền tố được
trích dẫn dạng một dấu mở ngoặc “{”, số lượng octet, dấu đóng ngoặc “}”, và
CRLF. Trong trường hợp chữ truyền từ máy chủ đến khách hàng, các dữ liệu octet
sẽ lập tức theo sau CRLF. Trong trường hợp chữ truyền từ khách hàng đến máy
chủ, khách hàng phải chờ đợi để nhận được một lệnh yêu cầu tiếp tục trước khi gửi
dữ liệu octet (và phần còn lại của lệnh).
Một chuỗi trích dẫn là một chuỗi không hoặc nhiều ký tự 7-bit (không bao gồm CR
và LF), với dấu (<”>) ở mỗi chỗ kết thúc
Chuỗi rỗng tiêu biểu như “” ( một chuỗi trích dẫn với không ký tự trong dấu ngoặc
kép) hoặc như {0} theo sau là CRLF ( một chữ với octet của số 0)
Lưu ý: Ngay cả khi octet là 0, khách hàng vẫn phải chờ đợi để nhận được lệnh yêu
cầu tiếp tục
3.4.4. Danh sách ngoặc
Cấu trúc dữ liệu được biểu diễn như là một “danh sách ngoặc”, một chuỗi các mục
dữ liệu, phân cách bằng dấu space, và kết thúc bằng dấu ngoặc đơn. Bản thân một
danh sách ngoặc có thể chứa các danh sách ngoặc, sử dụng nhiều dấu ngoặc đơn để

chia ra.
Danh sách ngoặc rỗng tiêu biểu như () – một danh sách ngoặc với không thành
viên
3.4.5. NIL
Nguyên tử đặc biệt “NIL” đại diện cho sự không tồn tại của một mục dữ liệu cụ thể
được biểu diễn như là một chuỗi hoặc một danh sách ngoặc.
Nó khác biệt với một chuỗi rỗng “” hoặc danh sách ngoặc
rỗng ( )
10
3.5. Các lệnh của khách hang
3.5.1. Lệnh trạng thái bất kỳ
Có thể được sử dụng ở bất kỳ trạng thái nào
Lệnh Tham số Mô tả
Capability Không có Yêu cầu máy chủ cho khách hàng những khả năng và
tính năng mà nó hỗ trợ
Noop Không có Không có gì. Có thể được sử dụng để thiết lập lại bộ đếm
thời gian hoặc định kỳ nhắc nhở máy chủ gửi thông báo
khi có thư mới
Logout Không có Thông báo với máy chủ khách hàng đã sẵn sàng để kết
thúc phiên, sau đó máy chủ sẽ đóng kết nối
3.5.2. Lệnh trong trạng thái chưa xác thực
Lệnh chỉ được sử dụng trong trạng thái chưa xác thực. Những lệnh này thường
được sử dụng để xác thực.
Lệnh
Tham số
Mô tả
Authenticate Tên người dùng
và mật khẩu
Chỉ định một tên người dùng và mật khẩu để
sử dụng cho việc chứng thực

Login Tên cơ chế xác
thực
Cho máy chủ mà khách hàng muốn sử dụng
một cơ chế xác thực cụ thể, nhắc nhở khách
hàng và máy chủ trao đổi thông tin xác thực
phù hợp với quy chế
STARTTLS Không có Thông báo với máy chủ IMAP4 để sử dụng
giao thức Transport Layer Security (TLS) để
xác thực, và nhắc nhở TLS bắt đầu đàm phán
3.5.3. Lệnh trong trạng thái xác thực
Được sử dụng để thực hiện các hành động khác nhau trên hộp thư ( Có thể sử dụng
cả trong trạng thái lựa chọn?
Lệnh
Tham số
Mô tả
11
Select Tên hộp thư Chọn một hộp thư riêng biệt để truy cập. Nếu
lệnh này thành công sẽ chuyển sang trạng th
ái
lựa chọn. Các máy chủ sẽ thường xuyên phản hồi
thông tin cho khách hàng về các hộp thư được
lựa chọn
Examine Tên hộp thư Giống như lệnh Select, ngoại trừ việc hộp thư
mở ra chỉ để đọc chứ không thể thay đổi được
Create Tên hộp thư Tạo ra một hộp thư với tên hợp lý
Delete Tên hộp thư Xóa hộp thư quy định
Rename Tên hộp thư hiện
tại và mới
Đặt lại tên một hộp thư
Subscribe Tên hộp thư Thiết lập thêm hộp thư quy định

Unsubscribe Tên hộp thư Loại bỏ các hộp thư từ danh sách “tích cực”
List Tên hộp thư
hoặc chuỗi th
am
chiếu
Yêu cầu một phần danh sách các tên hộp thư có
sẵn, dựa trên các tham số được cung cấp
Lsub Tên hộp thư
hoặc chuỗi th
am
chiếu
Tương tự như List nhưng chỉ trả về tên từ danh
sách “tích cực”
Append Tên hộp thư, tin
nhắn, cờ tùy
chọn và
ngày/thời gian
Thêm một thông điệp tới hộp thư
Status Tên hộp thư Yêu cầu tình trãng của hộp thư quy định. Máy
chủ đáp ứng cung cấp thông tin như số lượng ti
n
nhắn trong hộp và số lượng tin nhắn mới đến và
ẩn
3.5.4. Trạng thái lựa chọn
Một tập hợp các lệnh được sử dụng để truy cập và thao tác tin nhắn cá nhân mà chỉ
có thể được sử dụng trong trạng thái lựa chọn.
Lệnh
Tham số
Mô tả
Check Không có Thiết lập một “trạm kiểm soát” cho hộp thư hiện

tại.Được sử dụng để đánh dấu khi một trình tự
nhất định của hoạt động hoàn thành
12
Close Không có Đóng hộp thư hiện tại và trả phiên về trạng thái
xác thực. Khi lệnh này được ban hành, máy chủ
cũng sẽ mặc nhiên thực hiện hoạt động Xóa trên
hộp thư
Expunge Không có Vĩnh viễn loại bỏ bất kỳ tin nhắn được đánh dấu
để xóa của khách hàng. Điều này được thực hi
ện
tự động khi hộp thư đóng lại
Search Tiêu chí tìm kiếm
và một đặc đi
ểm
kỹ thuật thiết lập
tùy chọn
Tìm kiếm các hộp thư cho tin nhắn phù hợp với
tiêu chí tìm kiếm quy định. Máy chủ sẽ liệt kê các
con số đáp ứng
Fetch Trình tự số tin
nhắn và danh sách
các đối tượng dữ
liệu tin nhắn (mộ
t
hoặc nhiều)
Lấy thông tin về một hoặc một tập hợp tin nhắn từ
hộp thư hiện tại
Partial Trình tự số tin
nhắn và danh sác
h

các đối tượng dữ
liệu tin nhắn (một
hoặc nhiều), vị trí
octet đầu tiên và
số octet
Tương đương với lệnh Fetch với các tính năng bổ
sung mà chỉ số quy định của octet được trả về, chỉ
có một thông điệp duy nhất có thể được lấy tại thời
điểm octet đầu tiên
Uid Tên lệnh và đối số Được thực hiện để cho phép một trong các lệnh
khác được thực hiện bằng cách sử dụng số nhận
dạng duy nhất để xác đinh hoạt động của các tin
nhắn, thay vì những con số thông báo trình tự
Store Trình tự số tin
nhắn và tên mục
dữ liệu tin nhắn,
giá trị
Bảo quản một giá trị cho một mục dữ liệu tin nhắn
cụ thể
Copy Trình tự số tin
nhắn và tên một
hộp thư
Sao chép các thiết lập các tin nhắn cụ thể cuối hộp
thư quy định
3.6. Máy chủ trả lời
Câu trả lời của máy chủ có ba hình thức: phản ứng tình trạng, dữ liệu máy chủ và
lệnh yêu cầu tiếp tục.
13
Phản hồi của dữ liệu máy chủ được xác định bởi “dữ liệu” trong phản ứng, được
mô tả theo chức năng chứ không phải cú pháp. Cú pháp chính xác của dữ liệu máy

chủ được mô tả trong phần cú pháp
Lệnh yêu cầu tiếp tục sử dụng mã thông báo “+” thay vì một tag
Phản ứng tình trạng được gắn thẻ cho thấy kết quả hoàn thành lệnh của khách
hàng, và có một thẻ phù hợp với lệnh
-Mã kết quả: Có ba mã kết quả chính có thể được gửi khi trả lời một lệnh và hai mã
sử dụng trong một số trường hợp đặc biệt
• OK: Kết quả tích cực, thường được gửi kèm với các từ khóa của lệnh đã
thành công. Có thể được gửi untagged trong lời chào đầu tiên của máy chủ
khi phiên bắt đâu
• NO: Kết quả tiêu cực. Khi được gắn thẻ, chỉ ra lệnh không thành công, khi
untagged, được coi là thông điệp cảnh báo chung về một số tình hình trên
máy chủ
• BAD: Chỉ thị một thông báo lỗi. Nó được gắn thẻ khi lỗi này trực tiếp liên
quan đến một lệnh đã được gửi, và mặt khác là untagged
• PREAUTH: Một thông báo untagged gửi vào lúc bắt đầu của một phiên làm
việc để cho biết rằng không có yêu cầu xác thực, chuyển trực tiếp sang trạng
thái xác thực
• BYE: Gửi khi máy chủ muốn đóng kết nối. Nó luôn luôn là untagged, và
được gửi trả lời bởi một lệnh LOGOUT hoặc khi kết nối phải đóng cửa vì lí
do nào khác
-Mã phản hồi: Được sử dụng để giao tiếp các thông tin với khách hàng. Câu trả lời
thường đi kèm văn bản mô tả các thông tin chi tiết về những gì đang được truyền
đạt. Dưới đây là các mã phản hồi được xác định bởi các tiêu chuẩn IMAP
• ALERT: Một thông điệp cảnh báo được gửi đến một khách hàng IMAP để
thông báo về một cái gì đó quan trọng
• BADCHARSET: Gửi khi tìm kiếm một bộ ký tự không được hỗ trợ
• CAPABILITY: Một danh sách các khả năng máy chủ có thể thực hiện
• PARSE: Gửi khi xảy ra lỗi phân tích cú pháp các tiêu đề hoặc nội dung
MIME của một tin nhắn email
• PERMANENTFLAGS: Truyền đạt một danh sách các cờ trạng thái tin nhắn

14
mà khách hàng được phép thao tác
• READ-ONLY: Thông báo cho khách hàng rằng hộp thư chỉ có thể truy cập
trong chế độ “ chỉ đọc”
• READ-WRITE: Thông báo cho khách hàng rằng hộp thư có thể truy cập
trong chế độ đọc- ghi
• TRYCREATE: Gửi khi lệnh APPEND hoặc lệnh COPY bị lỗi vì hộp thư
mục tiêu không có sẵn, đề nghị khách hàng cố gắng tạo hộp thư
• UIDNEXT: Gửi với một số thập phân mà xác định giá trị định danh duy
nhất để sử dụng trong hoạt động. Những định danh này cho phép mỗi tin
nhắn được xác định là duy nhất
• UIDVALIDITY: Gửi một số thập phân mà xác định tính hợp lệ của giá trị
định danh là duy nhất, được sử dụng để xác nhận dạng tin nhắn duy nhất
• UNSEEN: Gửi với một số thập phân mà thông báo với khách hàng rằng tin
nhắn được đánh dấu là tin nhắn mới
4. Phân tích các ưu, nhược điểm của giao thức IMAP
4.1. Ưu điểm
Khi bạn có thể xem được các header information mà không cần phải download
toàn bộ thư về, bạn có thể xóa được một số lượng lớn thư mà không sợ lãng phí
thời gian. Cũng vì vẫn lưu trữ trên server, bạn có thể truy cập hộp thư từ nhiều nơi
khác nhau và bảo đảm các tin nhắn luôn sẵn sàng. Và với việc thư vẫn còn lưu trên
server thì khi máy bị một sự cố cũng không cần lo về việc mất các tin nhắn
Kết nối và ngắt kết nối các phương thức hoạt động: Khi sử dụng POP, chỉ khi cần
tải tin nhắn mới, khách hàng mới kết nối với máy chủ e-mail một thời gian ngắn.
Khi sử dụng IMAP4, khách hàng thường xuyên kết nối khi giao diện người dùng
được kích hoạt và tải nội dung tin nhắn theo yêu cầu. Đối với người sử dụng nhiều
tin nhắn hoặc lượng tin nhắn lớn, mô hình sử dụng IMAP4 có thể dẫn đến thời gian
phản ứng nhanh hơn.
Nhiều khách hàng đồng thời kết nối đến cùng một hộp thư: Giao thức POP yêu cầu
khách hàng hiện đang kết nối sao cho chỉ duy nhất một khách hàng có thể kết nối

đến hộp thư ( chỉ hỗ trợ 1 USER). Ngược lại, các giao thức IMAP đặc biệt cho
phép truy cập đồng thời bởi nhiều khách hàng, và còn cung cấp cơ chế cho các
khách hàng đề phát hiện các thay đổi của hộp thư được thực hiện bởi những khách
hàng đồng thời kết nối khác.
15
Truy cập vào phần tin nhắn MIME và lấy một phần: Thường thì tất cả các e-mail
trên Internet được truyền đi trong định dạng MIME, cho phép tin nhắn có một cấu
trúc cây mà các nút lá bất kỳ là một loạt các bộ phận nội dung riêng lẻ và các nút
không lá bất kỳ là một loạt các kết nối liên tục nhiều lớp. Giao thức IMAP4 cho
phép khách hàng lấy bất kỳ một bộ phận riêng lẻ nào của MIME một cách riêng
biệt và cũng có thể lấy các phần của từng bộ phận riêng biệt hoặc toàn bộ tin nhắn.
Các cơ chế này cho phép khách hàng lấy phần văn bản của một tin nhắn mà không
cần lấy các tập tin đính kèm hoặc cho truyền tải nội dung khi nó đang được tải
xuống.
Thông tin trạng thái tin nhắn: Thông qua việc sử dụng các lá cờ được định nghĩa
trong giao thức IMAP4, khách hàng có thể theo dõi các thông điệp trạng thái; ví
dụ: có hay không tin nhắn đã được đọc, trả lời hoặc xóa bỏ. Những lá cờ này được
lưu trữ trên máy chủ, do đó khách hàng khác nhau truy cập vào cùng một hộp thư
trong các thời điểm khác nhau có thể phát hiện những thay đổi trạng thái được thực
hiện bởi các khách hàng khác. POP không cung cấp cơ chế lưu trữ trạng thái thông
tin như vậy cho khách hàng trên máy chủ, do đó nếu hai khách hàng POP khác
nhau cùng truy cập vào một hộp thư, trạng thái thông tin- như là tin nhắn đã được
truy cập hay chưa- sẽ không thể được đồng bộ hóa giữa các khách hàng. Giao thức
IMAP4 hỗ trợ cả hai loại: cờ hệ thống và từ khóa cho khách hàng. Cờ hệ thống
dành cho các thông tin trạng thái, ví dụ: xem tin nhắn đã được đọc hay chưa. Từ
khóa, thứ mà các máy chủ IMAP không hỗ trợ, cho phép tin nhắn đưa ra một hoặc
nhiều thẻ có ý nghĩa cho khách hàng. Bổ sung thêm người dùng tạo ra thẻ cho các
tin nhắn chính là một hoạt động được hỗ trợ bởi một số dịch vụ e-mail trên web,
chẳng hạn như Gmail.
Nhiều hộp thư trên một máy chủ: Khách hàng IMAP4 có thể tạo, đổi tên và/hoặc

xóa hộp thư trên máy chủ, và di chuyển tin nhắn giữa các hộp thư. Nhiều hỗ trợ
hộp thư cũng cho phép các máy chủ cung cấp quyền truy cập vào các thư mục
công cộng và được chia sẻ. Phần mở rộng (RFC 4314) Danh sách Điều khiển Truy
nhập ( Access Control List – ACL) IMAP4 có thể được sử dụng để điều chỉnh
quyền truy cập.
Tìm kiếm trên máy chủ: IMAP4 cung cấp một cơ chế để một khách hàng có thể
yêu cầu máy chủ tìm kiếm các tin nhắn đáp ứng vài tiêu chí nào đó. Cơ chế này
giúp tránh việc khách hàng yêu cầu tải về tất cả các tin nhắn trong hộp thư để thực
hiện tìm kiếm.
16
Xây dựng cơ chế mở rộng: Phản ánh kinh nghiệm của các giao thức Internet trước
đó, IMAP4 định nghĩa một cơ chế rõ ràng mà nó có thể được mở rộng. Rất nhiều
mở rộng cho giao thức cơ sở đã được đề xuất và được sử dụng phổ biến. IMAP2bis
không có cơ chế mở rộng và POP có một cơ chế được định nghĩa bởi RFC 2449
4.2. Nhược điểm
Không như POP3, IMAP yêu cầu truy cập liên tục trong suốt quá trình làm việc
với các e-mail. Do việc trữ tin nhắn trên server từ đó dẫn đến việc vượt quá giới
hạn không gian lưu trữ cho phép.
Trong khi IMAP tìm biện pháp khắc phục những thiếu sót của POP, .Phần lớn các
vấn đề phức tạp ( ví dụ: nhiều khách hàng cùng một lúc truy cập vào cùng mottj
hộp thư) được bù đắp bằng cách giải quyết như Maildir hoặc các phần phụ trợ cơ
sở dữ liệu phia máy chủ.
Các đặc điểm kỹ thuật của IMAP đã bị chỉ trích vì không đủ nghiêm ngặt và cho
phép tồn tại các hành vi có hiệu quả phủ nhận tính hữu dụng của nó. Ví dụ, đặc
điểm kỹ thuật nói rằng mỗi tin nhắn được lưu trữ trên máy chủ chỉ có một “ unique
ID” để cho phép các khách hàng xác định các tin nhắn mà họ đã nhìn giữa các
phiên. Tuy nhiên, đặc điểm kỹ thuật cũng cho phép các “ unique ID” bị vô hiệu
không hạn chế, thực tế điều này đã phủ nhận mục đích của họ.
Trừ khi việc lưu trữ thư và các thuật toán tìm kiếm trên máy chủ được thực hiện
một cách cẩn thận, một máy khách có khả năng tiêu tốn một lượng lớn tài nguyên

máy chủ khi tìm kiếm các hộp thư lớn.
Khách hàng của IMAP4 cần phải duy trì một kết nối TCP/IP cho máy chủ IMAP
để được thông báo về sự xuất hiện của thư mới. Thông báo thư đến được thực hiện
thông qua băng tần tín hiệu, góp phần tăng thêm sự phức tạp trong việc xử lý giao
thức IMAP bên máy khách. Một cá nhân đề xuất, push IMAP, sẽ mở rộng IMAP
để thực hiện đẩy thư điện tử bằng cách gửi thông báo toàn bộ thay vì chỉ một thông
báo. Tuy nhiên, push IMAP nói chung đã không được chấp nhận và hiện tại các
nhóm làm việc IETF đã giải quyết vấn đề bằng nhiều cách khác.
Không giống như một số giao thức độc quyền kết hợp giữa việc gửi và hoạt động
phục hồi, gửi một tin nhắn và lưu một bản sao trong thư mục phía máy chủ với một
khách hàng IMAP cấp độ cơ sở đòi hỏi truyền tải nội dung tin nhắn hai lần, một
lần để SMTP giao hàng và lần thứ hai để IMAP lưu trữ vào một thư mục dành cho
thư đã gửi. Điều này được khắc phục bởi một tập hợp các phần mở rộng được xác
17
định bởi nhóm làm việc IETF LEMONADE cho các thiết bị di động: URLAUTH
(RFC 4467) and CATENATE ( RFC 4469) trong IMAP và BURL ( RFC 4468)
trong SMTP-SUBMISSION. Các máy chủ POP không hỗ trợ thư mục phia máy
chủ, do đó khách hàng không có lựa chọn nào ngoài việc gửi thư trên máy khách.
Nhiều máy khách IMAP có thể được cấu hình để lưu thư đã gửi trong một thư mục
phía máy khách, hoặc để sao ẩn mình và sau đó lọc thư gửi đến thay vì lưu một bản
sao trong một thư mục trực tiếp. Ngoài ra “ bộ ba” LEMONADE, Courier Mail
Server cung cấp một phương pháp không tiêu chuẩn của việc gửi bằng IMAP bằng
cách sao chép một tin nhắn gửi vào một thư mục dành riêng cho hộp thư đi.
Cũng giống như POP, IMAP là một giao thức chỉ dành cho e-mail. Do đó, các
hạng mục như địa chỉ liên lạc, các cuộc hẹn hoặc công việc không thể được quản
lý hoặc truy cập bằng cách sử dụng IMAP.
18
5. Mô phỏng hoạt động
"Đặc điểm chính của IMAP là liên tục đồng bộ dữ liệu 2 chiều giữa máy chủ và máy
khách nên dữ liệu có tính đồng nhất cao, nhất là việc sử dụng cùng một tài khoản

email trên nhiều thiết bị. Dư liệu lưu tập trung trên máy chủ, dữ liệu trên máy khách
chỉ là bản sao tạm thời và có thể thay đổi khi dữ liệu trên máy chủ thay đổi và sau đó
được đồng bộ khi kết nối" Theo câu này tôi đang hiểu là chỉ có đăng nhập vào Mail
server mới xóa được e-mail trên máy chủ. còn máy khách (máy tớ -Slave) chỉ xóa dữ
liệu tạm thời trên máy khách chứ không thể xóa được e-mail trên máy chủ. Nhưng
thực tế thì khi xóa trên máy khách lập tức đồng bổ xóa trên máy chủ luôn ".
Giao thức IMAP
 IMAP được thiết kế năm 1986 để cho phép truy cập từ xa đến những email
được lưu trên một server đầu xa. Về cơ bản, sự khác nhau lớn nhất giữa hai
giao thức đó là POP tải email từ server về bộ nhớ cục bộ cố định trong khi
IMAP để mail trên server và chỉ lưu đệm (lưu trữ tạm thời) email một cách
cục bộ. Nói cách khác, IMAP là một dạng của lưu trữ đám mây.
IMAP được tạo ra để cho phép truy cập từ xa email lưu trên một server đầu xa. Ý
tưởng là cho phép nhiều máy khách hay người dùng quản lý cùng một hộp thư đến.
Vì vậy, dù bạn có đăng nhập từ máy tính tại nhà hay máy tính công ty thì bạn sẽ luôn
thấy cùng email và cấu trúc thư mục do chúng được lưu trên server và tất cả những
thay đổi bạn tạo ra với các bản sao cục bộ ngay lập tức được đồng bộ với server. Kết
quả là, IMAP có những ưu điểm như sau: Mail được hỗ trợ truy cập từ nhiều địa
điểm khác nhau. Xem nhanh hơn khi chỉ có các tiêu đề mail được tải về đến khi nội
dung được yêu cầu rõ ràng. Mail được dự phòng tự động trên server và cho phép lưu
mail cục bộ.
19
Mô Phỏng giao thức IMAP
Cấu hình mail client sử dụng IMAP
Khi tạo mới một account, để cho account này có thể sử dung các chương trình lấy
mail như OutLook Express, Microsoft Outlook, Thunderbird…. thì ta phải enable
POP để cho phép các chương trình như OutLook Express, Microsoft Outlook,
Thunderbird lấy mail về:
1. Bật chức năng tải POP:
2. Cấu hình các chương trình lấy mail:

Máy chủ
(IMAP) Thư
Đến - yêu cầu
SSL:
imap.gmail.com Sử dụng SSL: Có Cổng: 993
Máy chủ
(SMTP) Thư
Gửi đi - yêu cầu
TLS:
smtp.gmail.com (sử dụng xác thực) Sử dụng Xác
thực: Có Sử dụng STARTTLS: Có (một số ứng
dụng khách gọi STARTTLS là SSL) Cổng:465
hoặc 587
• Outlook Express
• Microsoft Outlook 2010
• Thunderbird
I. Enabling IMAP
1. Đăng nhập vào Google Mail của mail.hcmus.edu.vn
2. Click Mail Settings
20
3. Click Forwarding and POP/IMAP.
1. Chọn Enable IMAP
2. Click Save Changes.
II. Cấu hình các chương trình lấy mail như OutLook Express, Microsoft
Outlook, Thunderbird
21
1. OUTLOOK EXPRESS
1. Khởi động mở chương trình Outlook Express, trên thanh menu click Tools ->
chọn Accounts
2. Click Add, và chọn Mail…

3. Nhận tên của bạn vào ô Display name, tiếp tục click Next
4. Nhập đầy đủ địa chỉ thư điện tử Gmail của bạn vào ô Email address, click Next
22
5. Chọn giao thức IMAP trong mục My Incoming mail…, nhập dòng
chữ imap.gmail.com vào ô Incoming mail (POP3, IMAP or HTTP) server, và
nhập smtp.gmail.com trong ô Outgoing mail (SMTP) server. Tiếp tục click Next
6. Nhập tên truy cập tài khoản Gmail của bạn trong ô Account name, và nhập mật
khẩu vào ô Password, click Next, sau đó click tiếpFinish
23
7. Trở lại cửa sổ chính của Outlook Express, bạn sẽ thấy xuất hiện thư
mục imap.gmail.com (vị trí phía dưới của panel bên trái), bạn click chuột phải
vào imap.gmail.com và chọn Properties. Một cửa sổ mới xuất hiện.
8. Chuyển sang thẻ Advanced, trong mục Outgoing Mail (SMTP) nhập vào giá
trị 465, và click chọn vào ô This server requires a secure connection (SSL) phía
dưới đó. Trong mục Incoming mail (IMAP) nhập vào giá trị 993, và click chọn vào
ô This server requires a secure connection (SSL) phía dưới.
24
9. Tiếp tục chuyển sang thẻ Servers và click chọn vào ô My server requires
authentication (vị trí phía dưới của hộp thoại)
11. Cuối cùng, click OK để hoàn thành và đóng lại các cửa sổ.
25

Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×