ИМАП

С Википедије, слободне енциклопедије

IMAP (engl. Internet Message Access Protocol) је мали протокол за пријем електронске поште од сервера до локалног клијента. Користи ТЦП прикључак 143. Последња верзија ИМАП4рев1 дефинисана је документом RFC 3501. У експерименталној фази је нова надоградња документом RFC 5738, која обухвата подршку употребе УТФ-8 интернационлних симбола у корисничким именима, адресама и заглављима порука.

Акције над порукама[уреди | уреди извор]

Са ИМАП протоколом могуће је реализовати следеће акције[1]:

  • проверавање нових порука
  • трајно брисање порука са сервера
  • креирање и брисање поштанских сандучића
  • подешавање заставица за стање поруке (непрочитана, прочитана, хитна, одговорена, нова, обрисана и статус формирања поруке)
  • читање атрибута порука (величина, структура, заглавље и тело поруке)

Принцип рада[уреди | уреди извор]

Принцип примопредаје порука са сервера на клијента обавља се слично као и код других протокола: клијент и сервер у првом тренутку успостављају комуникацију и размењују „поздраве“. Затим клијент шаље инструкције (команде) и податке на сервер. Сервер обрађује податке, извршава захтеване команде и шаље одговор клијенту. После размене података, канал за комуникацију се затвара. Сва комуникација између клијента и сервера врши се преко стрингова (ниски), односно низа бајтова одређене дужине. Свака нова команда коју шаље клијент започиње новом илинијом, а на самом почетку линије налази се јединствена ознака за идентификацију команде (нпр. А0001, А0002 итд.). Једна команда може да буде распоређена у више линија. Прилком обраде команди, ако сервер констатује грешку, као одговор на команду ће стајати реч „БАД“ са идентификатором линије у којој је пронашао грешку. Ако се инструкција изврши коректно, шаље се садржај одговор, а у колико сервер из било ког разлога није у стању да изврши команду, он одговара са НО уз идентификатор команде коју није извршио.[2]

ИМАП и ПОП3[уреди | уреди извор]

ИМАП I ПОП3 су веома слични и готово једини отворени протоколи који омогућавају пријем порука код већине апликација клијената, тако да се ИМАП, по својим карактеристикама једино може упоређивати са ПОП3 протоколом.

ПОП3 протокол подразумева да је само један клијент повезан са поштанским сандучетом. Насупрот томе, ИМАП протокол дозвољава истовремено повезивање више клијената на исто сандуче истовремено, односно дозвољава да се истом сандучету на серверу приступа са више од једне локације.

Осим тога, протокол ПОП3 замишљен је тако да корисник одмах прима поруке у целости: заглавље и тело поруке, са свим придруженим датотекама, те клијент нема могућност да у току примања поруке одлучи да исту не прими до краја, нити може да спречи њен пријем. При пријему корисник сам одлучује када ће неку поруку сматрати прочитаном. Ова карактеристика код неких апликација за рад са порукама на клијенту узрокује грешку, која се састоји у томе да клијент неконтролисано, у бескрајном процесу, настави поново да прима поруке које је раније већ примио. Добра страна овог протокола је што омогућава да када једном прими поруке, рад настави локално, без потребе за одражавањем везе са сервером, а мана је да се поруке на серверу после одређног времена обично бришу, тако да клијент располаже само са својом локалном копијом порука.

За разлику од ПОП3, протокол ИМАП подаразумева чување и рад са порукама на серверу, мада истовремено могу да се чувају и локалне копије код клијента. Осим тога, поступак пријема се састоји у томе да клијент прво прима само заглавља порука, док је истовремено омогућена претрага по кључним речима целог садрзаја порука на серверу, тако да корисник за сваку поруку појединачно може да одлучи да ли жели да је прими у целости или жели да је обрише, пре него што се она у целости стигне до клијента, што је веома погодно у случају да се ради о нежељеним порукама. Негативна страна овог протокола је што захтева да корисник има отворену везу са сервером, све док се не заврши преглед и/или пријем свих порука, односно докле год је клијент активан.[3]

Историја[уреди | уреди извор]

ИМАП протокол је развијен на Стенфордовом универзитету 1986. године. [4] Његов аутор је Марк Криспин (енгл. Mark Crispin). Међутим, овакав протокол је тада радио само на одређеним Xероx Лисп машинама и ТОПС-20 оперативном систему. У каснијим фазама настаје ИМАП2 са могућношћу примања повратне информације, а затим настаје ИМАП2битс са МИМЕ екстензијама. Почетком 90-тих о овом протоколу се брине група ИЕТФ, која развија ИМАП4. У првом тренутку верија 4 је имала извесних грешака, које су отклоњене у последњој ревизијии ИМАП4реф1 (1996), при чему постоји компатибиност са свим претходним верзијама. Ова последња верзија омогућава различите облике енкрипције (шифровање) порука, укључујући и протокол безбедног преноса ССЛ.[1]

ИМАП команде [5][уреди | уреди извор]

ИМАП је флексибилан протокол, који ради са различитим командама:

Команде доступне у било ком стању:

  • ЦАПАБИЛИТY — клијент тражи информацију о могућностима сервера, као нпр. дозвољени механизми аутентификације
  • НООП — празна команда, користи се да се не прекине веза када истекне време (тајм аут) или за периодично подстицање примања нових порука или актуализацију статуса постојећих порука.
  • ЛОГОУТ — одјављивање клијента

Команде доступне у неауторизованом стању:

  • СТАРТТЛС — проширење обичног протокола за комуникацију које омогућава шифровану ТЦЛ везу, уместо посебних портова за шифровање комуникација
  • ЛОГИН — пријављивање клијента на север после успостављања везе. Аргумент садржи име налога и шифру у свом основном облику, без шифровања.
  • АУТХЕНТИЦАТЕ пријављивање уз помоћ одређеног механизма шифровање иза којег следе корисничко име налога и шифра клијента

Команде доступне у ауторизованом стању, када је корисник већ пријављен на сервер:

  • СЕЛЕЦТ — успоставља активну фасцикле (директоријума), односно сандучета са којим ће клијент тренутно радити (нпр. ИНБОX, ОУТБОX итд.)
  • ЕXАМИНЕ — команда слична команди СЕЛЕЦТ, али је самдуче намењено само за читање
  • ЦРЕАТЕ — направити ново сандуче
  • ДЕЛЕТЕ — брисање сандучета
  • РЕНАМЕ — промена имена сандучета
  • СУБСЦРИБЕ — додаје одређено сандуче у листу активних рачуна клијената на серверу. Команда садржи само један аргумент: име сандучета корисника, при чему оно не мора да постоји пре додавања на листу.
  • УНСУБСЦРИБЕ — брише одређено сандуче са листе активних рачуна клијената на серверу
  • ЛИСТ — захтев за садржај одређеног сандучета и његових фасцикли (поддиректоријума). У колико је у питању тренутни активно сандуче шаље се празна ниска "", као аргумент цоманде
  • ЛСУБ — враћа подскуп из сета поштанских сандучића које је корисник означио као активне на серверу
  • СТАТУС — упит о тренутном стању порука у сандучету, укључујући и број непрочитаних порука, при чему могу да се захтевају следећи критеријуми:
  1. МЕССАГЕС — укупан број порука у сандучету
  2. РЕЦЕНТ — број порука са заставицом „недавна“
  3. УИДНЕXТ — јединствени идентификатор за следећу нову поруку
  4. УИДВАЛИДИТY — јединствени идентификатор сандучета
  5. УНСЕЕН — број порука који не носе заставицу „прегледано“
  • АППЕНД — додаје поруку у одређено електронско сандуче

Команде доступне у стању СЕЛЕЦТЕД:

  • ЦХЕЦК — тражи контролну тачку за тренутно одабрано сандуче.
  • ЦЛОСЕ — затвара поштанско сандуче
  • ЕXПУНГЕ — уклања из сандучета све поруке обележене као обрисане, при чему сандуче још увек није затворено.
  • СЕАРЦХ — претрага порука са одеђеним филтером
  • ФЕТЦХ — након добијања листе главне фасцикле (директоријума) са поддиректоријумима (цомандом ЛИСТ), клијент може се затражити преузимање порука које се налазе у њој
  • СТОРЕ — пошто клијент прочита поруку, може да је обележи одређеном заставицом за смештање или за брисање
  • ЦОПY — копирање поруке из одређене фасцикле
  • УИД — користи се у комбинацији са командама СЕАРЦХ, ФЕТЦХ или СТОРЕ и враћа јединствене идентификационе бројеве порука које одговарају резултатима тих команди.

Извори[уреди | уреди извор]

Види још[уреди | уреди извор]

Спољашње везе[уреди | уреди извор]