Internet Message Access Protocol

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 được xác định bởi RFC 3501.

IMAP được thiết kế với mục tiêu cho phép quản lý hoàn toàn hộp thư email của nhiều khách hàng email, do đó, khách hàng thường để lại thư trên máy chủ cho đến khi người dùng xóa chúng một cách rõ ràng. Một máy chủ IMAP thường lắng nghe trên cổng số 143. IMAP qua SSL (IMAPS) được gán số cổng 993.

Hầu như tất cả các máy khách và máy chủ email hiện đại đều hỗ trợ IMAP, cùng với POP3 (Post Office Protocol) trước đó là hai giao thức tiêu chuẩn phổ biến nhất để truy xuất email. Nhiều nhà cung cấp dịch vụ webmail như Gmail, Outlook.com và Yahoo! Mail cũng cung cấp hỗ trợ cho IMAP hoặc POP3.

Giao thức thư điện tử
Giao thức truy cập thư Internet là một giao thức Internet của lớp ứng dụng cho phép máy khách email truy cập email trên máy chủ thư từ xa. Phiên bản hiện tại được xác định bởi RFC 3501. Một máy chủ IMAP thường lắng nghe trên cổng 143 nổi tiếng, trong khi IMAP qua SSL (IMAPS) sử dụng 993.

Tin nhắn e-mail đến được gửi đến một máy chủ e-mail lưu trữ tin nhắn trong hộp e-mail của người nhận. Người dùng truy xuất các thư với ứng dụng khách email sử dụng một trong số các giao thức truy xuất email. Mặc dù một số khách hàng và máy chủ ưu tiên sử dụng các giao thức độc quyền, dành riêng cho nhà cung cấp, hầu như tất cả đều hỗ trợ POP và IMAP để truy xuất email - cho phép nhiều lựa chọn miễn phí giữa nhiều ứng dụng khách email như Pegasus Mail hoặc Mozilla Thunderbird để truy cập các máy chủ này và cho phép các máy khách được sử dụng với các máy chủ khác.

Các ứng dụng email khách sử dụng IMAP thường để lại tin nhắn trên máy chủ cho đến khi người dùng xóa chúng một cách rõ ràng. Điều này và các đặc điểm khác của hoạt động IMAP cho phép nhiều khách hàng quản lý cùng một hộp thư. Hầu hết các ứng dụng khách email đều hỗ trợ IMAP ngoài Post Office Protocol (POP) để truy xuất thư. IMAP cung cấp quyền truy cập vào bộ lưu trữ thư. Khách hàng có thể lưu trữ các bản sao cục bộ của tin nhắn, nhưng chúng được coi là bộ đệm tạm thời.

Lịch sử
IMAP được Mark Crispin thiết kế vào năm 1986 như một giao thức hộp thư truy cập từ xa, trái ngược với POP được sử dụng rộng rãi, một giao thức chỉ đơn giản là lấy nội dung của hộp thư.

Nó đã trải qua một số phiên bản trước VERSION 4rev1 (MAPI4) hiện tại, như chi tiết dưới đây:

IMAP ban đầu
Interim Mail Access Protocol ban đầu được triển khai dưới dạng máy khách Xerox Lisp và máy chủ TOPS-20.

Không có bản sao của đặc tả giao thức tạm thời gốc hoặc phần mềm của nó tồn tại. Mặc dù một số lệnh và phản hồi của nó tương tự IMAP2, giao thức tạm thời thiếu gắn thẻ lệnh / phản hồ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 IMAP khác.

IMAP2
Giao thức tạm thời nhanh chóng được thay thế bằng Interactive Mail Access Protocol (IMAP2), được xác định trong RFC 1064 (năm 1988) và sau đó được cập nhật bởi RFC 1176 (năm 1990). IMAP2 đã giới thiệu gắn thẻ lệnh / phản hồi và là phiên bản phân phối công khai đầu tiên.

IMAP3
IMAP3 là một biến thể cực kỳ hiếm của IMAP. Nó được xuất bản với tên RFC 1203 vào năm 1991. Nó được viết cụ thể như một đề xuất phản đối với RFC 1176, chính nó đã đề xuất sửa đổi cho IMAP2. IMAP3 không bao giờ được chấp nhận bởi thị trường. IESG phân loại lại RFC1203 "Giao thức truy cập thư tương tác - Phiên bản 3" như một giao thức Lịch sử vào năm 1993. Nhóm làm việc IMAP đã sử dụng RFC1176 (IMAP2) thay vì RFC1203 (IMAP3) làm điểm bắt đầu.

IMAP2bis
Với sự ra đời của MIME, IMAP2 đã được mở rộng để hỗ trợ cấu trúc đối tượng MIME và thêm chức năng quản lý hộp thư (tạo, xóa, đổi tên, tải lên tin nhắn) không có trong IMAP2. Bản sửa đổi thử nghiệm này được gọi là IMAP2bis; đặc điểm kỹ thuật của nó đã không bao giờ được công bố ở dạng không dự thảo. Một bản nháp của IMAP2bis đã được Nhóm làm việc IETF IMAP xuất bản vào tháng 10 năm 1993. Dự thảo này dựa trên các thông số kỹ thuật trước đây: IMAP2bis chưa được công bố . Tài liệu TXT, RFC1176 và RFC1064 (IMAP2). IMAP2bis. Bản nháp TXT đã ghi lại trạng thái của các phần mở rộng cho IMAP2 kể từ tháng 12 năm 1992. Các phiên bản đầu tiên của Thông được phân phối rộng rãi với hỗ trợ IMAP2bis

Trừ khi các thuật toán lưu trữ và tìm kiếm thư trên máy chủ được triển khai cẩn thận, khách hàng có khả năng tiêu thụ 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.

Các máy khách IMAP4 cần duy trì kết nối TCP / IP đến máy chủ IMAP để được thông báo về sự xuất hiện của thư mới. Thông báo về việc gửi thư được thực hiện thông qua báo hiệu trong băng tần, điều này góp phần vào sự phức tạp của việc xử lý giao thức IMAP phía khách hàng. Một đề xuất riêng, đẩy IMAP, sẽ mở rộng IMAP để triển khai e-mail đẩy bằng cách gửi toàn bộ thư thay vì chỉ một thông báo. Tuy nhiên, việc đẩy IMAP thường không được chấp nhận và công việc IETF hiện tại đã giải quyết vấn đề theo những cách khác (xem Hồ sơ Lemonade để biết thêm thông tin).

Không giống như một số giao thức độc quyền kết hợp các hoạt động gửi và truy xuất, gửi tin nhắn và lưu một bản sao trong thư mục phía máy chủ với ứng dụng khách IMAP cấp cơ sở yêu cầu truyền nội dung thư hai lần, một lần đến SMTP để gửi và lần thứ hai đến IMAP lưu trữ trong một thư mục thư đã gửi. Điều này được giải quyết bằng một bộ tiện ích mở rộng được xác định bởi IETF Lemonade Profile cho thiết bị di động: URLAUTH (RFC 4467) và CATENATE (RFC 4469) trong IMAP và BURL (RFC 4468) trong SMTP-SUBMISSION. Ngoài ra, Courier Mail Server cung cấp một phương thức gửi không chuẩn bằng IMAP bằng cách sao chép thư đi vào thư mục hộp thư đi chuyên dụng.

Bảo mật
Để bảo mật bằng mật mã các kết nối IMAP, IMAPS trên cổng TCP 993 có thể được sử dụng, sử dụng TLS. Kể từ RFC 8314, đây là cơ chế được khuyến nghị.

Ngoài ra, STARTTLS có thể được sử dụng để cung cấp liên lạc an toàn giữa MUA giao tiếp với MSA hoặc MTA thực hiện Giao thức SMTP.

Ví dụ về hộp thoại
Đây là một kết nối IMAP ví dụ như được lấy từ RFC 3501 phần 8:
C:
S: OK IMAP4rev1 Service Ready
C: a001 login mrc secret
S: a001 OK LOGIN completed
C: a002 select inbox
S: 18 EXISTS
S: FLAGS (\Answered \Flagged \Deleted \Seen \Draft)
S: 2 RECENT
S: OK [UNSEEN 17] Message 17 is the first unseen message
S: OK [UIDVALIDITY 3857529045] UIDs valid
S: a002 OK [READ-WRITE] SELECT completed
C: a003 fetch 12 full
S: 12 FETCH (FLAGS (\Seen) INTERNALDATE "17-Jul-1996 02:44:25 -0700"
RFC822.SIZE 4286 ENVELOPE ("Wed, 17 Jul 1996 02:23:25 -0700 (PDT)"
"IMAP4rev1 WG mtg summary and minutes"
(("Terry Gray" NIL "gray" "cac.washington.edu"))
(("Terry Gray" NIL "gray" "cac.washington.edu"))
(("Terry Gray" NIL "gray" "cac.washington.edu"))
((NIL NIL "imap" "cac.washington.edu"))
((NIL NIL "minutes" "CNRI.Reston.VA.US")
("John Klensin" NIL "KLENSIN" "MIT.EDU")) NIL NIL
"")
BODY ("TEXT" "PLAIN" ("CHARSET" "US-ASCII") NIL NIL "7BIT" 3028
92))
S: a003 OK FETCH completed
C: a004 fetch 12 body[header]
S: 12 FETCH (BODY[HEADER] {342}
S: Date: Wed, 17 Jul 1996 02:23:25 -0700 (PDT)
S: From: Terry Gray
S: Subject: IMAP4rev1 WG mtg summary and minutes
S: To: imap@cac.washington.edu
S: cc: minutes@CNRI.Reston.VA.US, John Klensin
S: Message-Id:
S: MIME-Version: 1.0
S: Content-Type: TEXT/PLAIN; CHARSET=US-ASCII
S:
S:)
S: a004 OK FETCH completed
C a005 store 12 +flags \deleted
S: 12 FETCH (FLAGS (\Seen \Deleted))
S: a005 OK +FLAGS completed
C: a006 logout
S: BYE IMAP4rev1 server terminating connection
S: a006 OK LOGOUT completed

Tham khảo

Liên kết ngoài

RFC 3501 - đặc điểm kỹ thuật của phiên bản IMAP 4 phiên bản 1
RFC 2683 - Gợi ý triển khai IMAP RFC
RFC 2177 - Lệnh IDLE IMAP4
Phần mở rộng IMAP cho các ứng dụng lớp di động được trình bày và minh họa trong luận án tiến sĩ