Utilisation du protocole IMAP via telnet

Utilisation du protocole IMAP via telnet

Administrant des messageries sur site utilisant encore l'IMAP pour communiquer avec le client, il arrive parfois que je ne comprenne pas pourquoi un client de messagerie (tel que thunderbirds ou outlook) ne fonctionne pas comme attendu. Pour comprendre le problème, il m'est arrivé de me connecter en IMAP sur le serveur directement en utilisant telnet. Je vous mets donc quelques commandes IMAP permettant d'explorer votre boite mail.

1) Connexion sur le serveur
telnet imap.server.com 143
Trying X.X.X.X...
Connected to localhost.
Escape character is '^]'.
* OK [CAPABILITY IMAP4 IMAP4rev1 ACL RIGHTS=tekx QUOTA LITERAL+ NAMESPACE UIDPLUS CHILDREN BINARY UNSELECT SORT CATENATE URLAUTH LANGUAGE ESEARCH ESORT THREAD=ORDEREDSUBJECT THREAD=REFERENCES CONDSTORE ENABLE QRESYNC CONTEXT=SEARCH CONTEXT=SORT WITHIN SASL-IR SEARCHRES METADATA ID LIST-STATUS SPECIAL-USE CREATE-SPECIAL-USE MULTISEARCH SORT=DISPLAY LOGIN-REFERRALS X-SUN-SORT ANNOTATE-EXPERIMENT-1 X-SUN-IMAP XUM1 X-ORCL-AS IDLE XREFRESH XSNIPPET=FUZZY AUTH=PLAIN] imap.server.com IMAP4 service (Oracle Communications Messaging Server 8.0.2.2.20180531 64bit (built May 31 2018))

Juste quelques petites informations :

  • La liste de mots en majuscules sont appelés les capability (les capacités en Français), elles indiquent aux clients venant de se connecter sur le serveur quelles sont les commandes supportées par celui-ci
  • Imap.server.com est le nom du serveur de messagerie sur lequel je viens de me connecter
  • IMAP4 indique la version d'IMAP supportée par la messagerie
  • Oracle Communications Messaging Server 8.0.2.2.20180531 64bit indique quel logiciel de messagerie est utilisé et dans quelle version.
2) Connexion sur la boite mail de l'utilisateur

Pour cela la commande est assez simple :

Client : a1 LOGIN test@test.com Password
Serveur : a1 OK User admin logged in

A1 (a2, a3, …. par la suite) est un index permettant au client de savoir à quelle requête correspond la réponse du serveur.

3) Authentification par le compte admin

Certaines messageries permettent de se connecter sur un compte utilisateur à travers un compte administrateur, ce qui permet de ne pas avoir à connaitre le mot de passe de celui-ci. Attention toutefois, lire les messages personnels d'un utilisateur sans l'accord de celui-ci est, en plus d'être immoral, illégal et passible de licenciement et de poursuite judiciaire.

D'abord on se connecte en tant qu'administrateur :

C: a1 LOGIN admin Password
S: a1 OK User admin logged in

Ensuite on se connecte sur la boite mail du client :

C: a2 proxyauth aduneo1
S: a2 OK Completed
4) Lister les dossiers de la boite mail

La commande lister permet de lister le contenu d'un dossier, si dessous la commande permettant de lister les dossier contenus dans la boite mail :

 C: a3 LIST "" "*"
S: * LIST (\NoInferiors) "/" INBOX
S: * LIST (\HasNoChildren) "/" Drafts
S: * LIST (\HasNoChildren) "/" Sent
S: * LIST (\HasNoChildren) "/" "Sent Messages"
S: * LIST (\HasNoChildren) "/" Trash
S: a3 OK Completed 
5) Examiner le contenu d'un Dossier

La commande "examine" permet d'avoir un compte rendu sur un dossier, nombre de mail, nombre de mails non lus, etc...

C: a3 EXAMINE INBOX
S: * FLAGS (\Answered \Flagged \Draft \Deleted \Seen $Forwarded Redirected $NotJunk                                                                              $Junk JunkRecorded NonJunk)
S: * OK [PERMANENTFLAGS ()]
S: * 21 EXISTS
S: * 0 RECENT
S: * OK [UNSEEN 5]
S: * OK [UIDVALIDITY 1464788275]
S: * OK [UIDNEXT 184]
S: a3 OK [READ-ONLY] Completed
6) Lire un mail

La commande FETCH permet de lire un mail, il doit être suivi par l'ID du mail. BODY[] permet de demander au serveur de ne renvoyer que l'intégralité du mail.

C: a4 FETCH 1 BODY[]
S: * 1 FETCH (BODY[] {21662}
S: Return-path: support@test.com
S: Received: from imap.test.com ([XX.XX.XX.XX])
S:  by mta.test.com (Oracle Communications Messaging Server 8.0.2.2.20180531
S:  64bit (built May 31 2018)) with ESMTP id XXXX@support.est.com for
S:  test@test.com; Mon, 04 Mar 2019 13:30:54 +0100 (CET)
…
S: Date: Mon, 04 Mar 2019 12:30:53 +0000 (GMT)
S: From: "support@test.com" support@test.com
S: Subject: =Salut
S: To: "test@test.com" test@test.com
S: Message-id:
 …
7) Ecriture d'un mail
C: a6 APPEND INBOX (\Seen) {304}
S: + go ahead
S: Date: Mon, 7 Feb 1994 21:52:25 -0800 (PST)
S: From: Fred Foobar foobar@Blurdybloop.COM
S: Subject: afternoon meeting
S: To: aduneo1@test.com
S: Message-Id: B27397-0100000@Blurdybloop.COM
S: MIME-Version: 1.0
S: Content-Type: TEXT/PLAIN; CHARSET=US-ASCII

S: Hello Joe, do you think we can meet at 3:30 tomorrow?
S: a6 OK [APPENDUID 1464788275 186] Completed

La difficulté est que 304 correspond au nombre d'octet que fait votre mail. Il apparaitra ensuite dans votre boite mail.

C'est tout pour cet article, si vous souhaitez en savoir plus le mieux est de lire la RFC : https://tools.ietf.org/html/rfc3501

Ajouter un commentaire

Articles en relation