JMAP - имэйл солилцох үед IMAP-ыг орлох нээлттэй протокол

Энэ сарын эхээр Hacker News дээр идэвхтэй хэлэлцсэн JMAP протокол IETF-ийн удирдлаган дор боловсруулсан. Энэ нь яагаад хэрэгтэй байсан, хэрхэн ажилладаг талаар ярилцахаар шийдсэн.

JMAP - имэйл солилцох үед IMAP-ыг орлох нээлттэй протокол
/ PxЭнд /ПД

IMAP-д дургүй байсан зүйл

Протокол IMAP 1986 онд нэвтрүүлсэн. Стандартад дурдсан олон зүйл өнөөдөр хамааралгүй болсон. Жишээлбэл, протокол нь захидлын мөрийн тоо, хяналтын нийлбэрийг буцааж өгч болно MD5 - энэ функцийг орчин үеийн имэйл клиентүүдэд бараг ашигладаггүй.

Өөр нэг асуудал бол замын хөдөлгөөний хэрэглээтэй холбоотой. IMAP-ийн тусламжтайгаар имэйлүүд сервер дээр хадгалагдаж, орон нутгийн үйлчлүүлэгчидтэй үе үе синхрончлогддог. Хэрэв ямар нэг шалтгааны улмаас хэрэглэгчийн төхөөрөмж дээрх хуулбар эвдэрсэн бол бүх имэйлийг дахин синхрончлох шаардлагатай. Орчин үеийн ертөнцөд олон мянган хөдөлгөөнт төхөөрөмжийг серверт холбох боломжтой үед энэ арга нь траффик болон тооцоолох нөөцийн хэрэглээг нэмэгдүүлэхэд хүргэдэг.

Протокол өөрөө төдийгүй түүнтэй ажилладаг цахим шуудангийн үйлчлүүлэгчдэд хүндрэл гардаг. Үүсгэсэн цагаасаа хойш IMAP нь олон удаа шинэчлэгдэж байсан - одоогийн хувилбар нь IMAP4 юм. Үүний зэрэгцээ сүлжээнд олон нэмэлт өргөтгөлүүд байдаг Нийтлэгдсэн нэмэлтүүдтэй ерэн RFC. Хамгийн сүүлийн үеийн нэг нь RFC8514, 2019 онд танилцуулагдсан.

Үүний зэрэгцээ, олон компаниуд IMAP-тай ажиллахыг хялбаршуулах эсвэл бүр солих шаардлагатай өөрсдийн хувийн шийдлүүдийг санал болгодог. Gmail, Outlook, Нилас. Үүний үр дүнд одоо байгаа имэйл клиентүүд зөвхөн зарим боломжит функцуудыг дэмждэг. Ийм олон янз байдал нь зах зээлийг сегментчилэхэд хүргэдэг.

"Түүгээр ч барахгүй орчин үеийн цахим шуудангийн үйлчлүүлэгч нь зөвхөн мессеж дамжуулахаас гадна харилцагчидтай ажиллах, хуанлитай синхрончлох чадвартай байх ёстой" гэж IaaS үйлчилгээ үзүүлэгчийн хөгжлийн хэлтсийн дарга Сергей Белкин хэлэв. 1cloud.ru. - Өнөөдөр гуравдагч талын протоколууд дуртай LDAP, CardDAV и CalDAV. Энэ арга нь корпорацийн сүлжээн дэх галт хананы тохиргоог төвөгтэй болгож, кибер халдлагын шинэ векторуудыг нээж өгдөг."

JMAP нь эдгээр асуудлыг шийдвэрлэхэд зориулагдсан. Үүнийг FastMail-ийн мэргэжилтнүүд Интернет инженерийн ажлын хэсэг (IETF) удирдлаган дор боловсруулж байна. Протокол нь HTTPS дээр ажилладаг, JSON ашигладаг (ийм учраас энэ нь зөвхөн цахим мессеж солилцох төдийгүй үүлэн доторх хэд хэдэн ажлыг шийдвэрлэхэд тохиромжтой) бөгөөд гар утасны систем дэх шуудантай ажиллах зохион байгуулалтыг хялбаршуулдаг. JMAP нь захидал боловсруулахаас гадна харилцагчид болон хуанлийн хуваарьтай ажиллах өргөтгөлүүдийг холбох боломжийг олгодог.

Шинэ протоколын онцлог

JMAP бол харьяалалгүй протокол (харьяалалгүй) бөгөөд шуудангийн сервертэй байнгын холболт шаарддаггүй. Энэ функц нь тогтворгүй хөдөлгөөнт сүлжээнд ажиллах ажлыг хялбарчилж, төхөөрөмжүүдийн батерейны цэнэгийг хэмнэдэг.

JMAP дахь имэйл нь JSON бүтцийн форматаар илэрхийлэгддэг. Энэ нь мессежийн бүх мэдээллийг агуулдаг RFC5322 (Интернэт мессежийн формат), энэ нь имэйлийн програмуудад хэрэгтэй байж болох юм. Хөгжүүлэгчдийн үзэж байгаагаар энэ арга нь үйлчлүүлэгчдийг бий болгоход хялбарчлах ёстой, учир нь болзошгүй бэрхшээлийг (холбогдох) шийдвэрлэх боломжтой. Миме, толгой хэсгийг уншиж, кодлох) сервер хариу өгөх болно.

Үйлчлүүлэгч сервертэй холбогдохын тулд API ашигладаг. Үүнийг хийхийн тулд шинж чанар нь JMAP сессийн объектод тодорхойлогдсон, баталгаажсан POST хүсэлтийг үүсгэдэг. Хүсэлт нь application/json форматтай бөгөөд нэг JSON хүсэлтийн объектоос бүрдэнэ. Сервер нь бас нэг хариулах объект үүсгэдэг.

В техникийн үзүүлэлтүүд (3-р зүйл) зохиогчид хүсэлтийн дагуу дараах жишээг өгдөг.

{
  "using": [ "urn:ietf:params:jmap:core", "urn:ietf:params:jmap:mail" ],
  "methodCalls": [
    [ "method1", {
      "arg1": "arg1data",
      "arg2": "arg2data"
    }, "c1" ],
    [ "method2", {
      "arg1": "arg1data"
    }, "c2" ],
    [ "method3", {}, "c3" ]
  ]
}

Серверийн үүсгэх хариуны жишээг доор харуулав.

{
  "methodResponses": [
    [ "method1", {
      "arg1": 3,
      "arg2": "foo"
    }, "c1" ],
    [ "method2", {
      "isBlah": true
    }, "c2" ],
    [ "anotherResponseFromMethod2", {
      "data": 10,
      "yetmoredata": "Hello"
    }, "c2"],
    [ "error", {
      "type":"unknownMethod"
    }, "c3" ]
  ],
  "sessionState": "75128aab4b1b"
}

Жишээ хэрэгжүүлэлт бүхий JMAP-ийн бүрэн тодорхойлолтыг эндээс олж болно албан ёсны вэбсайт төсөл. Тэнд зохиогчид мөн техникийн үзүүлэлтүүдийн тайлбарыг нийтэлсэн JMAP Холбоо барих хаягууд и JMAP хуанли - тэд хуанли, холбоо барих жагсаалттай ажиллахад чиглэгддэг. By дагуу Зохиогчид, Харилцагч, Хуанли зэргийг тусад нь баримт бичиг болгон хуваасан бөгөөд ингэснээр "үндсэн" хэсгээс үл хамааран цаашид боловсруулж, стандартчилах боломжтой болсон. JMAP-ийн эх кодууд - in GitHub дээрх агуулахууд.

JMAP - имэйл солилцох үед IMAP-ыг орлох нээлттэй протокол
/ PxЭнд /ПД

Ойрын ирээдүй

Хэдийгээр стандартын ажил албан ёсоор дуусаагүй байгаа ч үйлдвэрлэлийн орчинд аль хэдийн хэрэгжиж эхлээд байна. Жишээлбэл, нээлттэй шуудангийн серверийг бүтээгчид Сайрус IMAP JMAP хувилбараа хэрэгжүүлсэн. FastMail-ийн хөгжүүлэгчид гаргасан Perl дэх шинэ протоколын серверийн хүрээ, JMAP-ийн зохиогчид танилцуулсан прокси сервер.

Ирээдүйд JMAP-д суурилсан төслүүд улам олон болно гэж найдаж байна. Жишээлбэл, Линукс системд IMAP сервер үүсгэж байгаа Open-Xchange-ийн хөгжүүлэгчид шинэ протокол руу шилжих магадлал өндөр байна. IMAP-аас маш их татгалзаарай нийгэмлэгийн гишүүд асууж байна, компанийн багаж хэрэгслийн эргэн тойронд үүссэн.

IETF болон FastMail-ийн хөгжүүлэгчид улам олон хэрэглэгчид мессежийн шинэ нээлттэй стандарт шаардлагатай байгааг олж харж байна. JMAP-ийн зохиогчид ирээдүйд илүү олон компани энэ протоколыг хэрэгжүүлж эхэлнэ гэж найдаж байна.

Манай нэмэлт нөөц, нөөц:

JMAP - имэйл солилцох үед IMAP-ыг орлох нээлттэй протокол Күүкийг GDPR-д нийцэж байгаа эсэхийг хэрхэн шалгах вэ - шинэ нээлттэй хэрэгсэл туслах болно

JMAP - имэйл солилцох үед IMAP-ыг орлох нээлттэй протокол Хэрэглээний програмчлалын интерфейсээр хэрхэн хадгалах вэ
JMAP - имэйл солилцох үед IMAP-ыг орлох нээлттэй протокол 1cloud.ru-ийн жишээг ашиглан үүлэн үйлчилгээнд DevOps
JMAP - имэйл солилцох үед IMAP-ыг орлох нээлттэй протокол Үүлний архитектурын хувьсал 1cloud

JMAP - имэйл солилцох үед IMAP-ыг орлох нээлттэй протокол HTTPS дээрх болзошгүй халдлага ба түүнээс хэрхэн хамгаалах вэ
JMAP - имэйл солилцох үед IMAP-ыг орлох нээлттэй протокол Интернет дэх серверийг хэрхэн хамгаалах вэ: 1cloud.ru-ийн туршлага
JMAP - имэйл солилцох үед IMAP-ыг орлох нээлттэй протокол Богино хэмжээний боловсролын хөтөлбөр: Тасралтгүй интеграци гэж юу вэ

Эх сурвалж: www.habr.com

сэтгэгдэл нэмэх