Internet Message Access Protocol: Difference between revisions

Jump to navigation Jump to search
imported>GünniX
m cite web
 
Fixed typo
 
Line 6: Line 6:
In computing, the '''Internet Message Access Protocol''' ('''IMAP''') is an [[Internet standard]] [[protocol (computing)|protocol]] used by [[email client]]s to retrieve [[email]] messages from a [[mail server]] over a [[Internet protocol suite|TCP/IP]] connection.<ref name="Network+ Guide to Networks">{{cite book | last = Dean | first = Tamara | title = Network+ Guide to Networks | publisher = Delmar | year = 2010 | page = 519 | url = https://books.google.com/books?id=UD0h_GqgbHgC | isbn = 978-1-42390245-4 | access-date = 2020-12-25 | archive-date = 2021-02-05 | archive-url = https://web.archive.org/web/20210205073001/https://books.google.com/books?id=UD0h_GqgbHgC | url-status = live }}</ref> IMAP is defined by {{IETF RFC|9051}}.
In computing, the '''Internet Message Access Protocol''' ('''IMAP''') is an [[Internet standard]] [[protocol (computing)|protocol]] used by [[email client]]s to retrieve [[email]] messages from a [[mail server]] over a [[Internet protocol suite|TCP/IP]] connection.<ref name="Network+ Guide to Networks">{{cite book | last = Dean | first = Tamara | title = Network+ Guide to Networks | publisher = Delmar | year = 2010 | page = 519 | url = https://books.google.com/books?id=UD0h_GqgbHgC | isbn = 978-1-42390245-4 | access-date = 2020-12-25 | archive-date = 2021-02-05 | archive-url = https://web.archive.org/web/20210205073001/https://books.google.com/books?id=UD0h_GqgbHgC | url-status = live }}</ref> IMAP is defined by {{IETF RFC|9051}}.


IMAP was designed with the goal of permitting complete management of an [[email box]] by multiple email clients, therefore clients generally leave messages on the server until the user explicitly deletes them. An IMAP server typically listens on [[port number]] 143. IMAP over [[Transport Layer Security|SSL/TLS]] ('''IMAPS''') is assigned the port number 993.<ref name="blum-email-sec">{{Cite book|url=https://books.google.com/books?id=9mFLB1NH8iUC&q=imaps+port&pg=PA406|title=Open Source E-mail Security|first=Richard|last=Blum|date=December 15, 2002|publisher=Sams Publishing|isbn=9780672322372|via=Google Books|access-date=December 25, 2020|archive-date=February 5, 2021|archive-url=https://web.archive.org/web/20210205080639/https://books.google.com/books?id=9mFLB1NH8iUC&q=imaps+port&pg=PA406|url-status=live}}</ref><ref name="practical-unix-sec">{{Cite book|url=https://books.google.com/books?id=-aIKj0lbADIC&q=imaps+port&pg=PT400|title=Practical UNIX and Internet Security|first1=Simson|last1=Garfinkel|first2=Gene|last2=Spafford|first3=Alan|last3=Schwartz|date=December 15, 2003|publisher="O'Reilly Media, Inc."|isbn=9780596003234|via=Google Books|access-date=December 25, 2020|archive-date=February 5, 2021|archive-url=https://web.archive.org/web/20210205072946/https://books.google.com/books?id=-aIKj0lbADIC&q=imaps+port&pg=PT400|url-status=live}}</ref>
IMAP was designed with the goal of permitting complete management of an [[email box]] by multiple email clients; therefore, clients generally leave messages on the server until the user explicitly deletes them. An IMAP server typically listens on [[port number]] 143. IMAP over [[Transport Layer Security|SSL/TLS]] ('''IMAPS''') is assigned the port number 993.<ref name="blum-email-sec">{{Cite book|url=https://books.google.com/books?id=9mFLB1NH8iUC&q=imaps+port&pg=PA406|title=Open Source E-mail Security|first=Richard|last=Blum|date=December 15, 2002|publisher=Sams Publishing|isbn=9780672322372|via=Google Books|access-date=December 25, 2020|archive-date=February 5, 2021|archive-url=https://web.archive.org/web/20210205080639/https://books.google.com/books?id=9mFLB1NH8iUC&q=imaps+port&pg=PA406|url-status=live}}</ref><ref name="practical-unix-sec">{{Cite book|url=https://books.google.com/books?id=-aIKj0lbADIC&q=imaps+port&pg=PT400|title=Practical UNIX and Internet Security|first1=Simson|last1=Garfinkel|first2=Gene|last2=Spafford|first3=Alan|last3=Schwartz|date=December 15, 2003|publisher=O'Reilly Media, Inc.|isbn=9780596003234|via=Google Books|access-date=December 25, 2020|archive-date=February 5, 2021|archive-url=https://web.archive.org/web/20210205072946/https://books.google.com/books?id=-aIKj0lbADIC&q=imaps+port&pg=PT400|url-status=live}}</ref>


Virtually all modern e-mail clients and [[Server (computing)|servers]] support IMAP, which along with the earlier [[POP3]] (Post Office Protocol) are the two most prevalent standard protocols for email retrieval.<ref name= "Red Hat">{{cite book | last = Komarinski | first = Mark | title = Red Hat Linux System Administration Handbook | publisher = Prentice Hall | year = 2000 | page =179}}</ref> Many [[webmail]] service providers such as [[Gmail]] and [[Outlook.com]] also support for both IMAP and POP3.
Virtually all modern e-mail clients and [[Server (computing)|servers]] support IMAP, which along with the earlier [[POP3]] (Post Office Protocol) are the two most prevalent standard protocols for email retrieval.<ref name= "Red Hat">{{cite book | last = Komarinski | first = Mark | title = Red Hat Linux System Administration Handbook | publisher = Prentice Hall | year = 2000 | page =179}}</ref> Many [[webmail]] service providers such as [[Gmail]] and [[Outlook.com]] also support both IMAP and POP3.


==Email protocols==
==Email protocols==
Line 85: Line 85:
This is an example IMAP connection as taken from [https://tools.ietf.org/html/rfc3501#section-8 RFC 3501 section 8]:
This is an example IMAP connection as taken from [https://tools.ietf.org/html/rfc3501#section-8 RFC 3501 section 8]:


  <span style="color:blue;">C: <open connection></span>
  '''C: <open connection>'''
  S:  * OK IMAP4rev1 Service Ready
  S:  * OK IMAP4rev1 Service Ready
  <span style="color:blue;">C:  a001 login mrc secret</span>
  '''C:  a001 login mrc secret'''
  S:  a001 OK LOGIN completed
  S:  a001 OK LOGIN completed
  <span style="color:blue;">C:  a002 select inbox</span>
  '''C:  a002 select inbox'''
  S:  * 18 EXISTS
  S:  * 18 EXISTS
  S:  * FLAGS (\Answered \Flagged \Deleted \Seen \Draft)
  S:  * FLAGS (\Answered \Flagged \Deleted \Seen \Draft)
Line 96: Line 96:
  S:  * OK [UIDVALIDITY 3857529045] UIDs valid
  S:  * OK [UIDVALIDITY 3857529045] UIDs valid
  S:  a002 OK [READ-WRITE] SELECT completed
  S:  a002 OK [READ-WRITE] SELECT completed
  <span style="color:blue;">C:  a003 fetch 12 full</span>
  '''C:  a003 fetch 12 full'''
  S:  * 12 FETCH (FLAGS (\Seen) INTERNALDATE "17-Jul-1996 02:44:25 -0700"
  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)"
       RFC822.SIZE 4286 ENVELOPE ("Wed, 17 Jul 1996 02:23:25 -0700 (PDT)"
Line 110: Line 110:
       92))
       92))
  S:  a003 OK FETCH completed
  S:  a003 OK FETCH completed
  <span style="color:blue;">C:  a004 fetch 12 body[header]</span>
  '''C:  a004 fetch 12 body[header]'''
  S:  * 12 FETCH (BODY[HEADER] {342}
  S:  * 12 FETCH (BODY[HEADER] {342}
  S:  {{codett|2=email|Date: Wed, 17 Jul 1996 02:23:25 -0700 (PDT)}}
  S:  {{codett|2=email|1=Date: Wed, 17 Jul 1996 02:23:25 -0700 (PDT)}}
  S:  {{codett|2=email|From: Terry Gray <[email protected]>}}
  S:  {{codett|2=email|From: Terry Gray <[email protected]>}}
  S:  {{codett|2=email|Subject: IMAP4rev1 WG mtg summary and minutes}}
  S:  {{codett|2=email|Subject: IMAP4rev1 WG mtg summary and minutes}}
Line 118: Line 118:
  S:  {{codett|2=email|Cc: [email protected], John Klensin <[email protected]>}}
  S:  {{codett|2=email|Cc: [email protected], John Klensin <[email protected]>}}
  S:  {{codett|2=email|Message-Id: <[email protected]>}}
  S:  {{codett|2=email|Message-Id: <[email protected]>}}
  S:  {{codett|2=email|MIME-Version: 1.0}}
  S:  {{codett|2=email|1=MIME-Version: 1.0}}
  S:  {{codett|2=email|1=Content-Type: TEXT/PLAIN; CHARSET=US-ASCII}}
  S:  {{codett|2=email|1=Content-Type: TEXT/PLAIN; CHARSET=US-ASCII}}
  S:
  S:
  S:  )
  S:  )
  S:  a004 OK FETCH completed
  S:  a004 OK FETCH completed
  <span style="color:blue;">C    a005 store 12 +flags \deleted</span>
  '''C:   a005 store 12 +flags \deleted'''
  S:  * 12 FETCH (FLAGS (\Seen \Deleted))
  S:  * 12 FETCH (FLAGS (\Seen \Deleted))
  S:  a005 OK +FLAGS completed
  S:  a005 OK +FLAGS completed
  <span style="color:blue;">C:  a006 logout</span>
  '''C:  a006 logout'''
  S:  * BYE IMAP4rev1 server terminating connection
  S:  * BYE IMAP4rev1 server terminating connection
  S:  a006 OK LOGOUT completed
  S:  a006 OK LOGOUT completed