Imap itifaki jinsi ya kuhifadhi attach. POP3, IMAP na seva za SMTP ni nini? Ugumu maalum kwa itifaki ya IMAP

IMAP imekuwa ikifanya kazi kikamilifu katika Mail.Ru Mail kwa muda sasa, na niko tayari kuzungumza kuhusu matatizo tuliyokumbana nayo wakati wa kuizindua. Baadhi yao yalihusiana na upekee wa itifaki yenyewe na historia yake, mengine yalitokana na mahususi ya mwingiliano wa IMAP na hifadhi yetu. Aina tofauti ya matatizo husababishwa na aina mbalimbali za wateja wa barua pepe.

Kwa maelezo - karibu paka.

Uzinduzi wa sasa wa IMAP ni mbinu yetu ya pili kwa projectile. Mara ya mwisho tulichukua seva ya Dovecot na kujaribu kujibadilisha sisi wenyewe. Hatukufurahishwa na matokeo: haikuendana vyema na mizigo yetu na miundombinu yetu. Wakati huu tuliamua kuchukua njia tofauti na tukaandika suluhisho letu wenyewe.


Tulizindua IMAP mwezi wa Mei, lakini tuliitangaza mwezi Juni pekee. Kwa hakika, hadhira ya Mei ni wafanyikazi wetu na wale watumiaji ambao wateja wao waligundua kiotomatiki uwepo wa IMAP kwenye Barua zetu na kuunganisha akaunti mpya zilizoongezwa kwake.

Ugumu maalum kwa itifaki ya IMAP

1. Hali mbaya ya itifaki yenyewe
Toleo la kwanza la itifaki ya IMAP ilionekana mnamo 1986. KATIKA wakati huu Kiwango cha sasa cha IMAP ni toleo la 4rev1, ambalo lilisasishwa mnamo 2003. Kwa vile muda mrefu kiwango kimeongezeka kwa kiasi kikubwa: ni Toleo la sasa ina kurasa 200 hivi.

Sasa pointi nyingi zilizoelezwa katika kiwango zimepitwa na wakati - katika hali ya leo hazihitaji tena. Kwa mfano, itifaki hutoa kurejesha idadi ya mistari na jumla ya MD5 ya sehemu za barua - utendaji ambao hautumiki kwa wateja wa kisasa.

Kwa kuongeza, kuna upanuzi wa itifaki nyingi za hiari. Baadhi yao ni, kwa kweli, muhimu kwa kazi ya starehe na sanduku la barua.

Ili kushinda urithi wa kihistoria, tulilazimika kutekeleza upanuzi kadhaa. Mmoja wao ni UID+: tunaponakili au kuongeza barua, tunarudisha kitambulisho cha barua mpya iliyoonekana kwenye seva kama matokeo ya kunakili au kuongeza. Hii huturuhusu kuokoa kwenye utafutaji wa kina wa rasilimali ambao mteja alilazimika kutekeleza ili kutambua ni barua pepe gani iliongezwa.

2. Ukosefu wa muundo wa kawaida wa kufanya kazi na seva
IMAP hutoa njia nyingi za kutatua tatizo sawa na, kwa hiyo, karibu wateja wote wana muundo tofauti wa uendeshaji. Pia ni muhimu kwamba mifumo ya uendeshaji iwe tofauti kabisa na jinsi webmail au POP3 inavyofanya kazi.


Zaidi ya nusu hutoka kwa wateja walio chini Vifaa vya Apple: Sababu ni kwamba utambuzi wa kiotomatiki wa IMAP huwafanyia kazi vizuri. Outlook, kinyume chake, inafanya kazi kupitia POP3 kwa chaguo-msingi, na unahitaji kusanidi IMAP kwa mikono.

Hapa tunaweza kutofautisha aina 2 kuu: wateja wa desktop, ambao huomba habari mara moja juu ya barua zote kwenye sanduku la barua au folda, na wateja wa simu, ambayo mwanzoni huomba maelezo kuhusu ujumbe mpya pekee. Ifuatayo, tulilazimika kusoma maombi wanayofanya kusasisha hali, jinsi wanavyovuta habari kuhusu barua.

Kwa nini hii ilikuwa hatua ya lazima kwetu? Chini ya mizigo ya kawaida (kwa mfano, ikiwa seva hutumikia barua ya kampuni kampuni ndogo) swali la ukamilifu sio kali sana. Hata hivyo, kwa wingi wetu, ukamilifu huwa muhimu: kwa hivyo, tulihitaji kujifunza mifumo ya uendeshaji ya mbuga nzima ya wanyama ya wateja wa barua pepe wanaopata hifadhi.

3. Idadi ya vikao vya wakati mmoja
Kulingana na kiwango, muda wa chini wa kuisha kwa seva ni dakika 30. Kwa kuongeza, mteja mmoja anaweza kudumisha miunganisho kadhaa kwa seva mara moja (itifaki haionyeshi kiasi cha juu miunganisho inayoruhusiwa). Kwa kweli, kwa kiwango chetu, hii ina maana kwamba seva moja lazima ishughulikie kikamilifu makumi ya maelfu ya miunganisho ya wakati mmoja. Wakati wa kufanya kazi katika hali ya kusawazisha, idadi kama hiyo ya viunganisho inaweza kunyonya rasilimali zote.

Ili kutatua tatizo hili, niliandika maktaba kwa kazi ya asynchronous, iliyojengwa kwa misingi ya epoll iliyosababishwa na makali. Hapo awali, nilijiwekea jukumu la kutengeneza maktaba ambayo katika siku zijazo ningeweza kuandika seva yangu ya asynchronous katika siku kadhaa kutatua shida zingine kando na IMAP; kama matokeo, karibu msimbo wote unaweza kutumika kuandika huduma zingine.

4. Kutokuwa na uwezo wa kutambua mteja kipekee
Seva yetu inaauni kiendelezi cha kitambulisho, ambacho huturuhusu kutambua takriban nusu ya wateja. Kwa bahati mbaya, nusu nyingine haijui kuhusu ugani huu (wa wale maarufu, kwa mfano, Outlook).
Kuelewa ni mteja gani tunayefanya kazi naye huturuhusu kukwepa hitilafu zake, na pia kutabiri muundo wa kazi utakuwaje ndani ya kipindi fulani na, ipasavyo, kuboresha kazi. Hii ni muhimu kwetu, kwa hivyo ikiwa mteja haitoi kitambulisho, tunajaribu kuitambua kwa njia zingine (katika kesi ya Outlook, kwa vitambulisho).
5. Hakuna amri ya kuhamisha ujumbe
Katika wateja, harakati inatekelezwa kupitia kunakili + kufuta. Sisi, bila shaka, tunataka nakala ya barua iwekwe ndani folda inayotaka, na asili ilifutwa na haikukusanya takataka. Kwa upande mwingine, wakati mwingine mtumiaji mwenyewe anakili barua kwa folder mpya na kisha kufuta asili: katika kesi hii barua iliyofutwa lazima iingie kwenye gari.
Ili kutofautisha kati ya kesi hizi mbili, baada ya kunakili, katika kikao kimoja tunaashiria barua na bendera maalum ya ndani. Wakati mtumiaji mwenyewe anakili barua na kufuta asili, mteja, kama sheria, anasasisha orodha ya barua. Wakati wa kusasisha, kisanduku cha kuteua kinawekwa upya kiotomatiki, na ujumbe uliofutwa unaishia kwenye tupio. Ikiwa barua (kama sehemu ya hoja) imefutwa na mteja, hakuna sasisho hutokea, na barua iliyo na bendera imefutwa kabisa.

Ugumu unaohusishwa na kurekebisha uhifadhi wa barua pepe na faharasa za sasa

1. Utambulisho wa ujumbe
Ili kufanya kazi kwenye IMAP, ilikuwa ni lazima kuunga mkono aina mbili za vitambulishi vya ujumbe: nambari ya mfuatano, ambayo inaweza kutofautiana kutoka kipindi hadi kikao, na nambari ya kipekee, ambayo huhifadhiwa kwa maisha yote ya ujumbe. Vitambulishi vyote viwili vililazimika kufikia vigezo vikali, ambavyo havikulingana na mpango unaotumiwa na barua pepe ya wavuti na seva ya POP3.

Inageuka kuwa ni busara zaidi kuweka kumbukumbu ya ufikiaji bila mpangilio seti nzima ya nambari za mlolongo, mawasiliano yao kwa vitambulisho vya ndani, pamoja na Kitambulisho cha IMAP. Wakati wa kufungua folda, tunatoa kutoka kwenye hifadhi orodha ya herufi zote, vitambulisho vyetu vya ndani, Kitambulisho cha IMAP, bendera na saizi ya ujumbe - kila kitu tunachotaka kutuma bila maombi yasiyo ya lazima.

Kuhusu mabadiliko yote nambari ya serial ndani ya kikao kimoja lazima tujulishe mteja. Kulingana na kiwango, mfuatano wa kitambulisho cha IMAP lazima ulingane na mfuatano wa nambari. Tutapata nambari za serial kwa kupanga orodha ya herufi kwa nambari za kipekee. Wakati mteja anatoa timu mpya, tunafungua tena muunganisho kwenye hifadhi, tuombe wakati mabadiliko ya hivi karibuni ambazo zilitengenezwa kwenye sanduku. Ikiwa hakujawa na mabadiliko tangu ombi la mwisho kama hilo, basi tunarudisha jibu kwa amri. Vinginevyo, tunauliza tena orodha ya ujumbe kwenye folda na kuilinganisha na orodha sawa ya mteja. Ifuatayo, tunarudi habari kuhusu mabadiliko, au, ikiwa itifaki hairuhusu hili lifanyike mara moja, tunafanya kumbuka kwamba barua imefutwa na kusubiri wakati unaofaa kumjulisha mteja kuhusu hili.

Kwa sababu ya maalum hii - barua haipo tena kwenye sanduku la barua, lakini mteja bado hajajua kuhusu hilo - mteja anaweza kuomba data kuhusu barua iliyofutwa tayari. Aidha, baadhi yao uzoefu matatizo makubwa, ikiwa hakukuwa na majibu ya ombi lao. Ili kuzuia mteja kutoka kuvunja, tunarudisha stubs kujibu maombi kama hayo. Mteja hupokea habari anayohitaji kwa kazi ya kawaida, na baada ya hapo sasisho linalofuata orodha ya herufi (hii kawaida hufanyika mara moja) hufuta ujumbe kutoka kwake.

2. Haja ya kurudisha taarifa kikamilifu kuhusu muundo wa MIME wa ujumbe
Karibu wateja wote wanaomba habari kuhusu muundo wa barua. Mara nyingi, wakati wa kikao cha kwanza, wanaomba taarifa hizo kuhusu barua zote kwenye folda mara moja. Kuchanganua barua kwa kila ombi kama hilo itakuwa jambo la chini sana.
Badala yake, tuliunda akiba ya miundo ya MIME. Uwepo wa kashe ulitusaidia kushinda shida kadhaa zinazohusiana na huduma za IMAP - haswa, ukosefu wa muundo wa kawaida wa kufanya kazi na seva: kwa kuwa habari zingine zimehifadhiwa kwenye kashe, hii inasaidia kupunguza mzigo unaohusishwa. na mifumo tofauti ya kazi ya mteja.

Kwa sasa tunahifadhi hadi jumbe 50. Kwa nini sio 2-3? Ukweli ni kwamba baadhi ya wateja wanaomba kwanza muundo wa barua, na kisha mwili, na kwa ujumbe kadhaa mara moja; idadi ya juu barua katika "pakiti" kama hiyo kawaida ni vipande 50.

3. Pato bora la sehemu za barua
Mara nyingi wateja huuliza tu sehemu za maandishi za barua, ambazo zinaweza kuwa mwishoni mwa ujumbe wenyewe. Ili kuonyesha vijisehemu, wateja wanaweza kuomba sehemu za maandishi kutoka kwa barua pepe 50-200 mara moja. Hutaki kusoma faili nzima ya ujumbe (na kuchakata MB 10 za barua pepe ili kutuma 10 KB ya maandishi); kutumia faharasa kuamua nafasi ya sehemu ndani ya faili kwa kila ombi pia itakuwa ghali. Katika hali hii, kashe ya muundo wa ujumbe pia husaidia.
Faida za njia hii ni wazi wakati mteja anapakia vijisehemu kwa herufi kadhaa: ikiwa hatukutumia kashe ya muundo, basi tungelazimika kuangalia megabytes nyingi na kasi ya dhabihu.

Ili kuhifadhi nafasi katika hifadhi zetu, sehemu za msingi64 zimehifadhiwa katika fomu iliyopangwa ndani ya barua: wakati wa kufanya kazi na webmail, hii inakuwezesha kutuma viambatisho bila recoding isiyo ya lazima. Ilikuwa ni lazima kufanya mpango wa utoaji wa sehemu kwa kuzingatia recoding hii. Tuliandika utiririshaji kupitisha msimbo kwenye seva ya IMAP. Cache pia ilisaidia hapa - shukrani kwa hilo, tunaweza kuelewa kwa namna gani (binary au la) kipande fulani kinahifadhiwa bila kusoma tena muundo.

4. Vipengele vya baadhi ya wateja
Baadhi ya wateja hawatii RFC kikamilifu: k.m. wateja wa kawaida Matoleo ya Android 2.2 - 2.3 haiwezi kuonyesha herufi kwa usahihi bila kurudisha sehemu zingine za hiari. Shida kuu ilikuwa kuamua ni maeneo gani ambayo kila mteja aliona kuwa ya lazima kwao wenyewe: hii ilibidi kutatuliwa kwa nguvu ya kikatili.

Tayari ilitajwa hapo juu kuwa wateja wanaweza kuwa na mbinu tofauti za kufuta barua: baadhi huzihamisha hadi kwenye tupio, wengine huzifuta mara moja na kwa kudumu. Walakini, wateja wengine hawaelewi ugani wa kawaida XLIST, ambayo tunaunga mkono, ambayo hukuruhusu kuamua ni folda gani ni takataka. Badala yake, hutumia folda yao kama pipa la takataka (hivi ndivyo Sparrow hufanya, kwa mfano).

Mtazamo hufanya kazi ya kupendeza: amri ya kufuta, barua hazihamishwi hadi kwenye tupio, lakini huwekwa alama kama zimevuka, na kisha kufutwa baadaye. Ilibadilika kuwa kwa watumiaji hii inaonekana kama mdudu - wengi hawaelewi nini cha kufanya baadaye na jinsi ya kuhakikisha kuwa mteja anafanya kwa njia ya kawaida na barua huishia kwenye takataka.

Katika hali ya utofauti kama huu, tulihitaji pia kuelewa kwa uthabiti jinsi kila mteja anavyofanya na kukabiliana na chaguo hizi - na kwa njia ambayo mtumiaji angeweza kuwa na uhakika: haijalishi ni mteja gani anafanya kazi, barua itajibu matendo yake. kama kawaida na kutabirika (in kwa kesi hii- barua iliyofutwa itaisha kwenye takataka). Tulitatua hili kwa kujaribu majibu tofauti kupitia seva mbadala ya majaribio na kufuatilia majibu ya mteja kwa kila chaguo.

Tulichojifunza wenyewe: IMAP ni kitu "kinachoenea", na wengi sifa za kihistoria, iliyopatikana kwa zaidi ya miaka 26, ambayo inazidishwa na aina mbalimbali za wateja wa barua pepe. Kwa kuzingatia mizigo yetu, hii inasababisha nini cha kuchukua suluhisho tayari na kujaribu kuirekebisha ili iendane na wewe mwenyewe haina maana: in bora kesi scenario Kiasi cha kazi kitakuwa sawa na wakati wa kutengeneza suluhisho mwenyewe. Hivi ndivyo tulivyoenda :)

Victor Starodub,
Timu ya Mail.ru

Kulingana na itifaki ya usafiri TCP na hutumia bandari 143.

IMAP hutoa mtumiaji uwezekano mkubwa kwa kufanya kazi na sanduku za barua ziko kwenye seva ya kati. Programu ya barua pepe inayotumia itifaki hii hufikia hifadhi ya mawasiliano kwenye seva kana kwamba mawasiliano yanapatikana kwenye kompyuta ya mpokeaji. Barua pepe zinaweza kubadilishwa kutoka kwa kompyuta ya mtumiaji (mteja) bila kutuma mara kwa mara faili zilizo na yaliyomo kamili ya barua pepe kurudi na kurudi kutoka kwa seva.

Itifaki ya SMTP kwa kawaida hutumiwa kutuma barua pepe, kwa kuwa amri ya kutuma ya IMAP yenyewe, inayoitwa APPEND, inachukuliwa kuwa "kutofaulu" na "si salama."

Encyclopedic YouTube

    1 / 5

    ✪Misingi ni tofauti kwa IMAP na POP3

    ✪ POP3 dhidi ya IMAP, ni ipi unapaswa kuchagua? | Usaidizi wa reg 123

    ✪ RIPOTI IMAP

    ✪ Jinsi ya kuwezesha IMAP ya Gmail Mipangilio

    ✪ IMAP ni nini na Jinsi ya Kuitumia | Mafunzo ya Barua Pepe

    Manukuu

Madhumuni ya kuunda itifaki ya IMAP

IMAP kimsingi ni mbadala wa POP3 yenye uwezo wa kutuma wa kawaida.

Kulingana na usafiri Itifaki ya TCP na hutumia bandari 143.

IMAP humpa mtumiaji uwezo mkubwa wa kufanya kazi na visanduku vya barua vilivyo kwenye seva kuu. Programu ya barua kwa kutumia itifaki hii, hupata hifadhi ya mawasiliano kwenye seva kana kwamba mawasiliano haya yapo kwenye kompyuta ya mpokeaji. Barua pepe zinaweza kubadilishwa kutoka kwa kompyuta ya mtumiaji (mteja) bila kutuma mara kwa mara faili zilizo na yaliyomo kamili ya barua pepe kurudi na kurudi kutoka kwa seva.

Itifaki ya SMTP inatumika kutuma barua.

Madhumuni ya kuunda itifaki ya IMAP

Itifaki ya IMAP ni mbadala wa POP3.

POP3 ina idadi ya hasara, na mbaya zaidi ni ukosefu wa uwezo wa kudhibiti harakati na uhifadhi wa ujumbe kwenye seva. Ujumbe, kama sheria, hupakuliwa kutoka kwa seva ya barua mara moja, baada ya hapo hufutwa kutoka kwa seva, yaani, hakuna uwezo wa kuchagua ujumbe wa kupokea.

Ili kushughulikia matatizo yanayohusiana na kipengele hiki cha POP3, Chuo Kikuu cha Washington kilibuni itifaki mpya ambayo inaruhusu watumiaji kupokea barua pepe kutoka kwa kisanduku kimoja cha barua kutoka maeneo mengi bila ujumbe huo kusambazwa kati ya pointi zinazopokelewa. Mtumiaji anapewa fursa ya kudhibiti ujumbe katika kisanduku chake cha barua na kazi za ziada kwa kuhudumia visanduku vya barua kwenye seva.

Faida zaidi ya POP3

Wakati wa kutumia POP3, mteja huunganisha kwenye seva kwa muda tu unaohitajika ili kupakua ujumbe mpya. Unapotumia IMAP, unganisho hauvunji hadi kiolesura cha mtumiaji amilifu na ujumbe hupakuliwa tu unapoombwa na mteja. Hii hukuruhusu kupunguza muda wa kujibu kwa watumiaji ambao visanduku vyao vya barua vina jumbe nyingi kubwa.

Itifaki ya POP inahitaji mteja wa sasa awe ndiye pekee aliyeunganishwa kwenye kisanduku cha barua. IMAP inaruhusu upatikanaji wa wakati mmoja wateja kadhaa kwenye kisanduku cha barua na humpa mteja uwezo wa kufuatilia mabadiliko yaliyofanywa na wateja wengine waliounganishwa kwa wakati mmoja.

Shukrani kwa mfumo wa bendera uliofafanuliwa katika IMAP4, mteja anaweza kufuatilia hali ya ujumbe (kusoma, kujibu kutumwa, kufutwa, nk); data ya bendera huhifadhiwa kwenye seva.

Wateja wa IMAP4 wanaweza kuunda, kubadilisha jina, na kufuta visanduku vya barua na kuhamisha ujumbe kati ya visanduku vya barua. Unaweza pia kutumia Kiendelezi cha Orodha ya Udhibiti wa Ufikiaji wa IMAP4 (ACL) (RFC 4314) ili kudhibiti haki za ufikiaji wa kisanduku cha barua.

Kutafuta ujumbe hutokea kwa upande wa seva.

IMAP4 ina utaratibu wa ugani wazi.

Matoleo ya itifaki ya IMAP

  • IMAP asili (1986, hakuna maelezo)
  • IMAP2 (1988 - RFC 1064, 1990 - RFC 1176)
  • IMAP3 (1991, RFC 1203)
  • IMAP2bis (maelezo yapo katika rasimu ya 1993 pekee)
  • IMAP4 (iliyopewa jina IMAP2bis)

Ujumbe na sifa zao

IMAP inafanya kazi na ujumbe pekee na haihitaji pakiti zozote zilizo na vichwa maalum.

Kila ujumbe una sifa kadhaa zinazohusiana nayo. Sifa hizi zinaweza kufafanuliwa kibinafsi au pamoja na sifa zingine.

UID

Kila ujumbe umepewa msimbo wa biti 32, ambao, unapotumiwa pamoja na kitambulisho cha kipekee, huunda mfuatano wa biti 64 ambao unahakikisha utambulisho wa kipekee wa ujumbe katika kisanduku cha barua. Baadaye ujumbe ulipofika, ndivyo UID yake inavyokuwa kubwa.

UID inahusishwa na kisanduku cha barua na inatumwa kama msimbo wa majibu ya uidvalidity (sawa) wakati wa awamu ya uteuzi wa kisanduku cha barua. Ikiwa UID kutoka kwa kipindi cha awali haiwezi kutumika kwa sababu fulani, UID lazima iongezwe.

Ujumbe wa UID haupaswi kubadilika ndani ya kipindi, na haupaswi kubadilika kutoka kikao hadi kikao. Hata hivyo, ikiwa haiwezekani kuhifadhi ujumbe wa UID katika kipindi kijacho, kila kipindi kijacho lazima kiwe na msimbo mpya wa kipekee wa kitambulisho ambao lazima uwe mkubwa kuliko UID yoyote iliyotumiwa hapo awali.

Nambari ya mlolongo wa ujumbe

Nambari ya mfuatano wa ujumbe katika kisanduku cha barua huanza kutoka 1. Kila ujumbe, kuanzia wa pili, una nambari ya mlolongo 1 hasa zaidi ya ile inayoutangulia.

Wakati wa kikao, inawezekana kubadilisha nambari ya mlolongo wa ujumbe. Kwa mfano, ujumbe unapofutwa kutoka kwa kisanduku cha barua, nambari za ujumbe unaofuata hubadilika.

Bendera za ujumbe

Sifa hii ni orodha ya ishara sifuri au zaidi zilizo na majina, zinazohusishwa ujumbe huu. Bendera imewekwa kwa kuiongeza kwenye orodha hii na kufutwa kwa kuiondoa. Kuna aina mbili za bendera katika IMAP 4.1. Bendera inaweza kuwa ya kudumu au halali kwa muda wa kipindi fulani pekee.

Bendera ya mfumo ni bendera ambayo jina lake limefafanuliwa katika vipimo vya itifaki. Bendera zote za mfumo huanza na \ herufi.

Bendera za mfumo zifuatazo zimefafanuliwa kwa sasa:

  • \ imeonekana - ujumbe umesomwa
  • \imejibiwa - jibu limetumwa kwa ujumbe
  • \iliyoalamishwa - ujumbe uliowekwa alama kuwa "muhimu"
  • \imefutwa - ujumbe uliotiwa alama kuwa umefutwa
  • \rasimu - ujumbe uliotiwa alama kuwa rasimu
  • \ hivi karibuni - ujumbe wa hivi majuzi (ulionekana kwanza kwenye kisanduku cha barua wakati wa kipindi cha sasa)

Tarehe na saa ya ujumbe wa ndani kwenye seva

Muda na tarehe ujumbe ulipokelewa. Ikiwa ujumbe utawasilishwa kupitia Itifaki ya SMTP- tarehe na wakati wa kujifungua kwa mpokeaji wa mwisho. Kwa ujumbe unaotolewa na amri ya nakala, tarehe ya ndani na wakati wa mtumaji ujumbe. Wakati wa kutumia amri ya nyongeza - tarehe na wakati, maalum na vigezo timu.

Sifa nyingine

  • saizi ya ujumbe - idadi ya pweza katika ujumbe.
  • muundo wa bahasha ya ujumbe.
  • muundo wa mwili wa ujumbe

Mwingiliano wa seva ya mteja

Muunganisho wa IMAP 4.1 unahusisha kuanzisha muunganisho kati ya mteja na seva. Mteja hutuma amri kwa seva, na seva hutuma data na arifa kuhusu hali ya ombi kwa mteja. Barua pepe zote, mteja na seva, ziko katika mfumo wa mistari inayoishia na mlolongo maalum.

Utaratibu wowote huanza na amri ya mteja. Amri yoyote ya mteja huanza na kiambishi awali cha kitambulisho (kwa kawaida kamba fupi ya alphanumeric, kwa mfano, A0001, A0002, nk) inayoitwa tag. Kwa kila amri, mteja hutengeneza lebo yake mwenyewe.

Kuna matukio mawili yanayowezekana ambapo kamba iliyotumwa na mteja haiwakilishi amri kamili. Katika kwanza, hoja ya amri hutolewa na nambari inayoamua idadi ya pweza kwenye mstari. Katika pili, hoja za amri zinahitaji jibu kutoka kwa seva. Katika visa vyote viwili, seva hutuma ombi la kuendelea na amri kuanzia na herufi +.

Mteja lazima amalize kutuma amri moja kabla ya kutuma nyingine.

Mpokeaji wa itifaki wa seva husoma mstari wa amri uliotoka kwa mteja, huichanganua, huondoa vigezo na kusambaza data kwa seva. Baada ya kukamilika kwa amri, seva hutuma jibu.

Data iliyotumwa kutoka kwa seva hadi kwa mteja, pamoja na majibu ya hali ambayo hayaonyeshi kukamilika kwa amri, hutambulishwa na * na huitwa majibu ambayo hayajatambulishwa.

Data inaweza kutumwa na seva kwa kujibu amri ya mteja au kwa hiari yake. Muundo wa data hautegemei sababu ya kutuma.

Jibu linaonyesha kufaulu/kushindwa kwa operesheni. Inatumia lebo sawa na amri ya mteja iliyoendesha utaratibu. Kwa hivyo, ikiwa amri zaidi ya moja imetolewa, lebo ya seva inaonyesha amri iliyosababisha jibu lililotolewa. Kuna aina tatu za majibu ya kusimamisha seva: sawa (mafanikio), hapana (kushindwa), mbaya (hitilafu ya itifaki, kwa mfano, amri haikutambuliwa au hitilafu ya syntax iligunduliwa).

Kisikilizaji cha itifaki ya mteja wa IMAP 4.1 husoma kamba ya majibu kutoka kwa seva na kuchukua hatua kulingana na herufi * au + ya kwanza.

Mteja lazima awe tayari kukubali jibu lolote kutoka kwa seva wakati wowote. Data ya seva lazima iandikwe ili mteja aweze kuitumia moja kwa moja bila kutuma maombi ya kufafanua kwa seva.

Seva ya IMAP inasema

Seva ya IMAP 4.1 iko katika mojawapo ya majimbo manne.

Amri nyingi zinaweza kutumika tu katika majimbo fulani.

Mwenye uwezo bila uthibitishaji Mteja lazima atoe jina la mtumiaji na nenosiri kabla ya amri nyingi kupatikana kwa mteja. Mpito kwa hali hii hutokea wakati muunganisho umeanzishwa bila uthibitishaji wa awali.

Mwenye uwezo uthibitisho mteja anatambuliwa na lazima achague sanduku la barua, baada ya hapo amri za kufanya kazi na ujumbe zitapatikana kwake. Mpito kwa hali hii hutokea wakati uunganisho na uthibitishaji wa awali umeanzishwa, wakati data zote muhimu za kitambulisho zimetolewa, au wakati sanduku la barua limechaguliwa vibaya.

Katika jimbo chaguo Mfumo huingia wakati sanduku la barua limechaguliwa kwa ufanisi.

Katika jimbo Utgång mfumo hupigwa wakati muunganisho umeingiliwa kwa sababu ya ombi la mteja au kwa sababu ya uamuzi wa kujitegemea wa seva.

  • (1) Muunganisho bila uthibitishaji wa awali
  • (2) Muunganisho uliothibitishwa mapema
  • (3) Muunganisho umekataliwa
  • (4) Kukamilisha kwa ufanisi amri ya INGIA au THIBITISHA
  • (5) Kukamilisha kwa ufanisi amri ya CHAGUA au KUCHUNGUZA
  • (6) Amri ya FUNGA imetekelezwa au amri ya CHAGUA au CHUNGUA imeshindwa
  • (7) Tekeleza amri ya LOGOUT, kuzima seva, au kuzima muunganisho

Amri za itifaki za IMAP

INGIA Huruhusu mteja kuingia kwenye seva ya IMAP kwa kutumia kitambulisho cha mtumiaji na nenosiri kama kawaida. fomu ya maandishi. Hii sio zaidi njia bora, lakini wakati mwingine hii ndiyo njia pekee ya kuunganisha kwenye seva. AUTHENTICATE Inaruhusu mteja kutumia wakati wa kusajili na seva ya IMAP mbinu mbadala uthibitisho. Uthibitishaji wa mtumiaji binafsi ni wa hiari na hauauniwi na seva zote za IMAP. Kwa kuongeza, utekelezaji wa ukaguzi huo unaweza kutofautiana kulingana na seva. Wakati mteja anatoa amri ya AUTHENTICATE, seva hujibu kwa mfuatano wa changamoto uliosimbwa wa base64. Kisha, mteja lazima atume jibu kwa changamoto ya uthibitishaji wa seva, pia msingi64 uliosimbwa. Ikiwa seva haiauni mbinu ya uthibitishaji iliyopendekezwa ya mteja, inajumuisha neno HAPANA katika jibu lake. Kisha mteja lazima aendelee na mazungumzo ili kukubaliana juu ya mbinu ya uthibitishaji. Ikiwa majaribio yote ya kuamua njia ya uthibitishaji yatashindwa, mteja hujaribu kuingia kwenye seva kwa kutumia amri ya INGIA. FUNGA Hufunga kisanduku cha barua. Sanduku la barua linapofungwa, ujumbe wote uliowekwa alama ya \DELETED hufutwa kutoka kwa kisanduku cha barua. Haina vigezo. LOGOUT Ingia kwenye kipindi kwa kitambulisho cha sasa cha mtumiaji na kufunga visanduku vyote vya barua vilivyofunguliwa. Ikiwa barua pepe zozote ziliwekwa alama \iliyofutwa, basi kwa kutumia amri hii zitafutwa kutoka kwa kisanduku cha barua. CREATE Inaunda kisanduku kipya cha barua. Jina na eneo la visanduku vipya vya barua huamuliwa kulingana na vipimo vya jumla vya seva. KUFUTA Inatumika kwa visanduku vya barua. Seva ya IMAP, inapopokea amri hii, itajaribu kufuta kisanduku cha barua chenye jina lililobainishwa kama hoja ya amri. Ujumbe hufutwa pamoja na visanduku vya barua na hauwezi kurejeshwa. RENAME Hubadilisha jina la kisanduku cha barua. Amri hii ina vigezo viwili - jina la kisanduku cha barua ambacho unataka kubadilisha jina na jina jipya la kisanduku cha barua. SUBSCRIBE Huongeza kisanduku cha barua kwenye orodha ya mteja ya vikasha amilifu. Amri hii inatumia parameter moja tu - jina la sanduku la barua ambalo linahitaji kuongezwa kwenye orodha. Sanduku la barua si lazima liwepo ili kuongezwa kwenye orodha inayotumika ya kisanduku cha barua - hii inakuruhusu kuongeza visanduku vya barua kwenye orodha inayotumika ya kisanduku cha barua ambayo bado haijaundwa, au uiondoe ikiwa ni tupu. JIONDOE Huondoa visanduku vya barua kutoka kwa orodha inayotumika. Pia hutumia kigezo kimoja - jina la kisanduku cha barua, ambacho huondolewa kutoka kwenye orodha ya masanduku ya barua ya mteja amilifu. Walakini, sanduku la barua yenyewe halijafutwa. ORODHA Pata orodha ya visanduku vya barua vya mteja; ina vigezo viwili. LSUB Tofauti na amri ya ORODHA, inatumika kupata orodha ya visanduku vya barua vilivyoamilishwa kwa amri ya SUBSCRIBE. Vigezo ni sawa na vya LIST. STATUS Inazalisha ombi la hali ya sasa sanduku la barua. Kigezo cha kwanza kwa amri hii ni jina la kisanduku cha barua ambacho kinatumika. Kigezo cha pili ni orodha ya vigezo ambavyo mteja anataka kupokea habari. Amri ya STATUS inaweza kutumika kupata taarifa kuhusu hali ya kisanduku cha barua bila kuifungua kwa kutumia amri za CHAGUA au CHUNGUA. Mtumiaji anaweza kupata habari kulingana na vigezo vifuatavyo:
  • UJUMBE - jumla ya idadi ya ujumbe katika kisanduku cha barua
  • KARIBUNI - idadi ya jumbe zilizo na \ bendera ya hivi majuzi
  • UIDNEXT - UID ambayo itatumwa kwa ujumbe mpya
  • UIDVALIDITY - kitambulisho cha kipekee cha kisanduku cha barua
  • HAIJAONEKANA - idadi ya ujumbe bila \ bendera inayoonekana
APPEND Huongeza ujumbe hadi mwisho wa kisanduku cha barua kilichobainishwa. Hoja hizo ni pamoja na jina la kisanduku cha barua, bendera za ujumbe (si lazima), muhuri wa wakati (si lazima) na ujumbe wenyewe - kichwa na mwili. Alama zifuatazo za ujumbe zinapatikana:
  • \Imeonekana - soma
  • \Imejibiwa - jibu limeandikwa
  • \Imealamishwa - ya haraka
  • \Imefutwa - imewekwa alama ya kufutwa
  • \Rasimu - rasimu
  • \Hivi karibuni - ujumbe mpya, ulifika katika kisanduku cha barua baada ya mwisho wa kipindi cha mwisho
Ikiwa bendera zimeainishwa katika amri, zimewekwa kwa ujumbe unaoongezwa. Vyovyote vile, alama ya \ Hivi karibuni imewekwa kwa ujumbe. Ikiwa muhuri wa muda umebainishwa katika amri, basi wakati huu utawekwa kama wakati wa kuunda ujumbe, vinginevyo wakati wa sasa utachukuliwa kama wakati wa kuunda. Kwa kuwa ujumbe si mrefu wa mstari mmoja, neno halisi hutumiwa. Mfano: C A003 ONGEZA ujumbe uliohifadhiwa (\Umeonekana) (247) S + Tayari kwa data halisi C Tarehe: Mon, 7 Feb 1994 21:52:25 -0800 (PST) C Kutoka: Fred Foobar C Mada: mkutano wa mchana C Kwa: [barua pepe imelindwa] Kitambulisho cha Ujumbe C: C C Hujambo Joe, unafikiri tunaweza kukutana kesho saa 3:30? S A003 SAWA NYONGEZA imekamilika Kiendelezi cha MULTIAPPEND, kilichofafanuliwa katika RFC 3502, huruhusu jumbe nyingi kuongezwa kwenye kisanduku cha barua kilicho na amri moja. ANGALIA Seti hatua ya udhibiti kwenye kisanduku cha barua. Uendeshaji wowote, kama vile kuandika data kutoka kwa kumbukumbu ya seva hadi yake HDD, lazima itekelezwe katika hali inayofaa ya kisanduku cha barua. Ni kuangalia uadilifu wa kisanduku cha barua baada ya diski na shughuli zingine zinazofanana ambazo amri ya CHECK inatumiwa. Amri hii inatumika bila vigezo. EXPUNGE Inafuta barua pepe zote zilizo na alama ya \ILIFUTWA kutoka kwa kisanduku cha barua, bila kufunga kisanduku cha barua. Jibu la seva kwa amri ya EXPUNGE ni ripoti ya hali mpya ya kisanduku cha barua. TAFUTA Hutafuta ujumbe kulingana na vigezo katika kisanduku cha barua kinachotumika na kisha kuonyesha matokeo kama nambari ya ujumbe. Inawezekana kutafuta ujumbe ambao mwili wake una fulani mfuatano wa maandishi, au kuwa na bendera fulani, au kupokelewa hapo awali tarehe fulani nk. CHUKUA Pata maandishi ya ujumbe wa barua. Amri hutumiwa tu kuonyesha ujumbe. Tofauti na POP3, mteja wa IMAP haihifadhi nakala ya ujumbe kwenye Kompyuta ya mteja. HIFADHI Hubadilisha taarifa ya ujumbe. COPY Hunakili ujumbe kutoka kwa kisanduku kimoja cha barua hadi kingine. UID Inatumika kwa kushirikiana na amri za FETCH, COPY, STORE, au TAFUTA. Kwa msaada wake, unaweza kutumia halisi nambari za kitambulisho UID badala ya mlolongo wa nambari kutoka kwa anuwai ya nambari za ujumbe. CAPABILITY Inaulizia seva ya IMAP kwa taarifa kuhusu uwezo wake. NOOP Amri haifanyi chochote. Inaweza kutumika kudumisha shughuli wakati wa kipindi ili kipindi kisisitishwe kwa sababu ya kipima muda. Majibu ya seva kwa amri ya NOOP yanapaswa kuwa chanya kila wakati. Kwa kuwa seva mara nyingi hurejesha hali ya utekelezaji wa amri fulani katika majibu yake, NOOP inaweza kutumika kama kichochezi cha kuuliza mara kwa mara hali ya seva.

Viungo

  • RFC 3501 Ujumbe wa Mtandao Itifaki ya Ufikiaji v4rev1 (Kiingereza)
  • Muunganisho wa IMAP
  • Jinsi ya kufanya: Kusanidi KMail na Gmail - IMAP na IMAP Iliyotenganishwa

Leo tutakuambia kwa undani kuhusu itifaki za mtandao zinazotumiwa zaidi - POP3, IMAP na SMTP. Kila moja ya itifaki hizi ina madhumuni maalum na utendakazi. Hebu jaribu kufikiri.

Itifaki ya POP3 na bandari zake

Itifaki ya 3 ya Ofisi ya Posta (POP3) ni itifaki ya kawaida barua iliyoundwa kwa kupokea barua pepe Na seva ya mbali mteja wa barua pepe.POP3 hukuruhusu kuhifadhi ujumbe wa barua pepe kwenye kompyuta yako na hata kuusoma ikiwa uko nje ya mtandao. Ni muhimu kutambua kwamba ukiamua kutumia POP3 kuunganisha akaunti barua, barua ambazo tayari zimepakuliwa kwenye kompyuta yako zitafutwa kutoka kwa seva ya barua. Kwa mfano, ikiwa unatumia kompyuta kadhaa kuunganisha kwenye moja akaunti ya barua, basi itifaki ya POP3 inaweza isiwe chaguo bora katika hali hii. Kwa upande mwingine, kwa kuwa barua huhifadhiwa ndani ya nchi, kwenye PC mtumiaji maalum, hii hukuruhusu kuboresha nafasi ya diski kwa upande wa seva ya barua.

Kwa chaguo-msingi, itifaki ya POP3 hutumia bandari zifuatazo:

  • Bandari 110 ni bandari chaguo-msingi ya POP3. Sio salama.
  • Bandari 995 - Bandari hii inapaswa kutumika ikiwa unataka kuanzisha muunganisho salama.

Itifaki ya IMAP na bandari

Itifaki ya Ufikiaji Ujumbe wa Mtandao (IMAP) ni itifaki ya posta, iliyoundwa kwa ajili ya kupata barua kutoka kwa mteja wa karibu wa barua pepe. IMAP na POP3 ndizo itifaki maarufu zaidi kwenye Mtandao zinazotumiwa kupokea barua pepe. Itifaki hizi zote mbili zinaungwa mkono na zote za kisasa wateja wa barua(MUA - Barua Wakala wa Mtumiaji) na seva za WEB.

Ingawa POP3 inaruhusu ufikiaji wa barua kutoka kwa programu moja tu, IMAP inaruhusu ufikiaji kutoka kwa wateja wengi. Kwa sababu hii, IMAP inaweza kubadilika zaidi katika hali ambapo watumiaji wengi wanahitaji ufikiaji wa akaunti moja ya barua pepe.

Chaguomsingi, Itifaki ya IMAP hutumia bandari zifuatazo:

  • Bandari ya 143- bandari chaguo-msingi. Si salama.
  • Bandari ya 993- bandari kwa muunganisho salama.
Itifaki ya SMTP na bandari zake

Itifaki Rahisi ya Uhawilishaji Barua (SMTP) ni itifaki ya kawaida ya kutuma ujumbe wa barua kupitia mtandao.

Itifaki hii imeelezewa katika RFC 821 na RFC 822, iliyochapishwa kwa mara ya kwanza mnamo Agosti 1982. Ndani ya upeo wa data ya RFC, umbizo la anwani lazima liwe katika umbizo jina la mtumiaji@domainname. Uwasilishaji wa barua ni sawa na kazi ya kawaida huduma ya posta: kwa mfano, barua kwa anwani [barua pepe imelindwa], itafasiriwa kama ifuatavyo: ivan_ivanov ni anwani, na merionet.ru ni msimbo wa posta. Kama Jina la kikoa mpokeaji ni tofauti na jina la kikoa cha mtumaji, kisha MSA (Wakala wa Utumaji Barua) itatuma barua kupitia Wakala wa Uhawilishaji Barua (MTA). Wazo kuu la MTA ni kuelekeza barua kwa mwingine eneo la kikoa, sawa na jinsi barua ya kawaida inavyotuma barua kwa jiji au eneo lingine. MTA pia hupokea barua kutoka kwa MTA zingine.

Itifaki ya SMTP hutumia milango ifuatayo.

POP3

POP3 ni itifaki ya kupokea ujumbe wa barua pepe.

Unapotazama barua kwa kutumia itifaki ya POP3, kila kitu barua pepe hupakuliwa kwa kompyuta ya mtumiaji na kufutwa kiotomatiki kutoka kwa seva (ingawa hii inaweza kulemazwa). Wote vitendo zaidi na barua zitachakatwa kwenye kompyuta ya mtumiaji.

Itifaki ya POP3 inafaa ikiwa ni mtu mmoja tu kutoka kwa kompyuta moja anatumia kisanduku cha barua, na ufikiaji wa barua ni muhimu hata kama hakuna muunganisho wa Mtandao.

IMAP

IMAP ni itifaki inayotumia uwezo wa mapokezi na usimamizi kwa barua pepe moja kwa moja kwenye seva ya barua.

Wakati wa kutumia itifaki IMAP kielektroniki barua pepe ziko kwenye seva kila wakati na hupakuliwa kutoka hapo kila wakati zinapotazamwa. Hii ni rahisi sana wakati wa kufikia sanduku la barua lazima iwe na watu kadhaa - shughuli zote zilizo na herufi ambazo mmoja wao hufanya (kubadilisha hali ya barua kuwa "kusoma", kusonga herufi kati ya folda, nk) itaonekana na kila mtu. Hasara - kufanya kazi na barua, hata kwa barua za zamani, unahitaji muunganisho amilifu kwa mtandao.

SMTP

Seva ya SMTP ni seva ya barua, ambayo inasaidia kutuma barua pepe pekee.

Unapotumia seva ya SMTP, mlango wa 25 hutumiwa. Baadhi ya ISPs huzuia mlango 25. Katika hali hii, utahitaji kuwasiliana na msimamizi wako wa mtandao ili kufungua mlango, au utumie mlango mbadala wa 587.