인터넷 메시지 액세스 프로토콜

Internet Message Access Protocol

컴퓨팅에, 인터넷 메시지 접속 프로토콜(IMAP)는 인터넷 standardprotocol 이메일 클라이언트에서 메일을 서버에서 TCP/IP 연결을 통해 이메일 메시지를 검색하는 데 사용된다.[1]IMAP에 의해 정의된다 RFC9051.

IMAP은 이메일까지 사용자가 명시적으로 그들을 삭제합니다 그러므로 고객들이 일반적으로 서버에 메시지를 남기에 전자 메일 클라이언트들, 완성이 관리하는 것의 목표를 가지고 설계되었다.한 IMAP서버 일반적으로 포트 번호 143로 듣는다.IMAP/TLS에(통합 공수 기획 시스템)포트 번호를 993년 배정된다.[2][3]

사실상 모든 현대 전자 메일 클라이언트와 서버 IMAP, 이메일 검색을 위해 그것은 이전의 POP3(우체국 프로토콜)그 두 가장 보편적인 표준 프로토콜을 지원한다.[4]Gmail과 Outlook.com과 같은 많은 웹 메일 서비스 제공업체들도 IMAP과 POP3를 모두 지원합니다.

이메일 프로토콜

인터넷 메시지 액세스 프로토콜은 전자 메일 클라이언트가 원격 메일 서버의 전자 메일에 액세스할 수 있도록 하는 응용 프로그램 계층 인터넷 프로토콜입니다.현재 버전은 RFC 9051정의되어 있습니다.IMAP 서버는 일반적으로 well-known 포트 143을 [2][3]리슨하지만 IMAP over SSL/TLS(IMAPS)는 993을 사용합니다.

수신 전자 메일 메시지는 수신자의 전자 메일 상자에 메시지를 저장하는 전자 메일 서버로 전송됩니다.사용자는 여러 전자 메일 검색 프로토콜 중 하나를 사용하는 전자 메일 클라이언트를 사용하여 메시지를 검색합니다.일부 클라이언트 및 서버는 벤더 고유의 독점 [5]프로토콜을 우선적으로 사용하지만, 거의 모든 클라이언트가 이메일 검색에 POP 및 IMAP를 지원하므로 Pegasus Mail이나 Mozilla Thunderbird 등의 많은 전자 메일 클라이언트 중에서 자유롭게 이러한 서버에 액세스하여 클라이언트를 다른 서버와 함께 사용할 수 있습니다.

IMAP을 사용하는 전자 메일 클라이언트는 일반적으로 사용자가 메시지를 명시적으로 삭제할 때까지 서버에 메시지를 남깁니다.IMAP 조작의 이러한 특징과 그 외의 특징에 의해, 복수의 클라이언트가 같은 메일 박스를 관리할 수 있습니다.대부분의 전자 메일 클라이언트는 [6]메시지를 검색하기 위해 POP(Post Office Protocol)에 IMAP을 지원합니다.IMAP은 메일 저장소에 대한 액세스를 제공합니다.클라이언트는 메시지의 로컬복사를 저장할 수 있지만 이것들은 일시적인 캐시로 간주됩니다.

역사

IMAP은 널리 사용되는 POP, 단순히 우편함의 내용을 검색하기 위한 프로토콜과는 대조적으로 Mark Crispin에 의해 1986년에 원격 액세스 우편함 프로토콜로 설계되었다.

현재의 VERSION 4rev1(IMAP4)까지, 이하와 같이 몇번이나 반복되고 있습니다.

원본 IMAP

원래의 중간 메일 액세스 프로토콜은 Xerox Lisp Machine 클라이언트 및 TOPS-20 서버로 구현되었습니다.

원래 임시 프로토콜 규격 또는 해당 소프트웨어의 복사본이 [7][8]없습니다.일부 명령과 응답은 IMAP2와 유사했지만, 중간 프로토콜은 명령/응답 태그가 부족하여 다른 모든 버전의 IMAP와 호환되지 않았습니다.

IMAP2

그 임시적 프로토콜 빨리 열릴 인터랙티브 메일 접속 프로토콜(IMAP2), RFC1064년에 정의된(1988년)에 의해 나중에 RFC1176년(1990년에)가 편곡한 대체되었다.IMAP2, 최초의 공개적으로 분산 버전은 command/response 태그를 소개했다.

IMAP3

IMAP.[9]의 IMAP3은 극도로 희귀한 변종이다.이 프로토콜은 RFC1203년으로 1991년에 발표되었다.그것은 특별히 RFC1176년, 스스로 IMAP2에게 수정을 제안했다에 대한 대응책 제안으로 쓰여졌다.[10]IMAP3 시장에 의해서 받아들여지지 않았다.[11][12]그 인터넷 기술 관리 그룹은 역사적 프로토콜로 1993년 RFC1203"대화형 메일 접속 프로토콜-버전 3" 바뀌었다.그 IMAP워킹 그룹을 기점으로 RFC1176년(IMAP2)보다는 RFC1203년(IMAP3)을 사용했다.[13][14]

IMAP2bis

MIME의 출현과 함께 IMAP2고 IMAP2에 결석했다 우편함 관리 기능(, 삭제, 이름, 메시지 시티를 만드)을 추가하 MIME신체 구조를 지원하기 위해 확대되었다.이러한 실험 개정 IMAP2bis, 명세서 무환 형태로 출판된 적이 없었다.IMAP2bis의 한 인터넷 초안은 IETFIMAP워킹 그룹이 10월 1993년에 발간했습니다.이 초안은 다음과 같은 이전 규격:미발표의 IMAP2bis에 바탕을 두었다.TXT문서, RFC1176년, RFC1064년(IMAP2).[15]그 IMAP2bis.TXT초안 1992년 12월로 확장 IMAP2이 국가로 기록했다.[16]파인의 초기 버전 널리 IMAP2bis support[9](파인 4나중에 IMAP4rev1을 지원하)로 배포되었다.

IMAP4

1990년대 초에 IETF에서 결성된 IMAP 작업 그룹이 IMAP2bis 설계의 책임을 이어받았습니다.IMAP WG는 혼란을 피하기 위해 IMAP2bis의 이름을 IMAP4로 바꾸기로 결정했습니다.

POP에 대한 이점

연결 모드 및 연결 해제 모드

POP를 사용하는 경우 클라이언트는 일반적으로 새로운 메시지를 다운로드하는 데 걸리는 시간만큼 전자 메일서버에 짧게 접속합니다.IMAP4 를 사용하는 경우, 클라이언트는, 유저 인터페이스가 액티브하고, 온 디맨드로 메세지 컨텐츠를 다운로드하는 한, 접속 상태를 유지하는 경우가 많습니다.메시지가 많거나 큰 사용자의 경우 이 IMAP4 사용 패턴에 따라 응답 시간이 단축될 수 있습니다.

여러 개의 동시 클라이언트

POP 프로토콜을 사용하려면 현재 연결된 클라이언트가 우편함에 연결된 유일한 클라이언트여야 합니다.대조적으로 IMAP 프로토콜은 여러 클라이언트에 의한 동시 액세스를 특별히 허용하고 클라이언트가 동시에 연결된 다른 클라이언트에 의해 우편함에 수행된 변경을 감지하는 메커니즘을 제공합니다.예를 들어 RFC 3501 섹션 5.2를 참조해 주십시오.이 예에서는 '복수의 에이전트에 의한 동일한 우편함에 대한 동시 액세스'를 구체적으로 언급하고 있습니다.

MIME 메시지 부분 및 부분 가져오기 액세스

일반적으로 모든 인터넷 전자 메일은 MIME 형식으로 전송되므로 리프 노드가 다양한 단일 파트 컨텐츠 유형 중 하나이고 리프 노드가 아닌 노드가 다양한 멀티 파트 유형 중 하나인 트리 구조를 가질 수 있습니다.IMAP4 프로토콜을 통해 클라이언트는 개별 MIME 부분을 개별적으로 검색할 수 있으며 개별 부분 또는 전체 메시지의 일부도 검색할 수 있습니다.이러한 메커니즘을 통해 클라이언트는 첨부 파일을 가져오지 않고 메시지의 텍스트 부분을 가져오거나 가져올 때 콘텐츠를 스트리밍할 수 있습니다.

메시지 상태 정보

IMAP4 프로토콜에 정의된 플래그를 사용하여 클라이언트는 메시지 상태를 추적할 수 있습니다. 예를 들어 메시지를 읽었는지, 회신했는지, 삭제했는지 여부입니다.이러한 플래그는 서버에 저장되므로 같은 우편함에 서로 다른 시간에 액세스하는 다른 클라이언트가 다른 클라이언트에 의해 수행된 상태 변경을 감지할 수 있습니다.POP에서는 클라이언트에 이러한 상태 정보를 서버에 저장하는 메커니즘은 제공되지 않습니다.따라서 1명의 사용자가 2개의 다른 POP 클라이언트를 사용하여 우편함에 액세스하는 경우 메시지 접근 여부 등의 상태 정보를 클라이언트 간에 동기화할 수 없습니다.IMAP4 프로토콜은 미리 정의된 시스템 플래그와 클라이언트 정의 키워드를 모두 지원합니다.시스템 플래그는 메시지 읽기 여부 등의 상태 정보를 나타냅니다.모든 IMAP 서버에서 지원되지 않는 키워드를 사용하면 클라이언트에 따라 의미가 달라지는1개 이상의 태그를 메시지에 지정할 수 있습니다.IMAP 키워드는 웹 기반 전자 메일서비스의 독자 라벨과 혼동하지 마십시오.이러한 라벨은 대응하는 독자 사양 서버에 의해 IMAP 폴더로 변환될 수 있습니다.

서버상의 여러 우편함

IMAP4 클라이언트는, 서버상에서 메일 박스(통상은 폴더로서 유저에게 표시)를 작성, 이름 변경, 및 삭제해, 메일 박스간에 메세지를 카피할 수 있습니다.복수의 메일 박스를 서포트하고 있기 때문에, 공유 폴더와 공용 폴더에의 액세스도 가능하게 됩니다.IMAP4 Access Control List(ACL; 접근컨트롤 리스트) 확장(RFC 4314)을 사용하여 접근권을 규제할 수 있습니다.

서버측 검색

IMAP4는 클라이언트가 서버에 다양한 기준을 충족하는 메시지를 검색하도록 요구하는 메커니즘을 제공합니다.이 메커니즘에 의해 클라이언트는 이러한 검색을 수행하기 위해 우편함 내의 모든 메시지를 다운로드하지 않아도 됩니다.

내장 확장 메커니즘

이전의 인터넷 프로토콜의 경험을 반영하여, IMAP4는 그것이 확장될 수 있는 명시적 메커니즘을 정의한다.기본 프로토콜에 대한 많은 IMAP4 확장들이 제안되었고 일반적으로 사용되고 있습니다.IMAP2bis에는 확장 메커니즘이 없으며 POP에는 RFC 2449에서 정의된 확장 메커니즘이 있습니다.

서버 푸시 알림

IMAP IDLE은 메일 서버가 연결된 클라이언트에 새 메일이 도착했기 때문에 우편함이 변경되었음을 통지하는 방법을 제공합니다.POP는 비교할 수 있는 기능을 제공하지 않으며, 이메일 클라이언트는 정기적으로 POP 서버에 연결하여 새 메일을 확인해야 합니다.

단점들

IMAP은 POP의 많은 단점을 보완하지만, 이로 인해 본질적으로 복잡성이 증가합니다.이러한 복잡성의 대부분은(같은 메일 박스에 동시에 액세스 하는 복수의 클라이언트 등) Maildir나 데이터베이스 백엔드와 같은 서버측의 회피책으로 보충됩니다.

IMAP 규격은 충분히 엄격하지 않고 그 유용성을 효과적으로 부정하는 행동을 허용한다는 비판을 받아왔다.예를 들어 서버에 저장된 각 메시지는 클라이언트가 세션 간에 이미 본 메시지를 식별할 수 있도록 하기 위해 "고유 ID"를 갖는다고 명시되어 있습니다.단, 이 사양에서는 이들 UID를 제한 없이 무효로 할 수 [17]있어 사실상 목적에 어긋납니다.

서버상의 메일 스토리지 및 검색 알고리즘을 신중하게 실장하지 않는 한, 클라이언트는 대량의 메일 박스를 검색할 때 대량의 서버 자원을 소비할 가능성이 있습니다.

IMAP4 클라이언트는, 새로운 메일의 도착을 통지받기 위해서, IMAP 서버에의 TCP/IP 접속을 유지할 필요가 있습니다.메일 도착 통지는 인밴드 시그널링을 통해 이루어지며, 이는 클라이언트 측 IMAP 프로토콜 처리의 복잡성에 [18]어느 정도 기여합니다.개인 제안인 push IMAP은 단순히 알림이 아닌 전체 메시지를 전송함으로써 IMAP을 확장하여 푸시 이메일을 구현합니다.그러나 푸시 IMAP은 일반적으로 받아들여지지 않으며 현재 IETF 작업은 다른 방법으로 문제를 해결했습니다(자세한 내용은 레모네이드 프로파일 참조).

송신 및 검색 조작을 조합한 일부 소유권 프로토콜과 달리 메시지를 발송하고 기본 수준의 IMAP 클라이언트를 사용하여 복사본을 서버 측 폴더에 저장하려면 메시지 내용을 두 번 전송해야 합니다. 한 번은 전달하기 위해 SMTP에 전송하고 두 번째는 보낸 메일 폴더에 저장하기 위해 IMAP에 전송해야 합니다.이것은, IMAP 의 URLAUTH(RFC 4467)와 CATENATE(RFC 4469) 및 SMTP-SUBMSION 의 BURL(RFC 4468) 등, 모바일 디바이스의 IETF Lemonade Profile 에 의해서 정의되고 있는 일련의 확장으로 해결됩니다.또한 Courier Mail Server는 발신 메시지를 전용 발송함 [19]폴더에 복사하여 IMAP을 사용하여 발송하는 비표준 방법을 제공합니다.

보안.

클라이언트와 서버간의 IMAP 접속을 암호화로 보호하려면 , SSL/TLS [2][3]를 사용하는 TCP 포토 993 의 IMAPS 를 사용할 수 있습니다.2018년 1월 현재 권장 메커니즘은 [20]TLS입니다.

또는 STARTTLS를 사용하여 처음에 평문을 통해 통신한 후 포트 143에 접속할 때 연결을 암호화할 수 있습니다.

대화상자의 예

다음으로 RFC 3501 섹션8에서 가져온IMAP 접속 예를 나타냅니다.

C:<>, connection>. S:* 좋아 IMAP4rev1 서비스 준비하는 C:a001 로그인 mrc 비밀 S:a001 좋아 LOGINC을 완성했다:a002 보냈어 선택 S:*18EXISTS S:*FLAGS(\Answered \Deleted \Seen \Draft \Flagged)S:*2RECENT S:* 좋아[UNSEEN 17]메시지 17일 첫번째 보이지 않는 메시지 S:* 좋아[UIDVALIDITY 3857529045]UIDs 유효한 S:a002 좋아요[.READ-WRITE] SELECT completed C: a003 FETCH 12 full S: * 12 FETCH (FLAGS (\Seen) INTERNALDATE " 17 - Jul - 1996 02 : 44 : 25 - 0700 " RFC 822사이즈 4286 봉투('1996년 7월 17일(수)' 02:23:25-0700(PDT)' IMAP4rev1 WG mtg 요약 및 분("Terry Gray" NIL "회색" "cac")washington.edu) ("Terry Gray" NIL "disclosed" ("Terry Gray" "NIL "disclosed")")washington.edu) ("Terry Gray" NIL "disclosed" ("Terry Gray" "NIL "disclosed")")washington.edu) (NIL NIL "http://fil" "disclosed").washington.edu) (NIL NIL "분" "CNRI").레스턴 VA('John Klensin' NIL 'KLENSIN' MIT).EDU) NIL "<B27397-0100000@cac"washington.edu>") 본문 ("TEXT" "PLain" ("CHARSET" "US-ASCII") NIL NIL "7BIT" 3028 92) S: a003 OK FETCH 완료 C: a004 FETCH 12 본문[fatch] S: * 12 FETCH (BODER [ HEADER] {342) S:1996년 7월 17일 (수) 02:23:25 - 0700 (PDT) S: 시작:테리 그레이 <gray@cac>washington.edu > S : 제목 :IMAP4rev1 WG mtg 요약 및 분 S: 종료: imap@cac.washington.edu S: cc: minutes@CNRI.레스턴 VA존 클렌신 <KLENSIN@MIT.EDU> S: 메시지 ID: <B27397-0100000@cac>washington.edu> S: MIME 버전: 1.0 S: Content-Type: TEXT/PLain; CHARSET=US-ASCII S: S: ) S: a004 OK FETCH 완료 C a005 스토어 12 + flags \ 12 FETCH (보기\Deleted)S: a005 OK + FLAGS 완료 C: a006 로그아웃 S: * BYE IMAP4rev1 서버 종료 연결 S: a006 OK LOGOUT 완료

「 」를 참조해 주세요.

레퍼런스

  1. ^ Dean, Tamara (2010). Network+ Guide to Networks. Delmar. p. 519. ISBN 978-1-42390245-4.
  2. ^ a b c Blum, Richard (December 15, 2002). Open Source E-mail Security. Sams Publishing. ISBN 9780672322372 – via Google Books.
  3. ^ a b c Garfinkel, Simson; Spafford, Gene; Schwartz, Alan (December 15, 2003). Practical UNIX and Internet Security. "O'Reilly Media, Inc.". ISBN 9780596003234 – via Google Books.
  4. ^ Komarinski, Mark (2000). Red Hat Linux System Administration Handbook. Prentice Hall. p. 179.
  5. ^ 예를 들어 마이크로소프트 아웃룩 클라이언트는 마이크로소프트 독점 프로토콜인 MAPI를 사용하여 마이크로소프트 Exchange 서버와 통신합니다.IBM의 Notes 클라이언트는 Domino 서버와 통신할 때 유사한 방식으로 작동합니다.
  6. ^ Mullet, Diana (2000). Managing IMAP. O'Reilly. p. 25. ISBN 0-596-00012-X.
  7. ^ Crispin, Mark (13 February 2012). "Re: [imap5] Designing a new replacement protocol for IMAP". imap5 (Mailing list). alpine.OSX.2.00.1202131243200.38441@hsinghsing.panda.com. Retrieved 26 November 2014. Knowledge of the original IMAP (before IMAP2) exists primarily in my mind as all the original IMAP specifications and implementations were replaced with IMAP2.
  8. ^ 서비스 이름Transport Protocol 포트 번호 레지스트리.Iana.org (2013-07-12)2013-07-17에 회수.
  9. ^ a b "RFC 2061 - IMAP4 COMPATIBILITY WITH IMAP2BIS". IETF. 1996. Retrieved 2010-08-21.
  10. ^ "INTERACTIVE MAIL ACCESS PROTOCOL - VERSION 3". IETF. 1991. Retrieved 2010-08-21.
  11. ^ "IMAP2, IMAP2bis, IMAP3, IMAP4, IMAP4rev1 (LAN Mail Protocols)". Retrieved 2010-08-21.
  12. ^ "IMAP Overview, History, Versions and Standards". Retrieved 2010-08-21.
  13. ^ "Protocol Action: Interactive Mail Access Protocol — Version 3 to Historic (IETF mail archive)". 1993. Retrieved 2010-08-21.
  14. ^ "Innosoft and POP/IMAP protocols? (mail archive)". 1993. Retrieved 2010-08-21.
  15. ^ "INTERACTIVE MAIL ACCESS PROTOCOL - VERSION 2bis (Internet Draft)". IETF. 1993. Retrieved 2010-08-21.
  16. ^ "IMAP2BIS -- EXTENSIONS TO THE IMAP2 PROTOCOL (DRAFT)". 1992. Archived from the original on 2011-07-18. Retrieved 2010-08-21.
  17. ^ "IMAP implementation in Sup, an e-mail client written in Ruby". rubyforge.com. Archived from the original on 2007-12-12. Retrieved 2011-02-22.
  18. ^ "IMAP IDLE: The best approach for 'push' e-mail". Isode.com. Retrieved 2009-07-30.
  19. ^ "Courier-IMAP: Sending mail via an IMAP connection". Double Precision, Inc. Retrieved 2013-09-24.
  20. ^ RFC 8314. doi:10.17487/RFC8314.

추가 정보

외부 링크