Vous êtes sur la page 1sur 60

Le protocole IMAP4

Christian CALECA http://christian.caleca.free.fr/imap/

Internet Mail Access Protocol


IMAP est un protocole de relve des messa es !lectroni"ues# fonctionnellement compara$le % P&P. Il pr!sente toutefois de nom$reu' avanta es et l(on peut se demander pour"uoi il n(est pas plus souvent utilis!. Ce chapitre essa)e de montrer les avanta es de ce protocole et les limites des actuels clients de messa erie. Pour ) arriver# nous utiliserons comme d(ha$itude des outils de $ase :

*elnet# le terminal % tout faire# Ethereal# le sniffeur ha$ituel. *hunder$ird# un client de messa erie issu du pro+et Mo,illa. Il e'iste pour les plate formes -indo.s# Linu' et Mac &/ 0. 1ous le trouvere, sur le site du pro+et Mo,illa2. l(un# utilisant le format 4mail$o'4# mont! sur une machine 3e$ian 4-ood)4# con+ointement avec un /M*P E0IM. l(autre# utilisant le format 4maildir4# mont! sur une 3e$ian 4testin 4# tou+ours avec Postfi'.

3eu' serveurs IMAP seront test!s :

2 Pro+et Mo,illa : http://....mo,illa.or /pro+ects/thunder$ird/

Pa e 2 sur 56

7!alis! % partir des pa es du site# du 5 mars 8669 par Laurent :A;//E

Le protocole IMAP4

Christian CALECA http://christian.caleca.free.fr/imap/

Plan du chapitre
Pr!sentation !n!rale............................................................................................................................4 Pour"uoi IMAP4 <........................................................................................................................... 4 Puis"u(on a P&P=........................................................................................................................ 4 Mais avec IMAP4....................................................................................................................... 4 Ce "ue vous deve, pouvoir faire avec IMAP4 :......................................................................... 9 Alors pour"uoi P&P= encore <........................................................................................................ 9 3!monstration..................................................................................................................................5 Les confi urations utilis!es.........................................................................................................5 >-?IMAP.............................................................................................................................. 5 C)rus82.................................................................................................................................. 5 Les tests.......................................................................................................................................5 Confi uration du client @M>AA..............................................................................................5 Cr!ation de r!pertoires........................................................................................................... B 7!ception d(un premier mail...................................................................................................C Manipulations diverses.........................................................................................................26 Premires conclusions....................................................................................................................82 Le protocole IMAP.............................................................................................................................8= 3!finition du protocole..................................................................................................................8= Mode op!ratoire.............................................................................................................................8= Les serveurs IMAP courants..................................................................................................... 8= >-?IMAP3......................................................................................................................... 8= C;7>/.................................................................................................................................84 Les outils % @pres"ueA tout faire.................................................................................................84 Les comptes pour faire les manips............................................................................................ 84 Premier contact.............................................................................................................................. 84 Duel"ues commandes simples avec *elnet................................................................................... 89 Pr!liminaires............................................................................................................................. 85 &uverture d(une session IMAP................................................................................................. 85 Arran er son int!rieur............................................................................................................... 85 Lire un messa e........................................................................................................................ 8B La commande LI/*..............................................................................................................8C La commande /ELEC*........................................................................................................8E La commande FE*CG..........................................................................................................=6 La commande /*&7E..........................................................................................................=2 La commande E0P>HIE....................................................................................................=4 Conclusions....................................................................................................................................=9 Emploi des commandes IMAP................................................................................................. =9 Le format MAIL:&0............................................................................................................... =5 3eu' serveurs IMAP4........................................................................................................................ =B Le cas simple et facile % installer................................................................................................... =B Pour MandraJe.......................................................................................................................... =B Pour 3e$ian :............................................................................................................................ =B Pour les deu' :...........................................................................................................................=C Le cas compli"u! et difficile % installer......................................................................................... =C Pour"uoi tout Ka <..................................................................................................................... =C Pa e 8 sur 56 7!alis! % partir des pa es du site# du 5 mars 8669 par Laurent :A;//E

Le protocole IMAP4

Christian CALECA http://christian.caleca.free.fr/imap/

Mat!riel re"uis.......................................................................................................................... =C C)rus..............................................................................................................................................=E Installation de C)rus :............................................................................................................... =E installation de sasl :................................................................................................................... 46 1!rifications..............................................................................................................................42 saslauthd............................................................................................................................... 42 C)rus.................................................................................................................................... 48 Du(avons?nous fait <............................................................................................................. 45 Due reste?t?il % faire <...........................................................................................................4B *ests......................................................................................................................................4C Luste un d!tail....................................................................................................................... 96 Plus loin avec C)rus........................................................................................................................... 92 Les dossiers parta !s..................................................................................................................... 92 Cr!ation d(un dossier parta !.................................................................................................... 92 Conclusions....................................................................................................................................56

Pa e = sur 56

7!alis! % partir des pa es du site# du 5 mars 8669 par Laurent :A;//E

Le protocole IMAP4

Christian CALECA http://christian.caleca.free.fr/imap/

Prsentation gnrale
Initialement# IMAP repr!sentait un acron)me de : 4Interactive Messa e Access Protocol4. Le nom a !t! modifi! en 4Internet Messa e Access Protocol4 Pour tenir compte des derniers a+outs au protocole @actuellement en version 4 r!vision 2A. Il est actuellement d!fini par la 7FC 86568.

Pourquoi IMAP4 ?
Puisqu'on a POP3...
P&P= remplit tout % fait son rMle de relve de courrier# nous l(avons vu. Alors pour"uoi chan er < P&P= permet de travailler en modes 4hors?li ne4 et 4d!connect!4# autrement dit# il est possi$le :

de rapatrier tous ses messa es en local et de les effacer du serveur# ce "ui permet d(interrompre la conne'ion et de !rer ses messa es localement @mode 4hors?li ne4A# de faire la mNme chose# mais en rapatriant une copie locale des messa es# laissant les messa es 4ori inau'4 sur le serveur @mode 4d!connect!4A.

Le mode 4hors?li ne4 est tout % fait utilisa$le si l(on ne re sa messa erie "ue depuis un seul poste de travail# ce "ui n(est pas tou+ours le cas. Le mode 4d!connect!4 permet "uant % lui une estion depuis plusieurs postes# mais pose tout de mNme le pro$lme de la pur e du serveur. En effet# il faudra $ien faire de la place de temps en temps si l(on ne veut pas voir sa $oOte e'ploser. Et les messa es une fois d!truits sur le serveur ne pourront plus ) Ntre remis autrement "u(en se les renvo)ant. Lors"ue l(on est dans des conditions de conne'ion difficiles# P&P= se r!vle peu puissant pour se tirer d(em$arras si un messa e volumineu' se trouve dans la file. Il est possi$le# en e'ploitant toutes les finesses de P&P=# d(!liminer ce messa e ou du moins de ne pas le rapatrier# mais peu de M>A savent !rer ces possi$ilit!s et le messa e non lu repr!sentera tou+ours un !cueil# % cha"ue consultation.

Mais avec IMAP4...


Ici# le protocole autorise des manipulations infiniment plus souples. 3e plus# et c(est pro$a$lement l% le point le plus d!cisif# les messa es peuvent Ntre entirement !r!s en restant sur le serveur. IMAP propose en effet les possi$ilit!s suivantes :

lecture des o$+ets des messa es seulement @sans le corpsA# cr!ation de dossiers sur le serveur# d!placement de messa es sur le serveur d(un dossier % l(autre# sans avoir rapatrier tout le message en local# effacement de messa e sans l(avoir lu#

8 7FC 8656 : http://....ietf.or /rfc/rfc8656.t't

Pa e 4 sur 56

7!alis! % partir des pa es du site# du 5 mars 8669 par Laurent :A;//E

Le protocole IMAP4 lecture des messa es en les laissant sur le serveur# mar"ua e des messa es sur le serveur...

Christian CALECA http://christian.caleca.free.fr/imap/

*outes ces possi$ilit!s n!cessitent $ien entendu d(Ntre connect! en permanence# donc en mode interactif# d(oP le nom initial du protocole. Mais IMAP fait encore plus# dans la mesure oP les modes 4hors?li ne4 et 4d!connect!4 sont ! alement possi$les.

Ce que vous devez pouvoir faire avec IMAP4 :


consulter seulement les o$+ets des messa es# effacer# d!placer des messa es sans les lire# !ventuellement avec des r les de tri automati"ues# rapatrier en local certains messa es et pas d(autres# en faisant une copie ou un d!placement# !ventuellement avec des r les de tri automati"ues# recopier sur le serveur des messa es "ue vous ave, en local# et d(autres choses encore.

1ous le vo)e,# il sem$le n() avoir aucune $onne raison de ne pas passer % IMAP.

Alors pourquoi POP3 encore ?


/(il ne sem$le ) avoir "ue de $onnes raisons de passer % IMAP# il ) en a aussi @mais sont?elles $onnes <A pour rester sur P&P=. IMAP4 est un protocole $eaucoup plus compli"u! "ue P&P= et pour cause# il est plus puissant. Cette comple'it! relative amne plusieurs effets n! atifs :

tous les fournisseurs de services Internet ne proposent pas encore de serveur IMAP# et ceu' "ui en proposent# pour des raisons diverses# les amputent parfois de certaines de leurs possi$ilit!s# rares sont les clients de messa erie @M>AA "ui rent toutes les possi$ilit!s offertes par IMAP4# si l(on se limite % ce "ue sait faire P&P=# alors# autant utiliser P&P=# arder tous ses messa es sur le serveur# mNme $ien class!s dans divers dossiers n(a pas "ue des avanta es# l(espace disponi$le est souvent limit! @9 Mo# parfois moins# trs rarement plusA et le stocJa e sur le serveur va rapidement remplir cet espace. Il faudra donc adopter des strat! ies de pur e "ui restreindront les avanta es du s)stme.

Mais nous sommes ici pour parler d(IMAP4. Pas moins de 89 commandes alors "ue P&P= n(en propose "ue 28. Hous ne les verrons pas toutes en d!tail# le $ut !tant d(avanta e de comprendre l(int!rNt du protocole "ue de le manipuler avec telnet :?A

Pa e 9 sur 56

7!alis! % partir des pa es du site# du 5 mars 8669 par Laurent :A;//E

Le protocole IMAP4

Christian CALECA http://christian.caleca.free.fr/imap/

Dmonstration
Les confi urations utilis!es
Hous disposons de deu' serveurs IMAP diff!rents. Pour l(instant# nous nous contenterons de les utiliser# nous verrons plus en d!tails comment les installer plus tard.

UW-IMAP
>n serveur d!velopp! % l(universit! de -ashin ton# install! sur une 3e$ian -ood). Le serveur /M*P utilis! est E0IM# install! par d!faut par 3e$ian. C(est un $on /M*P# plus souple "ue Postfi'# mais aussi plus d!licat % confi urer. La machine s(appelle po!ti"uement .8.maison.mrs. Ce serveur utilise le format 4MAIL:&04.

!rus"#
>n serveur d!velopp! % l(universit! de Carne ie Mellon# install! sur une 3e$ian 4testin 4. Le /M*P emplo)! ici est Postfi'. C(est un $on /M*P# moins souple "u(E0IM mais plus facile % confi urer :A. La machine s(appelle m)tholo i"uement c)clope.maison.mrs. Ce serveur utilise le format 4MAIL3I74.

Les tests on$iguration %u client &MUA'


/ur chacune de ces machines# un compte de messa erie est cr!! :

testimapQ .8.maison.mrs pour le serveur >-?imap# testimapQc)clope.maison.mrs pour le serveur C)rus.

>n client de messa erie# 4*hunder$ird4# est install! sur une troisime machine : pchris8.maison.mrs# "ui fonctionne sous MandraJe E.2 @nous avons les mo)ens pour travailler correctementA. *hunder$ird est donc issu du pro+et Mo,illa. C(est le client de messa erie "ui a !t! e'trait et trs l! rement modifi!. /i vous utilise, la suite Mo,illa# ce "ui est tout % fait recommanda$le# *hunder$ird ne sera donc pas n!cessaire. L(avanta e de *hunder$ird est "u(il ne n!cessite pas d(installation. 1ous t!l!char e, le pacJ# vous de d!sarchive, oP vous voule,# vous donne, les $ons droits d(e'!cution et c(est tout. Aussi $ien sous Linu'# "uelle "u(en soit la distri$ution# "ue sous -indo.s. Le tout mont! en r!seau local# $ien entendu. Hous allons cr!er ces deu' comptes sur *hunder$ird :

Pa e 5 sur 56

7!alis! % partir des pa es du site# du 5 mars 8669 par Laurent :A;//E

Le protocole IMAP4

Christian CALECA http://christian.caleca.free.fr/imap/

3eu' remar"ues imm!diates :


les deu' comptes contiennent d!+% deu' dossiers# 4In$o'4 et 4*rash4# sur .8 @u.?imapA les deu' dossiers sont au mNme niveau de hi!rarchie# alors "ue sur c)clope @c)rusA# 4*rash4 est un sous dossier de 4In$o'4. Cette su$tilit! trouvera son e'plication plus loin dans cet e'pos!.

ration %e rpertoires
Ceci n(est pas un cours sur l(emploi de *hunder$ird. Hous nous dispenserons donc de d!velopper le mode op!ratoire. *hunder$ird aime $ien disposer de r!pertoires suppl!mentaires :

/ent# pour stocJer les messa es envo)!s# 3rafts# pour stocJer les $rouillons# *emplates# pour stocJer les modles.

Hous allons les cr!er pour cha"ue compte# sur les serveurs respectifs.

Pa e B sur 56

7!alis! % partir des pa es du site# du 5 mars 8669 par Laurent :A;//E

Le protocole IMAP4

Christian CALECA http://christian.caleca.free.fr/imap/

Encore deu' remar"ues :

avec u.?imapd# il n(est pas possi$le de cr!er ces dossiers dans 4In$o'4# tous les dossiers sont o$li atoirement au mNme niveau de hi!rarchie# avec C)rus# les dossiers ne peuvent Ntre cr!!s "ue dans 4In$o'4 @ou dans un sous dossier de 4in$o'4A. Il est possi$le de construire une ar$orescence comple'e# mNme si ce n(est pas forc!ment souhaita$le.

(ception %)un premier mail


Hous avons plus de mo)ens "ue vous ne pense,. 3epuis une "uatrime machine @-indo.s# celle l%# mais "ui utilise aussi *hunder$irdA# nous envo)ons un messa e sur ces deu' comptes :

Pa e C sur 56

7!alis! % partir des pa es du site# du 5 mars 8669 par Laurent :A;//E

Le protocole IMAP4

Christian CALECA http://christian.caleca.free.fr/imap/

:ien entendu# Ka fonctionne et nous retrouvons sur pchris8 ce messa e dans cha"ue :AL :

Pa e E sur 56

7!alis! % partir des pa es du site# du 5 mars 8669 par Laurent :A;//E

Le protocole IMAP4

Christian CALECA http://christian.caleca.free.fr/imap/

Manipulations %iverses
1o)ons un peu la confi uration de notre *hunder$ird :

Pa e 26 sur 56

7!alis! % partir des pa es du site# du 5 mars 8669 par Laurent :A;//E

Le protocole IMAP4

Christian CALECA http://christian.caleca.free.fr/imap/

Par d!faut# *hunder$ird place une copie des messa es envo)!s dans le dossier 4/ent4# sur le serveur IMAP du compte emplo)!. 1!rifions Ka en r!pondant % ce premier messa e depuis le compte sur .8 :

Pa e 22 sur 56

7!alis! % partir des pa es du site# du 5 mars 8669 par Laurent :A;//E

Le protocole IMAP4

Christian CALECA http://christian.caleca.free.fr/imap/

Il ) est. Le dossier 4/ent4 est $ien sur le serveur IMAP de .8.maison.mrs et le messa e envo)! s() trouve $ien. Hous allons le v!rifier tout de suite# puis"ue nous avons le serveur sous la main :
/home/testimap# total 28 drwxr-xr-x 2 drwxrwsr-x 6 -rw-r--r-1 -rw------1 -rw------1 -rw------1 -rw------1 ls -la testimap root testimap testimap testimap testimap testimap nogroup sta## nogroup nogroup nogroup nogroup nogroup 4096 4096 28 1! 1190 1! 1! Dec $o% Dec Dec Dec Dec Dec 20 !0 20 20 20 20 20 10: ! 16:42 10:20 10:19 10: ! 10:20 10:0! " "" "mail&oxlist Dra#ts 'ent (emplates (rash

Hous avons $ien "uatre fichiers "ui correspondent au' "uatre dossiers cr!!s et un cin"uime# cach!# "ui s(appelle .mail$o'list. Etant d(un naturel curieu'# impossi$le de r!sister % l(envie de re arder son contenu :
/home/testimap# cat "mail&oxlist (rash Dra#ts 'ent (emplates

>n peu d!cevant... Il ne contient "ue la liste des noms des r!pertoires. 1o)ons maintenant le contenu du fichier 4/ent4 :
s)sop:/home/testimap# cat 'ent *rom +,-./0-D,/+1$ 'at Dec 20 10:20:02 200!

Pa e 28 sur 56

7!alis! % partir des pa es du site# du 5 mars 8669 par Laurent :A;//E

Le protocole IMAP4

Christian CALECA http://christian.caleca.free.fr/imap/

Date: 20 Dec 200! 10:20:02 20100 *rom: +ail ')stem -nternal Data 3+,-./0-D,/+1$4s)sop"eme-enseignement"#r5 'u&6ect: D1$7( D/./(/ (8-' +/'',9/ -- *1.D/0 -$(/0$,. D,(, :--+,;: 10<1912002 0000000000 'tatus: 01 (his text is part o# the internal #ormat o# )our mail #older= and is not a real message" -t is created automaticall) &) the mail s)stem so#tware" -# deleted= important #older data will &e lost= and it will &e re-created with the data reset to initial %alues" *rom testimap4s)sop"eme-enseignement"#r 'at Dec 20 10: !:12 200! 20100 'tatus: 0 :-'tatus: :->e)words: +essage--D: 3!*/41?0<"10!0 044gw2"maison"mrs5 Date: 'at= 20 Dec 200! 10: !:11 20100 *rom: testimap-gw2 3testimap4gw2"maison"mrs5 @ser-,gent: +oAilla/ "0 B:11C @C .inux i686C en-@'C r%:1"6&D 9ecEo/200!120 :-,ccept-.anguage: en-us= en +-+/-Fersion: 1"0 (o: ?hristian ?aleca 3christian"caleca4#ree"#r5 'u&6ect: 0e: un premier test -+,; 0e#erences: 3!*/4192?"<04010<4#ree"#r5 -n-0epl)-(o: 3!*/4192?"<04010<4#ree"#r5 ?ontent-()pe: text/plainC charsetG-'1-88 9-1C #ormatG#lowed ?ontent-(rans#er-/ncoding: 8&it ?hristian ?aleca wrote: 5 ?oucou" Hien reIu :D

(hunder&ird/0"4

Int!ressons nous pour l(instant % ce "ui est surli n! : c(est $ien le te'te de la r!ponse faite. Il n(a $ien entendu pas !chapp! % votre sa acit! "ue le dossier 4In$o'4 n(est pas ici. C(est tout simplement "u(il est ailleurs. Il est dans le spool de messa erie# directement aliment! par le /M*P# via l(a ent de distri$ution local @M3AA. Avec E0IM vous le trouvere, dans /var/spool/mail
s)sop:/%ar/spool/mail# ls chris testimap

Profitons?en pour voir ce "u(il ) a dedans :


s)sop:/%ar/spool/mail# cat testimap *rom christian"caleca4#ree"#r 'at Dec 20 10:40: ! 200! 0eturn-path: 3christian"caleca4#ree"#r5 /n%elope-to: testimap4gw2"maison"mrs 0ecei%ed: #rom pchris"maison"mrs BJ192"168"0"10K heloG#ree"#rD &) s)sop"eme-enseignement"#r with esmtp B/xim !"! #1 BDe&ianDD id 1,:d&L-0000u2-00C 'at= 20 Dec 200! 10:40: 2 20100 +essage--D: 3!*/4192?"<04010<4#ree"#r5 Date: 'at= 20 Dec 200! 10:41:00 20100 *rom: ?hristian ?aleca 3christian"caleca4#ree"#r5 @ser-,gent: +oAilla/ "0 BMindowsC @C Mindows $( "1C en-@'C r%:1"6&D 9ecEo/200!120 :-,ccept-.anguage: en-us= en +-+/-Fersion: 1"0 (o: testimap4gw2"maison"mrs= testimap4c)clope"maison"mrs 'u&6ect: un premier test -+,; ?ontent-()pe: text/plainC charsetG-'1-88 9-1C #ormatG#lowed ?ontent-(rans#er-/ncoding: 8&it :--+,;&ase: 10<191!280 2 'tatus: 01 :-'tatus: D, :->e)words: :-@-D: 1 ?oucou" --

(hunder&ird/0"4

Pa e 2= sur 56

7!alis! % partir des pa es du site# du 5 mars 8669 par Laurent :A;//E

Le protocole IMAP4
?hristian ?alNca" ;our l7-nternet , *ond : http://www"pia#"asso"#r .a mNtNo du $et : http://www"grenouille"com ?omprendre les rNseaux : http://christian"caleca"#ree"#r

Christian CALECA http://christian.caleca.free.fr/imap/

Le messa e "ue l(on a reKu. C(est r!confortant.


"uppression d'un #essa e dans $In%o&$

Le messa e initial n(a)ant pas d(int!rNt# nous allons le d!truire. Hous devrions th!ori"uement le retrouver dans la pou$elle @*rashA :

*out va $ien# tout se passe comme pr!vu. Comme ce messa e n(a tou+ours pas d(int!rNt# mNme dans la pou$elle# nous vidons aussi la pou$elle. :ien. 1ous Ntes $ien assis < Alors# allons v!rifier tout Ka sur le serveur :
/home/testimap# cat (rash *rom +,-./0-D,/+1$ 'at Dec 20 11:0<:1! 200! Date: 20 Dec 200! 11:0<:1! 20100 *rom: +ail ')stem -nternal Data 3+,-./0-D,/+1$4s)sop"eme-enseignement"#r5 'u&6ect: D1$7( D/./(/ (8-' +/'',9/ -- *1.D/0 -$(/0$,. D,(, +essage--D: 310<19148!!4s)sop"eme-enseignement"#r5 :--+,;: 10<1911016 0000000001 'tatus: 01 (his text is part o# the internal #ormat o# )our mail #older= and is not a real message" -t is created automaticall) &) the mail s)stem so#tware" -# deleted= important #older data will &e lost= and it will &e re-created with the data reset to initial %alues"

Pa e 24 sur 56

7!alis! % partir des pa es du site# du 5 mars 8669 par Laurent :A;//E

Le protocole IMAP4

Christian CALECA http://christian.caleca.free.fr/imap/

*rom christian"caleca4#ree"#r 'at Dec 20 10:40: ! 200! 0eturn-path: 3christian"caleca4#ree"#r5 /n%elope-to: testimap4gw2"maison"mrs 0ecei%ed: #rom pchris"maison"mrs BJ192"168"0"10K heloG#ree"#rD &) s)sop"eme-enseignement"#r with esmtp B/xim !"! #1 BDe&ianDD id 1,:d&L-0000u2-00C 'at= 20 Dec 200! 10:40: 2 20100 +essage--D: 3!*/4192?"<04010<4#ree"#r5 Date: 'at= 20 Dec 200! 10:41:00 20100 *rom: ?hristian ?aleca 3christian"caleca4#ree"#r5 @ser-,gent: +oAilla/ "0 BMindowsC @C Mindows $( "1C en-@'C r%:1"6&D 9ecEo/200!120 :-,ccept-.anguage: en-us= en +-+/-Fersion: 1"0 (o: testimap4gw2"maison"mrs= testimap4c)clope"maison"mrs 'u&6ect: un premier test -+,; ?ontent-()pe: text/plainC charsetG-'1-88 9-1C #ormatG#lowed ?ontent-(rans#er-/ncoding: 8&it 'tatus: 01 :-'tatus: , :->e)words: ?oucou" -?hristian ?alNca" ;our l7-nternet , *ond : http://www"pia#"asso"#r .a mNtNo du $et : http://www"grenouille"com ?omprendre les rNseaux : http://christian"caleca"#ree"#r

(hunder&ird/0"4

Ca c(est c.. ennu)eu'. :ien "u(effac!# le messa e ) est tou+ours R Et dans le spool# le premier messa e reKu# puis effac!# ) est?il tou+ours lui aussi <
s)sop:/%ar/spool/mail# cat testimap *rom christian"caleca4#ree"#r 'at Dec 20 10:40: ! 200! 0eturn-path: 3christian"caleca4#ree"#r5 /n%elope-to: testimap4gw2"maison"mrs 0ecei%ed: #rom pchris"maison"mrs BJ192"168"0"10K heloG#ree"#rD &) s)sop"eme-enseignement"#r with esmtp B/xim !"! #1 BDe&ianDD id 1,:d&L-0000u2-00C 'at= 20 Dec 200! 10:40: 2 20100 +essage--D: 3!*/4192?"<04010<4#ree"#r5 Date: 'at= 20 Dec 200! 10:41:00 20100 *rom: ?hristian ?aleca 3christian"caleca4#ree"#r5 @ser-,gent: +oAilla/ "0 BMindowsC @C Mindows $( "1C en-@'C r%:1"6&D 9ecEo/200!120 :-,ccept-.anguage: en-us= en +-+/-Fersion: 1"0 (o: testimap4gw2"maison"mrs= testimap4c)clope"maison"mrs 'u&6ect: un premier test -+,; ?ontent-()pe: text/plainC charsetG-'1-88 9-1C #ormatG#lowed ?ontent-(rans#er-/ncoding: 8&it :--+,;&ase: 10<191!280 2 'tatus: 01 :-'tatus: D, :->e)words: :-@-D: 1 ?oucou" -?hristian ?alNca" ;our l7-nternet , *ond : http://www"pia#"asso"#r .a mNtNo du $et : http://www"grenouille"com ?omprendre les rNseaux : http://christian"caleca"#ree"#r

(hunder&ird/0"4

&ui... Sa voudrait dire "ue petit % petit# l(espace allou! va s(encom$rer de d!chets et au final# la :AL va e'ploser alors mNme "u(elle sera consid!r!e comme vide < La r!ponse est oui# si l(on ne prend pas une pr!caution suppl!mentaire : le compacta e des dossiers.

Pa e 29 sur 56

7!alis! % partir des pa es du site# du 5 mars 8669 par Laurent :A;//E

Le protocole IMAP4

Christian CALECA http://christian.caleca.free.fr/imap/

En cli"uant sur In$o' du $outon droit et en faisant 4Compact *his Folder4 et en r!p!tant la mNme op!ration sur 4*rash4# nous allons rem!dier au pro$lme :
/%ar/spool/mail# ls -l total 48 -rw-rw---1 testimap mail 0 Dec 20 11:!! testimap

Le fichier e'iste tou+ours# mais fait 6 octets# ce "ui prouve "u(il est vide. Il est donc primordial, avec IMAP, de penser compacter rgulirement les dossiers de la messagerie.
'!place#ent de #essa es

Hous allons cr!er pour le compte sur .8.maison.mrs une r le de filtra e "ui va d!placer tout messa e contenant le mot 4trier4 dans un dossier sp!cial intitul! 4demotri4 et cr!! % cet effet.

et nous envo)ons un messa e :

Pa e 25 sur 56

7!alis! % partir des pa es du site# du 5 mars 8669 par Laurent :A;//E

Le protocole IMAP4

Christian CALECA http://christian.caleca.free.fr/imap/

Et che, le destinataire :

Pa e 2B sur 56

7!alis! % partir des pa es du site# du 5 mars 8669 par Laurent :A;//E

Le protocole IMAP4

Christian CALECA http://christian.caleca.free.fr/imap/

Sa fonctionne. Le seul fait de lire sa messa erie va faire "ue le messa e sera d!plac! dans le dossier 4demotri4 sans "u(il ait !t! au pr!ala$le rapatri! che, le client. &n efface ce messa e sans int!rNt# on vide la pou$elle et au $out du compte# notre :AL contiendra tou+ours trois e'emplaires de ce messa e# invisi$les# mais $ien pr!sents :

3ans In$o'# parce "ue le d!placement n(est en r!alit! "u(une copie suivie d(un effacement# dans demotri# dans *rash.

Pense, donc % compacter les dossiers souvent T?A Plus fort encore# nous allons cr!er une r le de tri "ui fera "ue# lors"u(un messa e % destination de testimapQc)clope.maison.mrs contient le mot 4distant4 dans son o$+et# il faudra le d!placer dans le r!pertoire 4demotri4 du compte testimapQ .8.maison.mrs. Autrement dit# nous allons d!placer un messa e d(un serveur % l(autre.

Pa e 2C sur 56

7!alis! % partir des pa es du site# du 5 mars 8669 par Laurent :A;//E

Le protocole IMAP4

Christian CALECA http://christian.caleca.free.fr/imap/

7!p!tons?le# cette r le est !crite pour le compte testimapQc)clope.maison.mrs R Envoi du messa e :

Pa e 2E sur 56

7!alis! % partir des pa es du site# du 5 mars 8669 par Laurent :A;//E

Le protocole IMAP4

Christian CALECA http://christian.caleca.free.fr/imap/

Et r!ception :

Pa e 86 sur 56

7!alis! % partir des pa es du site# du 5 mars 8669 par Laurent :A;//E

Le protocole IMAP4

Christian CALECA http://christian.caleca.free.fr/imap/

Le cas d'un ros #essa e enco#%rant.

1ous Ntes perdu "uel"ue part de l(autre cMt! de la fracture num!ri"ue et ne dispose, "ue d(une m!chante conne'ion 7*C "ui plafonne % 8CC66 $ps et "ui se d!connecte toutes les cin" minutes# % cause de la mauvaise "ualit! de votre li ne t!l!phoni"ue. Le peu' vous indi"uer des endroits en France oP c(est comme Ka "ue Ka se passe. Comme dans ce cas# vous ave, pris la pr!caution de faire afficher la taille des messa es# vous constate, "ue celui?ci fait C69 Uo# "u(avec votre conne'ion pourrie# vous n(arrivere, +amais % le t!l!char er# IMAP vous sauve. En effet# % ce stade# le messa e n(est pas t!l!char ! en local. Aussi lon temps "ue vous ne cli"uere, pas dessus du $outon auche# il ne se t!l!char era pas. Cli"ue, donc dessus %u *outon %roit+ demande, de le d!placer dans le dossier 4LireVplusVtard4# "ue vous ave, cr!! % cet effet. Le d!placement aura lieu sans "ue le messa e ne soit t!l!char ! localement. 1ous pourre, alors aller le lire plus tard# lors"ue vous aure, retrouv! une conne'ion de $onne "ualit!.

Premi,res conclusions
/i cette d!monstration ne vous a pas convaincu de l(int!rNt d(IMAP# c(est "ue vous n(ave, pas $esoin de consulter votre messa erie depuis des machines diff!rentes# "ue vous Ntes suffisamment sWr de la Pa e 82 sur 56 7!alis! % partir des pa es du site# du 5 mars 8669 par Laurent :A;//E

Le protocole IMAP4

Christian CALECA http://christian.caleca.free.fr/imap/

fia$ilit! de votre machine locale pour ne pas souhaiter conserver vos messa es importants sur le serveur de votre fournisseur# "ue vous n(ave, +amais !t! confront! au $loca e de votre messa erie parce "ue vous ave, une conne'ion tellement mina$le "u(un ros messa e ne peut +amais Ntre rapatri! % cause des d!conne'ions. IMAP propose $eaucoup de fonctionnalit!s# c(est une autre affaire "ue d(en disposer avec son M>A. *hunder$ird re $ien mieu' l(IMAP "ue ne le fait &utlooJ E'press# par e'emple# "ui ne sait pas appli"uer de r les de filtra e sur les dossiers IMAP. Cependant# il n(est pas parfait non plus. Il n(est pas possi$le par e'emple de d!finir simplement une r le de tri en fonction de la taille des messa es. Pour"uoi avons?nous fait ces manipulations surtout avec >-?imap < Parce "ue c(est le serveur dont la structure est la plus simple. Mais rassure,?vous# nous verrons C)rus plus en d!tails dans la suite de cet e'pos!. 3e ce "ue nous avons vu pour l(instant# retenons "ue C)rus offre plus de souplesse dans l(or anisation des r!pertoires "ue ne le fait >-?imap. Hous verrons plus loin "ue ce n(est pas son seul avanta e. Mais en ce "ui concerne le protocole IMAP lui?mNme# les deu' serveurs se comportent de la mNme manire.

Pa e 88 sur 56

7!alis! % partir des pa es du site# du 5 mars 8669 par Laurent :A;//E

Le protocole IMAP4

Christian CALECA http://christian.caleca.free.fr/imap/

-e protocole IMAP
Comme nous l(avons dit plus haut# tous les clients de messa erie ne rent pas IMAP au mieu'. 1oir ce "ue l(on peut faire avec ce protocole % travers un M>A ne donnera pas un aperKu de toutes les possi$ilit!s de ce protocole. Et puis# mettre un peu les mains dans le cam$ouis# Ka ne fait pas de mal.

D$inition %u protocole
7*F7FC 8656# comme on dit che, les $ranch!s. Il en e'iste une traduction officieuse en franKais=. Elle est suffisamment $ien faite pour ne pas man"uer de l(utiliser. Il n(est donc pas "uestion ici de reprendre tout ce "ui est dit dedans. Hous allons plutMt essa)er de v!rifier "uel"ues points par la prati"ue. Il est tout de mNme peut?Ntre $on de rappeler "ue IMAP est un protocole d(application# "u(il s(appuie sur *CP et "ue le serveur !coute par d!faut sur le port 24=.

Mo%e opratoire
Il n(est pas conseill! de 4$ricoler4 avec des serveurs IMAP de production# par e'emple celui @ceu'A de votre FAI. I!n!ralement# ces serveurs sont trs sollicit!s. Avec le d!veloppement sans cesse croissant des conne'ions permanentes % haut d!$it# les ha$itudes chan ent.

Les :oOtes au' lettres# consult!es autrefois une ou deu' fois par +our le sont maintenant plusieurs fois par heure# la taille des messa es# rXce au' hauts d!$its et % cause de mauvaises ha$itudes a une forte tendance % au menter.

*out ceci fait "ue les serveurs /M*P/P&P/IMAP voient leur char e au menter dans d( !normes proportions. Pour au moins ces raisons# il est $ien plus convena$le de $idouiller sur un serveur IMAP 4maison4. /i l(on dispose d(une @voire plusieursA machine@sA sous Linu'# ce n(est pas o$li atoirement compli"u! % mettre en oeuvre. 3e plus# en a)ant compltement la main sur les machines h!$er eant les serveurs# nous pourrons modifier les confi urations et voir de prs comment les $oOtes sont construites.

Les serveurs IMAP courants


Hous en avons d!+% parl!# rappelons?le :

UW-IMAPD
>- IMAP3 est d!velopp! par l(universit! de -ashin ton. Il s(appuie sur le format 4mail$o'4 pour stocJer les messa es. C(est un format classi"ue "ue les M3A savent !n!ralement $ien !rer. En
= F7C 8656 en franKais : http://+lr=22=6.free.fr/rfc8656.html

Pa e 8= sur 56

7!alis! % partir des pa es du site# du 5 mars 8669 par Laurent :A;//E

Le protocole IMAP4

Christian CALECA http://christian.caleca.free.fr/imap/

ros# les messa es sont enre istr!s dans un fichier uni"ue# pour un utilisateur donn!. Le plus souvent# cha"ue utilisateur devra disposer d(un compte sur le serveur# mNme si ce compte ne lui permet pas d(ouvrir une session shell. Les dossiers IMAP "ue le client peut cr!er se situent au mNme niveau "ue IH:&0 et cha"ue dossier cr!! correspond sur le serveur % un fichier. Ce enre de serveur est e'trNmement facile % installer. Hous en utiliserons un e'emple sur une 3e$ian .ood) sta$le# avec E0IM comme M*A.

.(U/
C)rus est 4 l(autre 4 serveur IMAP. 3!velopp! par l(universit! de Carne ie Mellon# il s(appuie sur le format 4maildir4. Les messa es sont stocJ!s chacun dans un fichier s!par!# ran !s dans un r!pertoire par utilisateur. Les utilisateurs peuvent Ntre enre istr!s dans une $ase de donn!es# un annuaire L3AP et n(ont a$solument pas $esoin de disposer d(un compte >HI0 sur la machine serveur. Ce serveur est plus souple# plus sWr# offre plus de possi$ilit!s et# $ien entendu# est $eaucoup plus difficile % installer et % confi urer. Hous en verrons un e'emple sur c)clope.maison.mrs# une machine 3e$ian 4testin 4. 3(autres serveurs e'istent# comme courier?imap# souvent utilis! avec le /M*P DMAIL. Il est plus proche de C)rus "ue de >-?imap et utilise lui aussi le format 4Maildir4.

Les outils ( )presque* tout faire


Pour v!rifier et e'p!rimenter le protocole# en plus d(un M>A !rant proprement IMAP# nous utiliserons deu' outils de $ase :

Le sniffeur Ethereal pour re arder ce "u(il se passe sur le r!seau# *elnet# pour manipuler les commandes du protocole au plus $as niveau.

Les co#ptes pour faire les #anips


Hous disposons de trois comptes sur trois serveurs diff!rents @nous avons les mo)ensA : testimap0g1"2maison2mrs serveur u.?imap 4pacJa !4 dans la 3e$ian -ood) testimap0c!clope2maison2mrs serveur C)rus 82 de la 3e$ian 4testin 4 Et d(un client sur un poste -indo.s 0P @pour chan er un peu de s)stmeA.

Premier contact
Comme +e vous l(ai dit plus haut# une trs honnNte traduction de 7FC 8656 e'iste# vous n(ave, donc pas man"u! de la lire # moi non plus d(ailleurs. Pas encore < C(est pourtant n!cessaire4... Hous savons donc d!+% certaines choses :

les commandes du client doivent commencer par un 4ta 4# constitu! d(une chaOne de caractres courte# diff!rent % cha"ue commande# il e'iste trois !tats :

4 F7C 8656 en franKais : http://+lr=22=6.free.fr/rfc8656.html

Pa e 84 sur 56

7!alis! % partir des pa es du site# du 5 mars 8669 par Laurent :A;//E

Le protocole IMAP4 non authentifi!# authentifi!# s!lectionn!.

Christian CALECA http://christian.caleca.free.fr/imap/

3ans chacun de ces !tats# on a droit % un nom$re plus ou moins rand de commandes. 3ans le premier# non authentifi!# on ne peut pas faire rand chose# mais tout de mNme... CommenKons doucement. Hous allons +uste ouvrir une session sur cha"ue serveur et poser la "uestion 4CAPA:ILI*;4 % chacun d(eu'. C(est parti :
c:\> telnet gw2.maison.mrs 143 O 1> J?,;,H-.-(P -+,;40/F1 :-$/('?,;/ .19-$-0/*/00,.' ,@(8G.19-$K gw2"maison"mrs -+,;4re%1 2001"!1 at (hu= 6 $o% 200! 1 :0 :29 20100 B?/(D ,0001 ?,;,H-.-(P O ?,;,H-.-(P -+,;40/F1 :-$/('?,;/ $,+/';,?/ +,-.H1:-0/*/00,.' '?,$ '10( (80/,DG0/*/0/$?/' (80/,DG10D/0/D'@HQ/?( +@.(-,;;/$D .19-$-0/*/00,.' ,@(8G.19-$ ,0001 1> ?,;,H-.-(P completed ,0002 .191@( O HP/ gw2"maison"mrs -+,;4re%1 ser%er terminating connection ,0002 1> .191@( completed c:\>telnet cyclope.maison.mrs 143 O 1> c)clope"maison"mrs ?)rus -+,;4 %2"1"14--;%6-De&ian-2"1"14-1 ser%er read) ,0001 ?,;,H-.-(P O ?,;,H-.-(P -+,;4 -+,;4re%1 ,?. L@1(, .-(/0,.2 +,-.H1:-0/*/00,.' $,+/';,?/ @-D;.@' -D $1R,(1+-?R0/$,+/ @$'/./?( ?8-.D0/$ +@.(-,;;/$D '10( (80/,DG10D/0/D'@HQ/?( (80/,DG0/*/0/$?/' -D./ .-'(/:( .-'(-'@H'?0-H/D ,$$1(,(/+10/ ,0001 1> ?ompleted ,0002 .191@( O HP/ .191@( recei%ed ,0002 1> ?ompleted

/ans vraiment comprendre toutes les su$tilit!s de 4CAPA:ILI*;4# on voit clairement "ue C)rus propose d(avanta e de choses "ue >-?imap. Hote, "ue ce "ui est important au' )eu' de la norme# c(est "ue IMAP4rev2 fi ure dans la liste# ce "ui est le cas des deu' serveurs.

3uelques comman%es simples avec 4elnet


Puis"ue maintenant# vous ave, forc!ment lu les 7FC 86569# vous ave, pu constater "ue IMAP4 est $ien plus riche "ue P&P=. Hous n(allons pas passer des pa es et des pa es % anal)ser toutes les commandes possi$les# ce travail n(aurait d(ailleurs d(int!rNt "ue pour ceu' "ui souhaitent d!velopper un client @ou un serveurA IMAP. L(o$+ectif de ce "ui suit est +uste de comprendre le principe de fonctionnement. Les @$onsA clients IMAP4 permettent de ne char er "ue les o$+ets des messa es# leur date et leur taille. Il est donc possi$le# mNme avec une mauvaise conne'ion# d(e'ploiter ce protocole sans $loca e. Les conditions de travail ne sont plus les mNmes "u(avec le $on vieu' P&P=. Comme nous sommes sur cette pa e surtout pour !tudier le protocole# nous allons faire "uel"ues
9 F7C 8656 en franKais : http://+lr=22=6.free.fr/rfc8656.html

Pa e 89 sur 56

7!alis! % partir des pa es du site# du 5 mars 8669 par Laurent :A;//E

Le protocole IMAP4

Christian CALECA http://christian.caleca.free.fr/imap/

manips simples avec le serveur u.?imap install! sur .8# avec un compte tout neuf : testimap8Q .8.maison.mrs. Il vient +uste d(Ntre cr!! et aucun client n() a encore acc!d!.

Pr!li#inaires
CommenKons par re arder ce "u(il ) a dans le r!pertoire de l(utilisateur 4testimap84 :
/home/testimap2# ls /home/testimap2#

Il n() a rien du tout.

Ouverture d'une session IMAP


Il est possi$le d(utiliser la commande : L&IIH YuserZ Ypass.dZ. Faisons?le :
c:S5telnet gw2"maison"mrs 14! O 1> J?,;,H-.-(P -+,;40/F1 :-$/('?,;/ .19-$-0/*/00,.' ,@(8G.19-$K gw2"maison"mrs -+,;4re%1 2001"!1 at 'at= 8 $o% 200! 1<:16:42 20100 B?/(D 0001 .19-$ testimap2 testimap2 0001 1> J?,;,H-.-(P -+,;40/F1 :-$/('?,;/ $,+/';,?/ +,-.H1:-0/*/00,.' '?,$ '10( (80/,DG0/*/0/$?/' (80/,DG10D/0/D'@HQ/?( +@.(-,;;/$DK @ser testimap2 authenticated 0002 .191@( O HP/ gw2"maison"mrs -+,;4re%1 ser%er terminating connection 0002 1> .191@( completed

Sa marche. 3ans un cas pareil# les identifiants du client passent en clair sur le r!seau# comme avec P&P=. Mais il est possi$le de faire mieu' avec la commande A>*GEH*ICA*E. Hous ne la verrons pas avec *elnet# vous comprendre, vite pour"uoi. La manipulation est faite avec *hunder$ird# le tout sniff! avec Ethereal :
'ource 192"168"0"2 2 192"168"0"10 192"168"0"2 2 192"168"0"10 192"168"0"2 2 192"168"0"10 192"168"0"2 2 192"168"0"10 192"168"0"2 2 Destination 192"168"0"10 192"168"0"2 2 192"168"0"10 192"168"0"2 2 192"168"0"10 192"168"0"2 2 192"168"0"10 192"168"0"2 2 192"168"0"10 ;rotocol -+,; -+,; -+,; -+,; -+,; -+,; -+,; -+,; -+,; -n#o 0esponse: O 1> J?,;,H-.-(P -+,;40/F1 """ 0eTuest: 1 capa&ilit) 0esponse: O ?,;,H-.-(P -+,;40/F1 """ 0eTuest: 2 authenticate login 0esponse: 2 F:$lciH1PM1l,,GG 0eTuest: d9FAd9ltP:,G 0esponse: 2 @9*Ac!d%cmL, 0eTuest: d9FAd9ltP:,G 0esponse: 2 1> J?,;,H-.-(P -+,;40/F1 """

1ous vo)e,# c(est un peu compli"u! % faire avec telnet. Avec cette m!thode# c(est d!+% un peu plus difficile de pirater les identifiants du client.

Arran er son int!rieur


Avec cette manipulation au mo)en de *hunder$ird# dont il n(est affich! "u(un court e'trait# +uste pour voir travailler 4A>*GEH*ICA*E4# il s(est tout de mNme pass! d(autres choses. La preuve# si nous retournons voir dans le r!pertoire de l(utilisateur :
/home/testimap2# ls -l total 4 -rw------1 testimap2 nogroup /home/testimap2# 28 $o% 8 1<:29 (rash

Il ) a maintenant un r!pertoire nomm! 4*rash4. Il ne vient certainement pas du ciel# ce doit Ntre *hunder$ird "ui l(a cr!!. 7essortons donc la trace Ethereal et cherchons... Pa e 85 sur 56 7!alis! % partir des pa es du site# du 5 mars 8669 par Laurent :A;//E

Le protocole IMAP4

Christian CALECA http://christian.caleca.free.fr/imap/

'ource Destination ;rotocol -n#o """ 192"168"0"10 192"168"0"2 2 -+,; 0eTuest: 14 create U(rashU 192"168"0"2 2 192"168"0"10 -+,; 0esponse: 14 1> ?0/,(/ completed """

Et nous trouvons R La commande 4C7EA*E4 permet $ien de cr!er un r!pertoire. Essa)ons % la main :
c:S5 telnet gw2"maison"mrs 14! O 1> J?,;,H-.-(P -+,;40/F1 """ 001 login testimap2 testimap2 001 1> J?,;,H-.-(P -+,;40/F1 """ 002 create U'entU 002 1> ?0/,(/ completed 00! logout O HP/ gw2"maison"mrs -+,;4re%1 ser%er terminating connection 00! 1> .191@( completed

A priori# Ka a l(air d(avoir march!. 1!rification sur le serveur :


/home/testimap2# ls -l total 8 -rw------1 testimap2 nogroup -rw------1 testimap2 nogroup /home/testimap2# 28 $o% 28 $o% 8 18:01 'ent 8 1<:29 (rash

Pas de surprise. :ien. Hous n(allons pas tout passer en revue# l(important est de comprendre le principe. Luste deu' ou trois manips et Ka ira $ien.

Lire un #essa e
Pour Ka# il faut d!+% "u(il ) en ait au moins un % lire. Envo)ons un messa e par l(interm!diaire de 4mail4 directement depuis le serveur :
/home/testimap2# mail testimap24gw2"maison"mrs 'u&6ect: test simple coucou " ?c: /home/testimap2#

A?t?on a+out! "uel"ue chose dans le r!pertoire de l(utilisateur <


/home/testimap2# ls -l total 8 -rw------- 1 testimap2 nogroup -rw------- 1 testimap2 nogroup /home/testimap2# 28 $o% 8 18:01 'ent 28 $o% 8 1<:29 (rash

Il sem$le $ien "ue non. Sa peut paraOtre curieu'# mais c(est normal. Le messa e n(a pas encore !t! lu et il se trouve ailleurs. 1ous aimerie, savoir oP < Hous l(avons d!+% vu en pa e pr!c!dente# mais +e vais vous le redire... Hous utilisons sur cette machine le M*A E'im# "ui ran e les messa e locau' dans le r!pertoire /var/spool/mail "ui est en fait un alias de /var/mail :
/%ar/mail# ls -l total 40 -rw-rw---1 chris mail !6189 $o% 8 12:41 chris

Pa e 8B sur 56

7!alis! % partir des pa es du site# du 5 mars 8669 par Laurent :A;//E

Le protocole IMAP4
-rw-rw---/%ar/mail# 1 testimap2 mail 20 $o%

Christian CALECA http://christian.caleca.free.fr/imap/


8 18:09 testimap2

Ce fichier : 4testimap84# contient tous les messa es reKus. La preuve :


/%ar/mail# cat testimap2 *rom root4gw2"maison"mrs 'at $o% 08 18:09:4< 200! 0eturn-path: 3root4gw2"maison"mrs5 /n%elope-to: testimap24gw2"maison"mrs 0ecei%ed: #rom root &) ca-marseille-!4-108"w80-8"a&o"wanadoo"#r with local B/xim !"! id 1,-Map-0006Eu-00 #or 3testimap24gw2"maison"mrs5C 'at= 08 $o% 200! 18:09:4< 20100 (o: testimap24gw2"maison"mrs 'u&6ect: test simple +essage--d: 3/1,-Map-0006Eu-004ca-marseille-!4-108"w80-8"a&o"wanadoo"#r5 *rom: ?hristian ?aleca 3root4gw2"maison"mrs5 Date: 'at= 08 $o% 200! 18:09:4< 20100 coucou /%ar/mail#

#1 BDe&ianDD

Allons faire des choses avec telnet :


O 1> J?,;,H-.-(P -+,;40/F1 """ 0001 login testimap2 testimap2 0001 1> J?,;,H-.-(P -+,;40/F1 """ 0002 list UOU UOU O .-'( BS$o-n#eriorsD $-. -$H1: O .-'( BS$o-n#eriors S@n+arEedD U/U (rash O .-'( BS$o-n#eriors S@n+arEedD U/U "mail&oxlist O .-'( BS$o-n#eriors S@n+arEedD U/U 'ent O .-'( BS$o-n#eriorsD $-. -$H1: 0002 1> .-'( completed 000! select -$H1: * 1 EXISTS O $1 (r)ing to get mail&ox locE #rom process 2610 * 1 RE E!T O 1> J@-DF,.-D-(P 1068!148!0K @-D %alidit) status O 1> J@-D$/:( 2K ;redicted next @-D O *.,9' BS,nswered S*lagged SDeleted SDra#t S'eenD O 1> J;/0+,$/$(*.,9' BSO S,nswered S*lagged SDeleted SDra#t S'eenDK ;ermanent #lags O 1> "#!SEE! 1$ #irst unseen message in /%ar/mail/testimap2 000! 1> J0/,D-M0-(/K '/./?( completed 0004 logout O HP/ gw2"maison"mrs -+,;4re%1 ser%er terminating connection 0004 1> .191@( completed

-a comman%e -I/4
3e la faKon utilis!e ici# elle ne fait "u(afficher le contenu du r!pertoire de l(utilisateur# % "uel"ue chose prs : IH:&0# "ui n(est rien d(autre "ue le fichier /var/mail/YuserZ dans notre e'emple. Comme vous ave, maintenant lu les 7FC# vous save, "ue :

HIL indi"ue "u(il n() a pas de 4fla 4 particulier attri$u! % IH:&0# [>nMarJed si nifie "ue le 4dossier4 ne contient pas de nouveau' messa es depuis sa dernire s!lection. .mail$o'list# rappele,?vous# n(est rien d(autre "u(un fichier te'te "ui contient la liste des dossiers cr!!s dans le compte IMAP. >ne commande 4ls ?la4 le d!voile :
/home/testimap2# ls -la total 20 drwxr-xr-x 2 testimap2 nogroup drwxrwsr-x root sta## -rw-r--r-1 testimap2 nogroup 4096 $o% 9 08: 2 " 4096 $o% 6 14:!8 "" 6 $o% 8 1<:29 "mail&oxlist

Pa e 8C sur 56

7!alis! % partir des pa es du site# du 5 mars 8669 par Laurent :A;//E

Le protocole IMAP4
-rw-------rw------1 testimap2 nogroup 1 testimap2 nogroup 28 $o% 92 $o%

Christian CALECA http://christian.caleca.free.fr/imap/


8 18:01 'ent 9 08: 2 (rash

-a comman%e /5-5 4
Elle permet de s!lectionner le dossier "ue l(on souhaite consulter. 3ans l(e'emple# nous apprenons :

2 E0I/*/ : il ) a un messa e dedans# 2 7ECEH* : il ) a un messa e nouveau depuis la dernire consultation. \>H/EEH 2] : il ) a un messa e "ui n(a pas !t! vu

Pour le reste# +e vous laisse chercher dans les 7FC. Hous n(avons pas fait rand chose encore# mais retournons tout de mNme voir /var/mail/testimap8 :
/%ar/mail# cat testimap2 *rom root4gw2"maison"mrs 'at $o% 08 19:0 :21 200! 0eturn-path: 3root4gw2"maison"mrs5 /n%elope-to: testimap24gw2"maison"mrs 0ecei%ed: #rom root &) ca-marseille-!4-108"w80-8"a&o"wanadoo"#r with local B/xim !"! id 1,-:'&-0006n9-00 #or 3testimap24gw2"maison"mrs5C 'at= 08 $o% 200! 19:0 :21 20100 (o: testimap24gw2"maison"mrs 'u&6ect: test simple +essage--d: 3/1,-:'&-0006n9-004ca-marseille-!4-108"w80-8"a&o"wanadoo"#r5 *rom: ?hristian ?aleca 3root4gw2"maison"mrs5 Date: 'at= 08 $o% 200! 19:0 :21 20100 :--+,;&ase: 1068!148!0 1 'tatus: 1 :-'tatus: :->e)words: :-@-D: 1 coucou /%ar/mail#

#1 BDe&ianDD

A l(!vidence# le serveur IMAP a ra+out! "uel"ues li nes dans l(en?tNte du messa e... 7e+ouons la conne'ion par telnet :
c:S5 telnet gw2"maison"mrs 14! O 1> J?,;,H-.-(P -+,;40/F1 """ 01 login testimap2 testimap2 01 1> J?,;,H-.-(P -+,;40/F1 """ 02 list UOU UOU O .-'( BS$o-n#eriorsD $-. -$H1: O .-'( BS$o-n#eriors S@n+arEedD U/U (rash O .-'( BS$o-n#eriors S@n+arEedD U/U "mail&oxlist O .-'( BS$o-n#eriors S@n+arEedD U/U 'ent O .-'( BS$o-n#eriorsD $-. -$H1: 02 1> .-'( completed 0! select -$H1: * 1 EXISTS * % RE E!T O 1> J@-DF,.-D-(P 1068!6 8<9K @-D %alidit) status O 1> J@-D$/:( 2K ;redicted next @-D O *.,9' BS,nswered S*lagged SDeleted SDra#t S'eenD O 1> J;/0+,$/$(*.,9' BSO S,nswered S*lagged SDeleted SDra#t S'eenDK ;ermanent #lags O 1> "#!SEE! 1$ #irst unseen message in /%ar/mail/testimap2 0! 1> J0/,D-M0-(/K '/./?( completed 04 logout O HP/ gw2"maison"mrs -+,;4re%1 ser%er terminating connection 04 1> .191@( completed

La seule chose "ui a chan !# c(est "ue le 42 7ECEH*4 est pass! % 46 7ECEH*4. Hous n(avons pas Pa e 8E sur 56 7!alis! % partir des pa es du site# du 5 mars 8669 par Laurent :A;//E

Le protocole IMAP4

Christian CALECA http://christian.caleca.free.fr/imap/

lu le messa e @>H/EEH 2A# mais le serveur a not! "ue depuis notre dernire visite# il n() a pas eu de nouveau' messa es. 7ien n(a chan ! dans /var/mail/testimap8.

-a comman%e 654 7
1ous ave, pu constater dans les 7FC la comple'it! de cette commande# nous allons l(utiliser ici simplement. 3(a$ord pour lire l(en?tNte de l(uni"ue messa e disponi$le @:&3;\GEA3E7]A puis pour lire le te'te du messa e @:&3;\*E0*]A :
O 1> J?,;,H-.-(P -+,;40/F1""" 001 login testimap2 testimap2 001 1> J?,;,H-.-(P -+,;40/F1 """ 002 select -$H1: O 1 /:-'(' O $1 (r)ing to get mail&ox locE #rom process 280!2 O 0 0/?/$( O 1> J@-DF,.-D-(P 1068!6<9! K @-D %alidit) status O 1> J@-D$/:( 2K ;redicted next @-D O *.,9' BS,nswered S*lagged SDeleted SDra#t S'eenD O 1> J;/0+,$/$(*.,9' BSO S,nswered S*lagged SDeleted SDra#t S'eenDK ;ermanent #lags 002 1> J0/,D-M0-(/K '/./?( completed 00! #etch 1 H1DPJ8/,D/0K O 1 */(?8 BH1DPJ8/,D/0K V4<1W 0eturn-path: 3root4gw2"maison"mrs5 /n%elope-to: testimap24gw2"maison"mrs 0ecei%ed: #rom root &) gw2"maison"mrs with local B/xim !"! #1 BDe&ianDD id 1,-l-,-000<8i-00 #or 3testimap24gw2"maison"mrs5C 'un= 09 $o% 200! 09: 1:!0 20100 (o: testimap24gw2"maison"mrs 'u&6ect: test simple +essage--d: 3/1,-l-,-000<8i-004gw2"maison"mrs5 *rom: ?hristian ?aleca 3root4gw2"maison"mrs5 Date: 'un= 09 $o% 200! 09: 1:!0 20100 D 00! 1> */(?8 completed 004 #etch 1 H1DPJ(/:(K O 1 */(?8 BH1DPJ(/:(K V8W coucou D 004 1> */(?8 completed 00 logout O HP/ gw2"maison"mrs -+,;4re%1 ser%er terminating connection 00 1> .191@( completed

1o)e, les 7FC pour une description complte des options de la commande FE*CG. 7etournons voir dans /var/mail/testimap8 si "uel"ue chose a chan ! :
/%ar/mail# cat testimap2 *rom root4gw2"maison"mrs 'un $o% 09 09: 1:!0 200! 0eturn-path: 3root4gw2"maison"mrs5 /n%elope-to: testimap24gw2"maison"mrs 0ecei%ed: #rom root &) gw2"maison"mrs with local B/xim !"! #1 BDe&ianDD id 1,-l-,-000<8i-00 #or 3testimap24gw2"maison"mrs5C 'un= 09 $o% 200! 09: 1:!0 20100 (o: testimap24gw2"maison"mrs 'u&6ect: test simple +essage--d: 3/1,-l-,-000<8i-004gw2"maison"mrs5 *rom: ?hristian ?aleca 3root4gw2"maison"mrs5 Date: 'un= 09 $o% 200! 09: 1:!0 20100

Pa e =6 sur 56

7!alis! % partir des pa es du site# du 5 mars 8669 par Laurent :A;//E

Le protocole IMAP4
:--+,;&ase: 1068!148!0 1 Stat&s: R' :-'tatus: :->e)words: :-@-D: 1 coucou /%ar/mail#

Christian CALECA http://christian.caleca.free.fr/imap/

&ui. Le 4ta 4 /tatus est pass! de & % 7&.

-a comman%e /4O(5
Cette commande permet de modifier les 4fla s4 attach!s % un messa e. Les fla s "ue l(on peut attri$uer % un messa e sont les suivants : [/een [Ans.ered [Fla ed [3eleted [3raft [7ecent Le messa e a !t! lu &n a r!pondu au messa e Le messa e est 4fla ed4 pour ) donner une attention ur ente/sp!ciale

Le messa e est 4deleted4 @supprim!A pour "ue plus tard un E0P>HIE puisse l(enlever Le messa e n(a pas !t! entirement compos! @mar"u! en tant "ue $rouillon @draftAA. Le messa e est arriv! r!cemment dans cette $oOte au' lettres. Cette session est la premire session "ui ait reKu une notification a propos de ce messa e. Les sessions ult!rieures ne verront pas l(!tat [7ecent pour ce messa e. Ce drapeau ne peut Ntre modifi! par le client. /(il n(est pas possi$le de d!terminer si oui ou non# cette session est la premire session a Ntre notifi!e du messa e# alors ce messa e 3E17A @/G&>L3A Ntre consid!r! comme r!cent. /i de multiples conne'ions ont s!lectionn! la mNme $oOte au' lettres simultan!ment# on ne peut d!finir la"uelle de ces conne'ions verra les messa es arriv!s nouvellement avec l(!tat [7ecent et "uelles vont Ntre celles "ui le verront sans [7ecent.
Extrait de http:// lr!""!#.$ree.$r/r$c%#&#.html'%.!.%.

Il est temps maintenant de reprendre un point tr,s important de IMAP. *rs important# parce "ue si l(on n(a pas compris ce "ui va suivre# on va laisser son compte IMAP s(en raisser sans comprendre pour"uoi et arrivera un +our oP votre :AL se retrouvera pleine# vos messa es entrants seront refus!s# alors "ue vous pense, avoir $ien fait le m!na e. Un message consi%r comme e$$ac ne l)est pas. Il a +uste le fla [3eleted positionn!. Comme c(est clairement indi"u!# seul le fla 4[7ecent4 ne peut Ntre modifi! par le client. Le pro$lme "ui se pose avec la plupart des clients de messa erie est le suivant :

Ces clients cr!ent une pou$elle @r!pertoire 4*rash4# avec *hunder$irdA# l(effacement d(un messa e dans IH:&0 se traduit la plupart du temps par deu' op!rations : 7!alis! % partir des pa es du site# du 5 mars 8669 par Laurent :A;//E

Pa e =2 sur 56

Le protocole IMAP4 le messa e est marqu [3eleted dans IH:&0# le messa e est copi dans *rash.

Christian CALECA http://christian.caleca.free.fr/imap/

Lors"ue l(utilisateur m!thodi"ue efface ensuite le contenu de la pou$elle# il ne fait "ue mar"uer dans *rash les messa es avec le fla [3eleted. 1u de dehors# tout sem$le vide# vu de dedans# votre messa e e'iste tou+ours# et en dou$le# en plus R
'!#onstration

Hous avons d!+% vu Ka en pa e pr!c!dente# mais c(est tellement important "u(il vaut mieu' le r!p!ter Hous repartons d(un compte IMAP parfaitement vide# nous le v!rifions sur le serveur :
/%ar/mail# cat testimap2 # Il n'y a rien dans /var/mail/testimap2 /%ar/mail# cat /home/testimap2/(rash *rom +,-./0-D,/+1$ 'un $o% 9 10:48:1 200! Date: 09 $o% 200! 10:48:1 20100 *rom: +ail ')stem -nternal Data 3+,-./0-D,/+1$4gw2"maison"mrs5 'u&6ect: D1$7( D/./(/ (8-' +/'',9/ -- *1.D/0 -$(/0$,. D,(, +essage--D: 31068!<129 4gw2"maison"mrs5 :--+,;: 1068!08988 0000000004 'tatus: 01 (his text is part o# the internal #ormat o# )our mail #older= and is not a real message" -t is created automaticall) &) the mail s)stem so#tware" -# deleted= important #older data will &e lost= and it will &e re-created with the data reset to initial %alues" # L, il y a quelque chose, mais le texte du message l'indique clairement: # c'est un message ncessaire au syst me !"IL#$% , ce n'est pas un rel message # et il ne &aut pas le dtruire' /%ar/mail#

Envoi d(un messa e de test# comme vu plus haut :


/%ar/mail# mail testimap24gw2"maison"mrs 'u&6ect: test D/./(/ message destinN X de%enir un #antYme""" " ?c: ca-marseille-! -89:/%ar/mail#

Ce n(est pas la peine de tout refaire# nous savons "u(il est maintenant dans /var/mail/testimap8. Hous allons utiliser *hunder$ird pour :

Le lire# l(effacer dans In$o'# donc le copier dans la pou$elle @*rashA# l(effacer de la pou$elle.

Mais Ethereal va suivre toutes ces op!rations... Pour all! er la lecture# +e supprime la partie authentification# rep!ra e de tous les paramtres IMAP# de mNme "ue tout ce "ui ne concerne "ue *CP. Hous d!marrons % la s!lection de IH:&0 :
'ource Destination # (lection de I)#$% 192"168"0"1 192"168"0"2 2 192"168"0"2 2 192"168"0"1 ;rotocol -n#o -+,; -+,; 0eTuest: 1! select U-$H1:U 0esponse: O 1 /:-'('

Pa e =8 sur 56

7!alis! % partir des pa es du site# du 5 mars 8669 par Laurent :A;//E

Le protocole IMAP4

Christian CALECA http://christian.caleca.free.fr/imap/

192"168"0"1 192"168"0"2 2 -+,; 0eTuest: 14 @-D #etch 1:O B*.,9'D 192"168"0"2 2 192"168"0"1 -+,; 0esponse: O 1 */(?8 B@-D 1 *.,9' BS0ecentDD 192"168"0"1 192"168"0"2 2 -+,; 0eTuest: 1 @-D #etch 1 B@-D 0*?822"'-Z/ *.,9' H1DP";//>J8/,D/0""" 192"168"0"2 2 192"168"0"1 -+,; 0esponse: O 1 */(?8 B@-D 1 0*?822"'-Z/ 12 *.,9' BS0ecentD H1DPJ8/,D/0"*-/.D'""" # Lecture du message 192"168"0"1 192"168"0"2 2 -+,; 0eTuest: 16 @-D #etch 1 B@-D 0*?822"'-Z/ H1DPJKD 192"168"0"2 2 192"168"0"1 -+,; 0esponse: O 1 */(?8 B@-D 1 0*?822"'-Z/ 12 H1DPJK V 12W # Copie dans *rash 192"168"0"1 192"168"0"2 2 -+,; 0eTuest: 1< uid cop) 1 U(rashU 192"168"0"2 2 192"168"0"1 -+,; 0esponse: 1< 1> @-D ?1;P completed # +&&acement de I)#$% ,positionnement du &lag -./eleted-0 192"168"0"1 192"168"0"2 2 -+,; 0eTuest: 18 uid store 1 2*.,9' BSDeletedD 192"168"0"2 2 192"168"0"1 -+,; 0esponse: O 1 */(?8 B*.,9' BS0ecent S'een SDeletedD @-D 1D 192"168"0"2 2 192"168"0"1 -+,; 0esponse: O 1> J?,;,H-.-(P -+,;40/F1 """ """ # (lection de *rash 192"168"0"1 192"168"0"2 2 -+,; 0eTuest: 2 select U(rashU 192"168"0"2 2 192"168"0"1 -+,; 0esponse: O 1 /:-'(' 192"168"0"1 192"168"0"2 2 -+,; 0eTuest: ! @-D #etch 1:O B*.,9'D 192"168"0"2 2 192"168"0"1 -+,; 0esponse: O 1 */(?8 B@-D 6 *.,9' BS'eenDD 192"168"0"1 192"168"0"2 2 -+,; 0eTuest: 4 @-D #etch 6 B@-D 0*?822"'-Z/ *.,9' H1DP";//>J8/,D/0"""" 192"168"0"2 2 192"168"0"1 -+,; 0esponse: O 1 */(?8 B@-D 6 0*?822"'-Z/ 12 *.,9' BS'eenD H1DPJ8/,D/0"*-/.D'""" # Lecture du message qui se trouve dans la pou1elle 192"168"0"1 192"168"0"2 2 -+,; 0eTuest: @-D #etch 6 B@-D 0*?822"'-Z/ H1DPJKD 192"168"0"2 2 192"168"0"1 -+,; 0esponse: O 1 */(?8 B@-D 6 0*?822"'-Z/ 12 H1DPJK V 12W # +&&acement du message dans *rash ,positionnement du &lag ./eleted0 192"168"0"1 192"168"0"2 2 -+,; 0eTuest: 6 uid store 6 2*lags BSDeletedD 192"168"0"2 2 192"168"0"1 -+,; 0esponse: O 1 */(?8 B*.,9' BS'een SDeletedD @-D 6D """ # Il ne se passe plus rien d'important'

A ce niveau de la manipulation# l(utilisateur de *hunder$ird :


ne trouve plus rien dans In$o'# ne trouve plus rien dans *rash# croit donc "ue son s)stme de messa erie est compltement vide et propre...

Il n(en est rien# la preuve :


/%ar/mail# cat testimap2 *rom root4gw2"maison"mrs 'un $o% 09 11:0!:2 200! 0eturn-path: 3root4gw2"maison"mrs5 /n%elope-to: testimap24gw2"maison"mrs 0ecei%ed: #rom root &) gw2"maison"mrs with local B/xim !"! #1 BDe&ianDD id 1,-m;l-000<>1-00 #or 3testimap24gw2"maison"mrs5C 'un= 09 $o% 200! 11:0!:2 20100 (o: testimap24gw2"maison"mrs 'u&6ect: test D/./(/ +essage--d: 3/1,-m;l-000<>1-004gw2"maison"mrs5 *rom: ?hristian ?aleca 3root4gw2"maison"mrs5 Date: 'un= 09 $o% 200! 11:0!:2 20100 :--+,;&ase: 1068!<22<2 1 'tatus: 01 X(Stat&s: ) :->e)words: :-@-D: 1 message destinN X de%enir un #antYme""" /%ar/mail#

3ans /var/mail/testimap8 @IH:&0A le message est tou8ours prsent# il n() a "ue 9-/4A4U/: D pour indi"uer "u(il est d!truit. Pa e == sur 56 7!alis! % partir des pa es du site# du 5 mars 8669 par Laurent :A;//E

Le protocole IMAP4
/%ar/mail# cat /home/testimap2/(rash *rom +,-./0-D,/+1$ 'un $o% 9 11:04: 1 200! Date: 09 $o% 200! 11:04: 1 20100 *rom: +ail ')stem -nternal Data 3+,-./0-D,/+1$4gw2"maison"mrs5 'u&6ect: D1$7( D/./(/ (8-' +/'',9/ -- *1.D/0 -$(/0$,. D,(, +essage--D: 31068!<22914gw2"maison"mrs5 :--+,;: 1068!08988 0000000006 'tatus: 01

Christian CALECA http://christian.caleca.free.fr/imap/

(his text is part o# the internal #ormat o# )our mail #older= and is not a real message" -t is created automaticall) &) the mail s)stem so#tware" -# deleted= important #older data will &e lost= and it will &e re-created with the data reset to initial %alues" *rom root4gw2"maison"mrs 'un $o% 09 11:0!:2 200! 0eturn-path: 3root4gw2"maison"mrs5 /n%elope-to: testimap24gw2"maison"mrs 0ecei%ed: #rom root &) gw2"maison"mrs with local B/xim !"! #1 BDe&ianDD id 1,-m;l-000<>1-00 #or 3testimap24gw2"maison"mrs5C 'un= 09 $o% 200! 11:0!:2 20100 (o: testimap24gw2"maison"mrs 'u&6ect: test D/./(/ +essage--d: 3/1,-m;l-000<>1-004gw2"maison"mrs5 *rom: ?hristian ?aleca 3root4gw2"maison"mrs5 Date: 'un= 09 $o% 200! 11:0!:2 20100 'tatus: 01 X(Stat&s: ) :->e)words: :-@-D: 6 message destinN X de%enir un #antYme""" /%ar/mail#

3ans /home/testimap8/*rash# la pou$elle# le message est tou8ours prsent# il n() a "ue 9-/4A4U/: D pour indi"uer "u(il est d!truit. Autrement dit# alors mNme "ue l(on croit s(Ntre d!finitivement d!$arrass! du messa e# on n(a fait "ue le copier en dou$le dans son s)stme de messa erie... Comment faire alors <

-a comman%e 59PU;<5
7assure, vous# IMAP4rev2 a pr!vu cet ennui et met % disposition une commande "ui !limine d!finitivement tous les messa es mar"u!s [3eleted dans un r!pertoire donn!. Hous l(utilisons avec *elnet :
O 1> J?,;,H-.-(P -+,;40/F1""" 001 login testimap2 testimap2 001 1> J?,;,H-.-(P -+,;40/F1 """ 002 select -$H1: O 1 /:-'(' O 0 0/?/$( O 1> J@-DF,.-D-(P 1068!<22<2K @-D %alidit) status O 1> J@-D$/:( 2K ;redicted next @-D O *.,9' BS,nswered S*lagged SDeleted SDra#t S'eenD O 1> J;/0+,$/$(*.,9' BSO S,nswered S*lagged SDeleted SDra#t S'eenDK ;ermanent #lags 002 1> J0/,D-M0-(/K '/./?( completed 00! expunge O 1 /:;@$9/ O 0 /:-'(' O 0 0/?/$( %%3 '* E+p&nge, 1 messages 004 select (rash

Pa e =4 sur 56

7!alis! % partir des pa es du site# du 5 mars 8669 par Laurent :A;//E

Le protocole IMAP4

Christian CALECA http://christian.caleca.free.fr/imap/

O 1 /:-'(' O 0 0/?/$( O 1> J@-DF,.-D-(P 1068!08988K @-D %alidit) status O 1> J@-D$/:( <K ;redicted next @-D O *.,9' BS,nswered S*lagged SDeleted SDra#t S'eenD O 1> J;/0+,$/$(*.,9' BSO S,nswered S*lagged SDeleted SDra#t S'eenDK ;ermanent #lags 004 1> J0/,D-M0-(/K '/./?( completed 00 expunge O 1 /:;@$9/ O 0 /:-'(' O 0 0/?/$( %%- '* E+p&nge, 1 messages 006 logout O HP/ gw2"maison"mrs -+,;4re%1 ser%er terminating connection 006 1> .191@( completed

retour sur le serveur :


/%ar/mail# cat testimap2 /%ar/mail#

/var/mail/testimap8 @IH:&0A est $ien vide...


/%ar/mail# cat /home/testimap2/(rash *rom +,-./0-D,/+1$ 'un $o% 9 11:40:!0 200! Date: 09 $o% 200! 11:40:!0 20100 *rom: +ail ')stem -nternal Data 3+,-./0-D,/+1$4gw2"maison"mrs5 'u&6ect: D1$7( D/./(/ (8-' +/'',9/ -- *1.D/0 -$(/0$,. D,(, +essage--D: 31068!<44!04gw2"maison"mrs5 :--+,;: 1068!08988 0000000006 'tatus: 01 (his text is part o# the internal #ormat o# )our mail #older= and is not a real message" -t is created automaticall) &) the mail s)stem so#tware" -# deleted= important #older data will &e lost= and it will &e re-created with the data reset to initial %alues" /%ar/mail#

et /home/testimap8/*rash est ! alement vide. &uf R

onclusions
Ce court e'pos! n(avait d(autre am$ition "ue de montrer "uel"ues points importants. Il est clair "ue celui "ui voudra d!velopper un client de messa erie IMAP devra effectivement lire les 7FC et faire $eaucoup plus de manipulations pr!liminaires "ue celles "ue nous avons vues ici.

+#ploi des co##andes IMAP


Les commande IMAP sont toutes en mode te'te# comme pour tout protocole d(application 4classi"ue4. Elles sont donc utilisa$les plus ou moins simplement avec telnet. Ici# c(est nettement plus compli"u! "u(avec P&P=# mais Ka reste faisa$le. Pourquoi sont-elles prcdes d'un "tag" ? Comme vous ave, attentivement lu les 7FC# vous save, "ue c(est parce "ue le client peut envo)er plusieurs commandes sans o$li atoirement attendre % cha"ue fois la r!ponse. Le 4ta 4 permet donc de retrouver facilement la r!ponse % une commande donn!e. De l'importance de EXPUNGE...

Pa e =9 sur 56

7!alis! % partir des pa es du site# du 5 mars 8669 par Laurent :A;//E

Le protocole IMAP4

Christian CALECA http://christian.caleca.free.fr/imap/

Hous avons vu "u(il est fondamental de param!trer correctement son client de messa erie pour "u(il envoie p!riodi"uement la commande E0P>HIE au serveur sur les divers dossiers de notre messa erie. Avec *hunder$ird :

il est possi$le de la faire automati"uement en certaines occasions# fouille, dans les diverses options de confi uration du client# il est possi$le de le faire manuellement# en s!lectionnant un dossier# puis en cli"uant du $outon droit dessus et en s!lectionnant 4Compact *his Folder4.

Le vous laisse le soin de trouver l(!"uivalent sur d(autres clients de messa erie.

Le for#at MAIL,OAu travers de ces manipulations# nous avons pu comprendre "ue le format MAIL:&0 consiste en un uni"ue fichier par dossier# dans le"uel tous les messa es sont a+out!s les uns derrire les autres# avec "uel"ues drapeau' sp!cifi"ues pour indi"uer l(!tat de ces messa es @0?IMAP$ase:# /tatus:# 0? /tatus:# 0?Ue).ords:# 0?>I3: A. Ce s)stme# d(ailleurs repris par la plupart des clients de messa erie pour le stocJa e en local des messa es# offre au moins un ros inconv!nient : si le fichier est endomma !# la totalit! de son contenu sera pro$a$lement perdue. Le format MAIL3I7# "ue nous n(avons pas vu ici# !limine en rande partie cet inconv!nient. Hous le verrons rapidement dans la pa e suivante.

Pa e =5 sur 56

7!alis! % partir des pa es du site# du 5 mars 8669 par Laurent :A;//E

Le protocole IMAP4

Christian CALECA http://christian.caleca.free.fr/imap/

Deu= serveurs IMAP4


/i tout Ka vous a donn! l(envie d(e'p!rimenter# voire de mettre en place un serveur IMAP# voici en "uel"ue mots une pr!sentation des deu' serveurs les plus courants.

-e cas simple et $acile installer


Il s(a it du serveur u.?imapd# celui l% mNme "ui a !t! utilis! en pa e pr!c!dente. >tilis! sur 3e$ian ou une autre distri$ution comme MandraJe ou Fedora#avec E'im #Postfi' ou /endmail# les M*A install!s par d!faut savent d!livrer localement avec les $ons outils dans des $oOtes au' lettres au format Mail$o'# !n!ralement dans le r!pertoire /var/spool/mail.

Pour Mandra.e
Installe, le pa"ueta e imap sur MandraJe @celui?ci vous fournira ! alement le service P&P=A. 1!rifie, "ue le super d!mon 'inetd est correctement confi ur!. 1ous deve, trouver dans /etc/'inetd.d/imap "uel"ue chose de ce enre :
ser%ice imap V socEetRt)pe wait user ser%er logRonRsuccess logRonR#ailure ,isa.le W G stream G no G root G /usr/s&in/imapd 2G D@0,(-1$ @'/0-D 2G @'/0-D / no

1!rifie, ! alement dans /etc/services la pr!sence de ces li nes :


imap imap 14!/tcp 14!/udp imap2 imap2 # -nterim +ail ,ccess ;roto %2

/i imap8 vous ne# remplace, par imap4. Ce sera plus +oli# mais Ka ne fonctionnera pas mieu'. Curieusement# imap8 fait en r!alit! r!f!rence % imap4 r!vision 2

Pour 'e%ian :
Installe, le pa"ueta e u.?imapd. 1!rifie, "ue le super d!mon inetd est correctement confi ur!. 1ous deve, trouver dans /etc/inetd.conf "uel"ue chose de ce enre :
#:+,-.: +ail= news and uucp ser%ices" imap2 stream tcp nowait root imap! stream tcp nowait root /usr/s&in/tcpd /usr/s&in/tcpd /usr/s&in/imapd /usr/s&in/imapd

1!rifie, ! alement dans /etc/services la pr!sence de ces li nes :


imap2 imap2 14!/tcp 14!/udp imap imap # -nterim +ail ,ccess ;roto %2

Pa e =B sur 56

7!alis! % partir des pa es du site# du 5 mars 8669 par Laurent :A;//E

Le protocole IMAP4

Christian CALECA http://christian.caleca.free.fr/imap/

Pour les deu& :


relance, votre super d!mon si vous ave, modifi! sa confi uration# et Ka devrait fonctionner. 1ous vo)e,# ce n(est pas $ien compli"u!# et ce sera lar ement suffisant dans $ien des cas.

-e cas compliqu et %i$$icile installer


Les solutions les plus simples n(!tant pas forc!ment les plus attra)antes# nous allons maintenant voir une solution "ui utilise C)rus# le serveur de choc.

M*A : Postfi' IMAP : C)rus en version 8.2 Authentification des utilisateurs par saslauth.

Pourquoi tout /a 0
L(o$+ectif est de monter un s)stme ind!pendant des comptes d(utilisateurs >HI0 @Authentification par saslauth via une $ase de donn!es ind!pendante des comptes utilisateursA# avec un serveur IMAP proposant le plus de fonctionnalit!s possi$les# et utilisant le format Maildir# plus sWr @C)rusA. Pour l(authentification# nous aurions pu utiliser une $ase de donn!es de t)pe M)/DL ou un annuaire L3AP. Le sado?masochisme a toutefois ses limites# et Ka nous mnerait trop loin hors du su+et initial. (n outil comme )e*+c,radm& propose une solution en utilisant M,-./. 0et outil, pour prometteur 1u2il soit, ne sem*le pas encore asse3 mature. Il n2est pas le seul dans ce genre, replex4 sem*le 5tre un concurrent trs proche. Avec ce trio, nous aurions pu raliser un s,stme de messagerie per$ormant :

Administra*le par une inter$ace )e* 6)e*+c,radm7, capa*le de crer des *o8tes aux lettres pour des domaines virtuels 6des domaines autres 1ue celui au1uel appartient le serveur7, capa*le de grer les 1uotas pour cha1ue *o8te, sans passer par les 1uotas des utilisateurs (9I:, la possi*ilit de grer les redirections et les rpondeurs, grer de multiples alias pour une m5me *o8te aux lettres, grer un compte ;catch all; c2est dire un collecteur de messages destins votre domaine, mais des utilisateurs 1ui n2existent pas.

Mais attention, <a peut vite devenir trs compli1u...

Mat!riel requis
Ici# nous nous contenterons de faire fonctionner c)rus d(une faKon 4simple4.
5 .e$?c)radm : http://.....e$?c)radm.or / B reple' : http://sourcefor e.net/pro+ects/reple'/

Pa e =C sur 56

7!alis! % partir des pa es du site# du 5 mars 8669 par Laurent :A;//E

Le protocole IMAP4

Christian CALECA http://christian.caleca.free.fr/imap/

Les pa"ueta es e'istent pour la MandraJe E.8 dans les contri$utions. 1ous pouve, faire Ka sur MandraJe# mais ce "ui suit est d!crit sur 3e$ian. Ce sera pro$a$lement plus compli"u!# mais par la suite# c(est tout de mNme plus facile de faire !voluer une 3e$ian "u(une MandraJe. Il faut la version 8.2 ou sup!rieure de C)rus. Elle n(e'iste pas 4pacJa !e4 dans la 3e$ian sta$le. Autrement dit vous ave, le choi' entre :

Compiler sur votre version sta$le le pa"ueta e source 4testin 4 utiliser la 3e$ian 4testin 4

Hous ferons Ka sur une testin . Comme il n(est pas "uestion ici d(!crire une enc)clop!die# nous supposons "ue vous save, faire les choses suivantes :

installer une 3e$ian# la passer en version 4testin 4# installer Postfi' % la place d(E'im @/i vous Ntes un e'pert d(E'im# arde, E'im. Il faut +uste Ntre capa$le de faire comprendre % E'im "u(il doit utiliser C)rus pour le transport local# savoir en ros comment fonctionne PAM @Plu a$le Authentication ModulesA.

/i vous save, faire tout cela# vous pourre, faire aussi la suite. /inon# Ka ris"ue de se solder par un !chec.

!rus
C(est lui "ui va recevoir les mails locau'# !rer les $oOtes au' lettres des inscrits et leur servir leurs messa es via IMAP @ou P&P=A. C)rus# pour authentifier les clients# s(appuie sur /A/L. /A/L peut authentifier depuis par plusieurs m!thodes :

sasld$# une $ase de donn!es au format :erJele)# shado.# en utilisant les comptes >HI0 locau'# pam# en utilisant % peu prs n(importe "uoi.

3ans le cas le plus simple# shado.# cha"ue utilisateur devra disposer d(un compte local# ce n(est pas ce "ui nous int!resse. sasld$# c(est d!+% mieu'# les utilisateurs auront un compte dans la $ase sasld$# ind!pendant des comptes >HI0# pam# c(est le mo)en le plus souple. &n pourra utiliser un annuaire L3AP ou une $ase de donn!es M)/DL ou mNme sasld$# via pam. La premire chose % faire# une fois la confi uration vue plus haut r!alis!e# est d(installer C)rus82 et saslauthd.

Installation de C1rus :
1oici la liste des pa"ueta es. Attention# % ceu' "ui sont install!s @iiA. *ous ceu' "ui sont list!s ici ne Pa e =E sur 56 7!alis! % partir des pa es du site# du 5 mars 8669 par Laurent :A;//E

Le protocole IMAP4 sont pas forc!ment n!cessaires.

Christian CALECA http://christian.caleca.free.fr/imap/

c)clope:[# dpEg -l 7Oc)rusO7 DesiredG@nEnown/-nstall/0emo%e/;urge/8old \ 'tatusG$ot/-nstalled/?on#ig-#iles/@npacEed/*ailed-con#ig/8al#-installed \/ /rr]GBnoneD/8old/0einst-reTuired/:G&oth-pro&lems B'tatus=/rr: uppercaseG&adD \\/ $ame Fersion Description 222-GGGGGGGGGGGGGGGGGGGGGGGG-GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG pn c)rus-admin 3none5 Bno description a%aila&leD pn c)rus-common 3none5 Bno description a%aila&leD pn c)rus-de% 3none5 Bno description a%aila&leD pn c)rus-imapd 3none5 Bno description a%aila&leD pn c)rus-nntp 3none5 Bno description a%aila&leD pn c)rus-pop!d 3none5 Bno description a%aila&leD ii c)rus21-admin 2"1"14-1 ?)rus mail s)stem Badministration toolD ii c)rus21-clients 2"1"14-1 ?)rus mail s)stem Btest clientsD ii c)rus21-common 2"1"14-1 ?)rus mail s)stem Bcommon #ilesD pn c)rus21-de% 3none5 Bno description a%aila&leD ii c)rus21-doc 2"1"14-1 ?)rus mail s)stem Bdocumentation #ilesD un c)rus21-docs 3none5 Bno description a%aila&leD ii c)rus21-imapd 2"1"14-1 ?)rus mail s)stem B-+,; supportD pn c)rus21-murder 3none5 Bno description a%aila&leD ii c)rus21-pop!d 2"1"14-1 ?)rus mail s)stem B;1;! supportD un c)rus22-common 3none5 Bno description a%aila&leD ii li&authen-sasl-c)rus-per 0"0<-1 ;erl extension #or ?)rus ','. li&rar) un li&c)rus-imap-perl 3none5 Bno description a%aila&leD ii li&c)rus-imap-perl21 2"1"14-1 -nter#ace to ?)rus imap client imclient li&rar)

installation de sasl :
c)clope:[# dpEg -l 7OsaslO7 DesiredG@nEnown/-nstall/0emo%e/;urge/8old \ 'tatusG$ot/-nstalled/?on#ig-#iles/@npacEed/*ailed-con#ig/8al#-installed \/ /rr]GBnoneD/8old/0einst-reTuired/:G&oth-pro&lems B'tatus=/rr: uppercaseG&adD \\/ $ame Fersion Description 222-GGGGGGGGGGGGGGGGGGGGGGGG-GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG pn gsasl 3none5 Bno description a%aila&leD ii li&authen-sasl-c)rus-per 0"0<-1 ;erl extension #or ?)rus ','. li&rar) ii li&authen-sasl-perl 2"0 -1 ,uthen::','. - ','. ,uthentication #rameworE pn li&gsasl1 3none5 Bno description a%aila&leD pn li&gsasl1-de% 3none5 Bno description a%aila&leD un li&sasl-&in 3none5 Bno description a%aila&leD pn li&sasl-de% 3none5 Bno description a%aila&leD pn li&sasl-digestmd -des 3none5 Bno description a%aila&leD pn li&sasl-digestmd -plain 3none5 Bno description a%aila&leD pn li&sasl-gssapi-heimdal 3none5 Bno description a%aila&leD pn li&sasl-gssapi-mit 3none5 Bno description a%aila&leD pn li&sasl-Er&4-mit 3none5 Bno description a%aila&leD un li&sasl-modules 3none5 Bno description a%aila&leD un li&sasl-modules-Er& 3none5 Bno description a%aila&leD un li&sasl-modules-nonus 3none5 Bno description a%aila&leD ii li&sasl-modules-plain 1" "2<-!" Hasic ;lugga&le ,uthentication +odules #or ','. ii li&sasl2 2"1"12-1 ,uthentication a&straction li&rar) pn li&sasl2-de% 3none5 Bno description a%aila&leD un li&sasl2-digestmd -des 3none5 Bno description a%aila&leD pn li&sasl2-digestmd -plain 3none5 Bno description a%aila&leD pn li&sasl2-gssapi-mit 3none5 Bno description a%aila&leD pn li&sasl2-Er&4-mit 3none5 Bno description a%aila&leD ii li&sasl2-modules 2"1"12-1 ;lugga&le ,uthentication +odules #or ','. ii li&sasl2-modules-gssapi- 2"1"12-1 ;lugga&le ,uthentication +odules #or ','. ii li&sasl2-modules-Eer&ero 2"1"12-1 ;lugga&le ,uthentication +odules #or ','. pn li&sasl2-modules-plain 3none5 Bno description a%aila&leD ii li&sasl< 1" "2<-!" ,uthentication a&straction li&rar)" ii sasl-&in 1" "2<-!" ;rograms #or manipulating the ','. users data&ase ii sasl2-&in 2"1"12-1 ;rograms #or manupulating the ','. users data&ase

Pa e 46 sur 56

7!alis! % partir des pa es du site# du 5 mars 8669 par Laurent :A;//E

Le protocole IMAP4 L% encore# tous ne sont pas forc!ment n!cessaires.

Christian CALECA http://christian.caleca.free.fr/imap/

2!rifications saslaut>%
Le pa"ueta e sasl8?$in contient les outils n!cessaires pour !rer l(authentification sasl :
c)clope:[# dpEg -. sasl2-&in /" /usr /usr/share /usr/share/man /usr/share/man/man8 /usr/share/man/man8/sasld&listusers2"8"gA /usr/share/man/man8/saslpasswd2"8"gA /usr/share/man/man8/sasld&con%erter2"8"gA /usr/share/man/man8/sasltestsuite"8"gA /usr/share/man/man8/saslauthd"8"gA /usr/share/man/man8/testsaslauthd"8"gA /usr/share/doc /usr/share/doc/sasl2-&in /usr/share/doc/sasl2-&in/0/,D+/"De&ian /usr/share/doc/sasl2-&in/cop)right /usr/share/doc/sasl2-&in/changelog"gA /usr/share/doc/sasl2-&in/changelog"De&ian"gA /usr/s&in /usr/s&in/saslauthd /usr/s&in/sasltestsuite /usr/s&in/testsaslauthd /usr/s&in/sasld&listusers2 /usr/s&in/saslpasswd2 /usr/s&in/sasld&con%erter2 /etc /etc/de#ault /etc/de#ault/saslauthd /etc/init"d /etc/init"d/saslauthd

saslauthd# c(est le 4daemon4# saslpass.d8 permet de cr!er des couples utilisateur/mot de passe# sasld$listusers8 permet de lister les utilisateurs# testsaslauthd permet de tester un 4lo in4.

Le fichier /etc/default/saslauthd a son importance :


c)clope:[# cat /etc/de#ault/saslauthd # (his needs to &e uncommented &e#ore saslauthd will &e run automaticall) '(,0(G)es # # # # Pou must speci#) the authentication mechanisms )ou wish to use" (his de#aults to UpamU #or ;,+ support= &ut ma) also include UshadowU or Usasld&U= liEe this: +/?8,$-'+'GUpam shadowU

+/?8,$-'+'GUsasld&U

/*A7*^)es est primordial si vous voule, "ue le 4daemon4 soit char ! via /)s1# MECGAHI/M/ d!finit le m!canisme utilis! par saslauthd pour authentifier. Ici# nous utiliserons sasld$.

Pa e 42 sur 56

7!alis! % partir des pa es du site# du 5 mars 8669 par Laurent :A;//E

Le protocole IMAP4 C(est parti...

Christian CALECA http://christian.caleca.free.fr/imap/

3!marra e de saslaurhd :
# /etc/init"d/saslauthd restart 0estarting ','. ,uthentication Daemon: saslauthd" #

Cr!ation d(un compte :


# saslpasswd2 -c c)rus ;assword: ,gain B#or %eri#icationD: #

Hous avons cr!! un utilisateur nomm! c)rus# avec un mot de passe : pass.d dans l(e'emple. :ien entendu# essa)e, de choisir "uel"ue chose de plus ori inal. Cet utilisateur est destin! % devenir par la suite l(administrateur de C)rus.

1!rifications :
# sasld&listusers2 c)rus4c)clope: user;assword #

l(utilisateur c)rus est $ien cr!! @c)clope est le nom de la machine de testA.
# testsaslauthd -u c)rus -p passwd 0: 1> U'uccess"U c)clope:/etc/pam"d#

saslauthd sem$le fonctionner correctement. Hous pouvons passer % c)rus.

!rus
Le pa"ueta e c)rus82?admin contient :
# dpEg -. c)rus21-admin /" /usr /usr/share /usr/share/linda /usr/share/linda/o%errides /usr/share/linda/o%errides/c)rus21-admin /usr/share/lintian /usr/share/lintian/o%errides /usr/share/lintian/o%errides/c)rus21-admin /usr/share/icons /usr/share/icons/c)radm"xpm /usr/share/icons/mini /usr/share/icons/mini/c)radm"xpm /usr/share/doc /usr/share/doc/c)rus21-admin /usr/share/doc/c)rus21-admin/0/,D+/"De&ian /usr/share/doc/c)rus21-admin/cop)right /usr/share/doc/c)rus21-admin/changelog"gA /usr/share/doc/c)rus21-admin/changelog"De&ian"gA /usr/share/doc/c)rus21-admin/changelog"html"gA /usr/share/man /usr/share/man/man1 /usr/share/man/man1/c)radm"1"gA /usr/share/man/man1/sie%eshell"1"gA /usr/&in /usr/&in/c)radm

Pa e 48 sur 56

7!alis! % partir des pa es du site# du 5 mars 8669 par Laurent :A;//E

Le protocole IMAP4
/usr/&in/sie%eshell /usr/li& /usr/li&/menu /usr/li&/menu/c)rus21-admin

Christian CALECA http://christian.caleca.free.fr/imap/

c)radm est l(outil "ui permettra de !rer les comptes imap. Le pa"ueta e c)rus82?imapd contient :
c)clope:/etc/pam"d# dpEg -. c)rus21-imapd /" /usr /usr/s&in /usr/s&in/sTuatter /usr/li& /usr/li&/c)rus /usr/li&/c)rus/&in /usr/li&/c)rus/&in/imapd /usr/share /usr/share/man /usr/share/man/man8 /usr/share/man/man8/sTuatter"8"gA /usr/share/man/man8/idled"8"gA /usr/share/man/man8/imapd"8"gA /usr/share/doc /etc /etc/pam"d /etc/pam"d/imap /usr/share/doc/c)rus21-imapd

le 4daemon4 imapd# "ui sera en fait pilot! % travers le 4super daemon4 @inetd ou 'inetdA# un fichier de confi uration pour pam. Il ne nous int!resse pas pour l(instant.

Duant au pa"ueta e c)rus82?common :


c)clope:/etc/pam"d# dpEg -. c)rus21-common /" /etc /etc/pam"d /etc/pam"d/lmtp /etc/pam"d/sie%e /etc/de#ault /etc/de#ault/c)rus21 /etc/logchecE /etc/logchecE/ignore"d"ser%er /etc/logchecE/ignore"d"ser%er/c)rus21 /etc/logchecE/ignore"d"worEstation /etc/logchecE/ignore"d"worEstation/c)rus21 /etc/c)rus"con# /etc/imapd"con# /etc/init"d /etc/init"d/c)rus21 /etc/cron"dail) /etc/cron"dail)/c)rus21-common /usr /usr/s&in /usr/s&in/c)rdeli%er /usr/s&in/c)rdump /usr/s&in/c)rmaster /usr/s&in/c)rTuota /usr/s&in/c)rreconstruct /usr/s&in/c)rus-maEedirs /usr/s&in/ctlRc)rusd& /usr/s&in/ctlRdeli%er /usr/s&in/ctlRm&oxlist /usr/s&in/c%tRc)rusd& /usr/s&in/chERc)rus /usr/s&in/ipurge /usr/s&in/tlsRprune

Pa e 4= sur 56

7!alis! % partir des pa es du site# du 5 mars 8669 par Laurent :A;//E

Le protocole IMAP4
/usr/s&in/m&path /usr/li& /usr/li&/c)rus /usr/li&/c)rus/upgrade /usr/li&/c)rus/upgrade/con%ert-sie%e"pl /usr/li&/c)rus/upgrade/dohash /usr/li&/c)rus/upgrade/rehash /usr/li&/c)rus/upgrade/undohash /usr/li&/c)rus/upgrade/translatesie%e /usr/li&/c)rus/upgrade/upgradesie%e /usr/li&/c)rus/c)rus-d&-t)pes"txt /usr/li&/c)rus/c)rus-hardwired-con#ig"txt /usr/li&/c)rus/&in /usr/li&/c)rus/&in/lmtpd /usr/li&/c)rus/&in/timsie%ed /usr/li&/c)rus/&in/noti#)d /usr/li&/c)rus/&in/#ud /usr/li&/c)rus/get-&acEtrace"gd& /usr/share /usr/share/snmp /usr/share/snmp/mi&s /usr/share/snmp/mi&s/?P0@'-+,'(/0-+-H"txt /usr/share/linda /usr/share/linda/o%errides /usr/share/linda/o%errides/c)rus21-common /usr/share/lintian /usr/share/lintian/o%errides /usr/share/lintian/o%errides/c)rus21-common /usr/share/doc /usr/share/doc/c)rus21-common /usr/share/doc/c)rus21-common/0/,D+/"De&ian"gA /usr/share/doc/c)rus21-common/0/,D+/"De&ian"de&ug"gA /usr/share/doc/c)rus21-common/0/,D+/"De&ian"simpleinstall"gA /usr/share/doc/c)rus21-common/0/,D+/"post#ix"gA /usr/share/doc/c)rus21-common/changelog"De&ian"gA /usr/share/doc/c)rus21-common/cop)right /usr/share/doc/c)rus21-common/$/M'"De&ian"gA /usr/share/doc/c)rus21-common/changelog"gA /usr/share/doc/c)rus21-common/@;90,D/"De&ian"gA /usr/share/doc/c)rus21-common/0/,D+/"De&ian"data&ase"gA /usr/share/doc/c)rus21-common/changelog"html"gA /usr/share/man /usr/share/man/man /usr/share/man/man /c)rus"con#" "gA /usr/share/man/man /imapd"con#" "gA /usr/share/man/man8 /usr/share/man/man8/m&path"8"gA /usr/share/man/man8/timsie%ed"8"gA /usr/share/man/man8/noti#)d"8"gA /usr/share/man/man8/lmtpd"8"gA /usr/share/man/man8/ctlRc)rusd&"8"gA /usr/share/man/man8/ctlRdeli%er"8"gA /usr/share/man/man8/ctlRm&oxlist"8"gA /usr/share/man/man8/c%tRc)rusd&"8"gA /usr/share/man/man8/chERc)rus"8"gA /usr/share/man/man8/#ud"8"gA /usr/share/man/man8/ipurge"8"gA /usr/share/man/man8/c)rdeli%er"8"gA /usr/share/man/man8/c)rmaster"8"gA /usr/share/man/man8/c)rreconstruct"8"gA /usr/share/man/man8/c)rTuota"8"gA /usr/share/man/man8/c)rdump"8"gA /usr/share/man/man8/c)rus-maEedirs"8"gA /usr/share/man/man8/tlsRprune"8"gA /%ar /%ar/li& /%ar/li&/c)rus /%ar/spool /%ar/spool/c)rus /%ar/spool/sie%e /%ar/run /%ar/run/c)rus

Christian CALECA http://christian.caleca.free.fr/imap/

Pa e 44 sur 56

7!alis! % partir des pa es du site# du 5 mars 8669 par Laurent :A;//E

Le protocole IMAP4
/%ar/run/c)rus/socEet /etc/sie%e /usr/li&/c)rus/&in/Tuota /usr/li&/c)rus/&in/reconstruct

Christian CALECA http://christian.caleca.free.fr/imap/

les fichiers de confi uration de c)rus @/etc/c)rus.confA et de imapd @/etc/imapd.confA# le script pour initialiser c)rus @/etc/init.d/c)rus82A

Il n() a % priori rien % modifier dans la confi uration par d!faut de c)rus. Pour imapd# Ka va Ntre diff!rent. Le man imapd.conf vous donnera tous les d!tails# pour l(instant# nous devons surtout prNter attention % trois li nes :
admins: c)rus

Il faut indi"uer "ui sera le @ou lesA administrateur@sA de c)rus imapd. Autant choisir tout de suite le compte "ue nous avons cr!! tout % l(heure# parce "ue la seconde li ne "ui nous int!resse :
saslRpwchecERmethod: saslauthd

indi"ue la m!thode d(authentification. Ce sera o$li atoirement /A/L# mais /A/L peut utiliser divers mo)ens# nous choisissons saslauthd# puis"ue nous l(avons test!e avec succs. Enfin :
ser%ername: c)clope"maison"mrs

servername doit indi"uer le nom compltement "ualifi! de l(hMte de c)rus. :ien. C)radm devrait fonctionner.

7!initialisons c)rus :
# /etc/init"d/c)rus21 restart 'topping ?)rus -+,;d: c)rmaster" Maiting #or complete shutdown""" 'tarting ?)rus -+,;d: c)rmaster"

d!marrons c)radm avec l(utilisateur c)rus @d!clar! comme administrateurA :


c)clope:/etc/pam"d# c)radm --user c)rus localhost -+,; ;assword: c)clope5

:en voil%... Geureusement# il ) a une aide en li ne :


c)clope5 help authenticate= login= auth chdir= cd createmail&ox= create= cm deleteaclmail&ox= deleteacl= dam deletemail&ox= delete= dm disconnect= disc exit= Tuit help= ] in#o listacl= lam= listaclmail&ox listmail&ox= lm listTuota= lT listTuotaroot= lTr= lTm authenticate to ser%er change current director) create mail&ox remo%e ,?.s #rom mail&ox delete mail&ox disconnect #rom current ser%er exit c)radm show commands displa) mail&ox/ser%er metadata list ,?.s on mail&ox list mail&oxes list Tuotas on speci#ied root show Tuota roots and Tuotas #or mail&ox

Pa e 49 sur 56

7!alis! % partir des pa es du site# du 5 mars 8669 par Laurent :A;//E

Le protocole IMAP4
reconstruct renamemail&ox= rename= renm ser%er= ser%ername= connect setaclmail&ox= sam= setacl setin#o setTuota= sT %ersion= %er c)clope5

Christian CALECA http://christian.caleca.free.fr/imap/


reconstruct mail&ox Bi# supportedD rename Band optionall) relocateD mail&ox show current ser%er or connect to ser%er set ,?.s on mail&ox set ser%er metadata set Tuota on mail&ox or resource displa) %ersion in#o o# current ser%er

commenKons par un 4listmail$o'4 :


c)rus5 listmmail&ox c)rus5

C(est vide. C(est normal# nous n(avons encore rien fait.


c)clope5 createmail&ox user"essai0 c)clope5 lm user"essai0 BS8as$o?hildrenD c)clope5

en voil% un de fait. 1o)ons les droits :


c)clope5 listaclmail&ox user"essai0 essai0 lrswipcda c)clope5

seul essai6 a tous les droits sur cette $oOte au' lettres. 3(ailleurs :
c)clope5 deletemail&ox user"essai0 deletemail&ox: ;ermission denied c)clope5

mNme l(administrateur c)rus ne peut d!truire cette $oOte. 3u moins# pas si facilement. Faisons un petit tour sur le serveur# pour voir. L(installation de c)rus a construit toute une ar$orescence dans /var/spool/c)rus. Le vous passe les d!tails# pour aller directement dans :
c)clope:/%ar/spool/c)rus/mail/e/user/essai0# ls c)rus"cache c)rus"header c)rus"index c)clope:/%ar/spool/c)rus/mail/e/user/essai0#

Comme c(est peut?Ntre pas clair# d!taillons un peu.

Lus"u(% /var/spool/c)rus/mail/e/ c(est l(installation de c)rus "ui a cr!! l(ar$orescence. 1ous trouvere, un r!pertoire par lettre de l(alpha$et# ils sont tous vides# sauf le 4e4. 3ans le 4e4# user/essai6 a $ien entendu !t! cr!! lors"ue l(on a cr!! la :AL avec c)radm. Les trois fichiers inclus ! alement.

3u)avons-nous $ait ?

Hous avons mis en place un service d(authentification# $as! sur /A/L# nous avons cr!! un compte d(administration pour IMAP : c)rus# 7!alis! % partir des pa es du site# du 5 mars 8669 par Laurent :A;//E

Pa e 45 sur 56

Le protocole IMAP4

Christian CALECA http://christian.caleca.free.fr/imap/

nous avons cr!! une :AL de test: essai6Qc)rus.maison.mrs.

3ue reste-t-il $aire ?

Hous devons e'pli"uer % Postfi' "ue pour la remise locale# il doit utiliser c)rus# sinon# ce sera difficile d(envo)er des messa es % notre test. Avec u.?imap# c(!tait simple# la confi uration de Postfi' par d!faut fonctionne# elle utilise procmail pour la livraison locale. Ici# procmail ne fonctionnera pas# il faudra utiliser % la place l(a ent propos! par c)rus. Pour l(instant# il n() a pas rand chose % faire# Postfi' connaOt l(e'istence de c)rus par d!faut. Il suffit de modifier comme suit dans /etc/postfi'/main.cf :
mail&oxRtransport G c)rus #mail&oxRcommand G procmail -a U^/:(/$'-1$U

/p!cifier le transport pour mail$o' et supprimer l(appel de la commande procmail.

Le fichier master.cf de Postfi' doit contenir une information concernant l(utilisation de c)rus. Cette information est parfois disponi$le et parfois non# suivant la distri$ution. Il faut s(assurer "ue master.cf contient des li nes de ce enre :
# (he ?)rus deli%er program has changed incompati&l)= multiple times" c)rus unix n n pipe #lagsG0 userGc)rus arg%G/usr/s&in/c)rdeli%er -e -m U^VextensionWU ^VuserW # ?)rus 2"1" B,mos 9ouauxD #c)rus unix n n pipe # userGc)rus arg%G/c)rus/&in/deli%er -e -r ^VsenderW -m ^VextensionW ^VuserW

Comme vous pouve, le constater# l(a ent de livraison de c)rus peut chan er de nom et de faKon de fonctionner# suivant la version. Il faut donc faire $ien attention % ce d!tail pour "ue la livraison locale fonctionne correctement avec c)rus. Faites le $on choi' en fonction de la version "ue vous utilise,. A titre d(e'emple# voici le master.cf de la confi uration utilis!e pour r!di er cet article :
# GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG # ser%ice t)pe pri%ate unpri% chroot waEeup maxproc command 2 args # B)esD B)esD B)esD Bne%erD B 0D # GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG smtp inet n ) smtpd #628 inet n n TmTpd picEup #i#o n ) 60 1 picEup cleanup unix n ) 0 cleanup Tmgr #i#o n n !00 1 Tmgr #Tmgr #i#o n n !00 1 nTmgr rewrite unix ) tri%ial-rewrite &ounce unix ) 0 &ounce de#er unix ) 0 &ounce #lush unix n ) 1000] 0 #lush smtp unix ) smtp showT unix n ) showT error unix ) error local unix n n local %irtual unix n ) %irtual lmtp unix ) lmtp # # -nter#aces to non-;ost#ix so#tware" He sure to examine the manual # pages o# the non-;ost#ix so#tware to #ind out what options it wants" # (he ?)rus deli%er program has changed incompati&l)" # c)rus unix n n pipe #lagsG0 userGc)rus arg%G/usr/s&in/c)rdeli%er -e -m ^VextensionW ^VuserW uucp unix n n pipe #lagsG*Thu userGuucp arg%Guux -r -n -A -a^sender - ^nexthop_rmail B^recipientD

Pa e 4B sur 56

7!alis! % partir des pa es du site# du 5 mars 8669 par Laurent :A;//E

Le protocole IMAP4

Christian CALECA http://christian.caleca.free.fr/imap/

i#mail unix n n pipe #lagsG* userG#tn arg%G/usr/li&/i#mail/i#mail -r ^nexthop B^recipientD &smtp unix n n pipe #lagsG*T" userG&smtp arg%G/usr/li&/&smtp/&smtp -d -t^nexthop -#^sender ^recipient scalemail-&acEend unix n n 2 pipe #lagsG0 userGscalemail arg%G/usr/li&/scalemail/&in/scalemail-store ^VnexthopW ^VextensionW # onl) used &) post#ix-tls #smtps inet n n smtpd -o smtpdRtlsRwrappermodeG)es -o #smtpdRsaslRauthRena&leG)es # 8< inet n n smtpd -o smtpdRen#orceRtlsG)es -o smtpdRsaslRauthRena&leGno prox)map unix n trace unix 0 &ounce %eri#) unix 1 %eri#)

^VuserW

prox)map

Il s(a it ici de la version 8.2.2B de c)rus et de la version 8.2.9 de Postfi'

Enfin# il faut cr!er un compte sasl pour essai6# sinon il aura du mal % lire sa :AL :
# saslpasswd2 -c essai0 ;assword: ,gain B#or %eri#icationD: # sasld&listusers2 essai04c)clope: user;assword c)rus4c)clope: user;assword # testsaslauthd -u essai0 -p essai0 0: 1> U'uccess"U c)clope:/%ar/spool/c)rus/mail/e/user/essai0#

4ests

&n envoie un messa e % essai6 :


# mail essai04c)clope"maison"mrs 'u&6ect: hello world coucou " ?c: #

&n v!rifie "ue Postfi' a fait son travail en re ardant /var/lo /mail.info :
$o% 1 $o% 1 $o% 1 1<:4 :40 c)clope post#ix/picEupJ10<2K: ,,9H1*9 : uidG0 #romG3root5 1<:4 :40 c)clope post#ix/cleanupJ124 K: ,,9H1*9 : message-idG3200!111 164 40",,9H1*9 4c)clope"maison"mrs5 1<:4 :40 c)clope post#ix/TmgrJ491K: ,,9H1*9 : #romG3root4c)clope"maison"mrs5= siAeG!1 = nrcptG1 BTueue

acti%eD $o% 1 1<:4 :41 c)clope post#ix/pipeJ1249K: ,,9H1*9 : toG3essai04c)clope"maison"mrs5= rela)Gc)rus= dela)G1= statusGsent Bc)clope"maison"mrsD

C(est pass!.

Allons voir dans /var/spool/c)rus/mail/e/user/essai6 :


c)clope:/%ar/spool/c)rus/mail/e/user/essai0# ls -l total 16 -rw------1 c)rus mail << $o% 1 1<:4 1" -rw------1 c)rus mail 84 $o% 1 1<:4 c)rus"cache -rw------1 c)rus mail 1 2 $o% 1 16:2< c)rus"header

Pa e 4C sur 56

7!alis! % partir des pa es du site# du 5 mars 8669 par Laurent :A;//E

Le protocole IMAP4
-rw------1 c)rus mail 128 $o% 1 c)clope:/%ar/spool/c)rus/mail/e/user/essai0# 1<:4

Christian CALECA http://christian.caleca.free.fr/imap/


c)rus"index

Il ) a un nouveau fichier. serait?ce le messa e <


# cat 1" 0eturn-;ath: 3c)rus4c)clope"maison"mrs5 0ecei%ed: #rom c)clope"maison"mrs BJunix socEetKD &) c)clope"maison"mrs B?)rus %2"1"14--;%6-De&ian-2"1"14-1D with .+(;C 'at= 1 $o% 200! 1<:4 :41 20100 :-'ie%e: ?+@ 'ie%e 2"2 0eturn-;ath: 3root4c)clope"maison"mrs5 0ecei%ed: &) c)clope"maison"mrs B;ost#ix= #rom userid 0D id ,,9H1*9 C 'at= 1 $o% 200! 1<:4 :40 20100 B?/(D (o: essai04c)clope"maison"mrs 'u&6ect: hello world +essage--d: 3200!111 164 40",,9H1*9 4c)clope"maison"mrs5 Date: 'at= 1 $o% 200! 1<:4 :40 20100 B?/(D *rom: root4c)clope"maison"mrs BrootD coucou #

&ui# c(est le messa e. Lus"ue l%# tout fonctionne.

essai6 pourra?t?il lire ce messa e par IMAP <


# telnet c)clope"maison"mrs 14! (r)ing 192"168"0"16""" ?onnected to c)clope"maison"mrs" /scape character is 7`K7" O 1> c)clope"maison"mrs ?)rus -+,;4 %2"1"14--;%6-De&ian-2"1"14-1 ser%er read) 001 login essai0 essai0 001 1> @ser logged in # #ien 2 d3 l'identi&ication &onctionne

002 select -$H1: O *.,9' BS,nswered S*lagged SDra#t SDeleted S'eenD O 1> J;/0+,$/$(*.,9' BS,nswered S*lagged SDra#t SDeleted S'een SODK O 1 /:-'(' O 1 0/?/$( O 1> J@$'//$ 1K O 1> J@-DF,.-D-(P 10689100< K O 1> J@-D$/:( 2K 002 1> J0/,D-M0-(/K ?ompleted # #on signe, il existe 1ien un message dans la #"L 00! #etch 1 H1DPJ(/:(K O 1 */(?8 B*.,9' BS0ecent S'eenD H1DPJ(/:(K V10W co&co& D 00! 1> ?ompleted # pas la peine de vri&ier dans le dtail de l'en4t5te, c'est 1ien s6r le 1on message 004 logout O HP/ .191@( recei%ed 004 1> ?ompleted ?onnection closed &) #oreign host" c)clope:/%ar/spool/c)rus/mail/e/user/essai0#

Et voil% le travail. Hous savons maintenant confi urer :

saslauth pour l(authentification des utilisateurs de la messa erie#

Pa e 4E sur 56

7!alis! % partir des pa es du site# du 5 mars 8669 par Laurent :A;//E

Le protocole IMAP4 c)rus pour "u(il utilise les services de saslauth# Postfi' pour "u(il utilise c)rus comme transport local# c)rus pour cr!er des $oOtes au' lettres avec c)radm# sasl pour cr!er des authentifications avec saslpass.d8.

Christian CALECA http://christian.caleca.free.fr/imap/

et nous savons utiliser :


?uste un %tail222
Hous avons vu en cr!ant une $oOte au' lettres avec c)radm "ue le point @.A !tait utilis! comme s!parateur hi!rarchi"ue dans l(ar$orescence des dossiers... Comment faire alors# si l(on souhaite cr!er des utilisateurs "ui ont un point dans le nom < &n ne peut pas. /auf si l(on a+oute dans imapd.conf la li ne :
unixhierarch)sep: )es

3ans ce cas# le s!parateur devient un 4slash4 @/A et le point devient utilisa$le dans les noms. Hous devrons !crire alors :
c)clope5 createmail&ox user/essai0 c)clope5 lm user/essai0 BS8as$o?hildrenD c)clope5

1ous pr!f!rere, pro$a$lement utiliser cette possi$ilit!.

Pa e 96 sur 56

7!alis! % partir des pa es du site# du 5 mars 8669 par Laurent :A;//E

Le protocole IMAP4

Christian CALECA http://christian.caleca.free.fr/imap/

Plus loin avec !rus


C)rus sait faire plus de choses "u(un simple accs IMAP % une $oOte au' lettres. Hous savons d!+% "ue C)rus :

utilise le format 4Maildir4# plus souple et plus sWr "ue 4Mail$o'4# peut utiliser divers mo)ens pour l(authentification des utilisateurs# dont /A/L# ce "ui !vite de devoir cr!er des comptes d(utilisateurs >HI0 +uste pour une $oOte au' lettres# permet de !rer une ar$orescence de r!pertoires multi niveau'# permet# depuis les versions 8.'# de !rer des noms d(utilisateurs contenant des points 4.4 en remplaKant le s!parateur de hi!rarchie d(ori ine @le point# +ustementA par le s!parateur standard d(>HI0 @le 4slash4 /A. placer des filtres pour re+eter des messa es consid!r!s comme ind!sira$les# permettre l(accs au' :AL des utilisateurs de faKon trs souple# lors"u(il ) a plusieurs serveurs dans le mNme domaine. 3ans un tel cas# il doit Ntre possi$le d(acc!der depuis n(importe "uel serveur % une :AL situ!e sur n(importe "uel autre serveur. Le n(ai pas test! cette possi$ilit!. L(ai $eau avoir des mo)ens# il ne faut tout de mNme pas e'a !rer.

Hous ne l(avons pas vu et ne le verrons pas ici# mais c)rus sait aussi :

C)rus est aussi capa$le de proposer une structure permettant d(e'poser des roupes usenet @nntpA. Enfin# et Ka# nous allons le tester# C)rus sait proposer des dossiers parta !s.

-es %ossiers partags


>n dossier parta ! peut rendre $ien des services dans un intranet# voire sur l(internet. Il s(a it d(un dossier en tous points compara$le % une $oOte au' lettres# % part "ue ce dossier sera au moins visi$le en lecture par l(ensem$le des usa ers du serveur. Pour "ue ce soit int!ressant# il faut "u(au moins un usa er puisse ) d!poser des messa es. Hous allons voir ce "ue l(on peut faire avec Ka.

Cr!ation d'un dossier parta !


>n dossier parta ! va apparaOtre % la racine de l(ar$orescence de C)rus. Alors "ue les dossiers 4In$o'4 des utilisateurs sont cr!!s dans c)radm avec la commande :
cm user/3nom de l7utilisateur5

un dossier parta ! sera cr!! avec la commande :


cm 3nom du dossier partagN5

Pour r!aliser cette manipulation# nous revenons % c)clope.maison.mrs# avec "uel"ues comptes d(utilisateurs d!+% cr!!s : Pa e 92 sur 56 7!alis! % partir des pa es du site# du 5 mars 8669 par Laurent :A;//E

Le protocole IMAP4
c)clope:[# c)radm --user c)rus localhost -+,; ;assword: c)clope5 cm partage c)clope5 lm -$H1: BS8as?hildrenD -$H1:/'ent BS8as$o?hildrenD -$H1:/(rash BS8as$o?hildrenD partage BS8as?hildrenD user/chris BS8as?hildrenD user/chris/Dra#ts BS8as$o?hildrenD user/chris/'ent BS8as$o?hildrenD user/chris/(emplates BS8as$o?hildrenD user/chris/(rash BS8as$o?hildrenD user/testimap BS8as?hildrenD user/testimap/Dra#ts BS8as$o?hildrenD user/testimap/'ent BS8as$o?hildrenD user/testimap/(emplates BS8as$o?hildrenD user/testimap/(rash BS8as$o?hildrenD c)clope5

Christian CALECA http://christian.caleca.free.fr/imap/

Hous retrouvons :

testimap# le compte utilis! par les tests pr!c!dents# chris# un nouveau compte d(utilisateur# parta e# le r!pertoire parta ! "ue l(on vient de cr!er# IH:&0# "ui est le compte de celui "ui manipule c)radm# % savoir dans notre cas# l(admi? nistrateur de c)rus.

/i# dans *hunder$ird# nous cr!ons ces trois comptes et "ue nous souscrivons % tous les dossiers accessi$les pour cha"ue compte# nous o$tenons ceci :

Pa e 98 sur 56

7!alis! % partir des pa es du site# du 5 mars 8669 par Laurent :A;//E

Le protocole IMAP4

Christian CALECA http://christian.caleca.free.fr/imap/

Le r!pertoire 4parta e4 est accessi$le depuis tous les comptes# et se situe au mNme niveau "ue les 4In$o'4. Mais "ue pouvons?nous faire avec ce dossier parta ! < 1o)ons les droits avec c)radm :
c)clope5 lam partage an)one lrs c)clope5

Il faudrait peut?Ntre re arder de plus prs la nomenclature des droits dans la documentation...
l r looEup read

*he user ma) see that the mail$o' e'ists. *he user ma) read the mail$o'. *he user ma) select the mail$o'# fetch data# perform searches# and cop) messa es from the mail$o'. Ueep per?user seen state. *he 4/een4 and 47ecent4 fla s are preserved for the user. *he user ma) modif) fla s and Je).ords other than 4/een4 and 43eleted4 @.hich are controlled $) other sets of ri htsA. *he user ma) insert ne. messa es into the mail$o'.

s w

seen write

insert

Pa e 9= sur 56

7!alis! % partir des pa es du site# du 5 mars 8669 par Laurent :A;//E

Le protocole IMAP4
p post

Christian CALECA http://christian.caleca.free.fr/imap/

*he user ma) send mail to the su$mission address for the mail$o'. *his ri ht differs from the 4i4 ri ht in that the deliver) s)stem inserts trace information into su$mitted messa es. *he user ma) create ne. su$?mail$o'es of the mail$o'# or delete or rename the current mail$o'. *he user ma) store the 43eleted4 fla # and perform e'pun es. *he user ma) chan e the ACL on the mail$o'.

create

, a

delete administer

3onc# dans le cas pr!sent# tout le monde @an)oneA peut :


l : voir "ue ce r!pertoire e'iste# r : acc!der au contenu en lecture et copier les messa es dans d(autres dossiers# s : les fla s 4seen4 et 4recent4 sont pr!serv!s pour l(utilisateur.

3onc# personne ne peut !crire dedans < Hon. Ce n(est pas r!ellement une $oOte au' lettres# on ne peut donc ) poster un messa e. Comme personne n(a le droit de copier un messa e dedans# Ka veut dire "ue Ka ne sert % rien. Hous allons maintenant donner % l(utilisateur C)rus tous les droits sur ce dossier :
c)clope5 lam partage an)one lrs c)clope5 sam partage c)rus lrswipcda c)clope5 lam partage c)rus lrswipcda an)one lrs c)clope5

Maintenant "ue l(utilisateur c)rus a tous les droits sur ce r!pertoire# il va pouvoir copier des messa es dedans. Hous envo)ons un messa e % c)rusQc)clope.maison.mrs :

Pa e 94 sur 56

7!alis! % partir des pa es du site# du 5 mars 8669 par Laurent :A;//E

Le protocole IMAP4

Christian CALECA http://christian.caleca.free.fr/imap/

il le reKoit :

Pa e 99 sur 56

7!alis! % partir des pa es du site# du 5 mars 8669 par Laurent :A;//E

Le protocole IMAP4

Christian CALECA http://christian.caleca.free.fr/imap/

Il le d!place alors dans parta e par un 4 lisser?d!poser4 :

Pa e 95 sur 56

7!alis! % partir des pa es du site# du 5 mars 8669 par Laurent :A;//E

Le protocole IMAP4

Christian CALECA http://christian.caleca.free.fr/imap/

Et tout le monde pourra en profiter :

Pa e 9B sur 56

7!alis! % partir des pa es du site# du 5 mars 8669 par Laurent :A;//E

Le protocole IMAP4

Christian CALECA http://christian.caleca.free.fr/imap/

Mieu'# ce n(est pas parce "ue testimap l(aura lu# "u(il apparaOtra comme lu pour tous les autres :

Pa e 9C sur 56

7!alis! % partir des pa es du site# du 5 mars 8669 par Laurent :A;//E

Le protocole IMAP4

Christian CALECA http://christian.caleca.free.fr/imap/

:ien entendu# testimap comme chris pourront copier @et non d!placerA ce messa e ailleurs# mais ne pourront pas le d!truire. /eul c)rus le peut. C)rus peut ! alement# puis"u(il a tous les droits# cr!er des sous dossiers# les d!truire# supprimer le messa e "u(il ) a mis# ou le d!placer dans un sous? dossier... Et tous ceu' "ui auront souscrit au' modifications de structure la verront :

Pa e 9E sur 56

7!alis! % partir des pa es du site# du 5 mars 8669 par Laurent :A;//E

Le protocole IMAP4

Christian CALECA http://christian.caleca.free.fr/imap/

Le vous laisse ima iner les multiples possi$ilit!s de ces dossiers# en +ouant sur les droits en fonction des utilisateurs. Cette techni"ue peut Ntre trs utile pour faire circuler de l(information entre plusieurs personnes.

onclusions
Hous n(avons pas vu tout ce "u(il serait possi$le de voir# mais vous l(ave, compris# IMAP est incompara$lement plus puissant "ue P&P=# int!ressant surtout pour :

ceu' "ui lisent leur messa erie depuis plusieurs machines# ceu' "ui ont une conne'ion plutMt lente.

Il est n!cessaire de chan er un peu ses ha$itudes pour e'ploiter au mieu' ce protocole# et de choisir un outil de messa erie "ui re $ien IMAP @&utlooJ E'press n(en est pas unA. 3e nom$reu' fournisseurs de services proposent d!sormais ce mo)en d(accs % la messa erie. Par e'emple : Free# laposte.net# les sites h!$er !s par &1G# et pro$a$lement $eaucoup d(autres# mais tou+ours pas -anadoo# % l(heure oP ce chapitre est r!di !.

Pa e 56 sur 56

7!alis! % partir des pa es du site# du 5 mars 8669 par Laurent :A;//E