JMAP - ืคืจื•ื˜ื•ืงื•ืœ ืคืชื•ื— ืฉื™ื—ืœื™ืฃ ืืช IMAP ื‘ืขืช ื”ื—ืœืคืช ืžื™ื™ืœื™ื

ืžื•ืงื“ื ื™ื•ืชืจ ื”ื—ื•ื“ืฉ ื‘-Hacker News ื ื“ื•ืŸ ื‘ืื•ืคืŸ ืคืขื™ืœ ืคืจื•ื˜ื•ืงื•ืœ JMAP ืคื•ืชื— ื‘ื”ื ื—ื™ื™ืช IETF. ื”ื—ืœื˜ื ื• ืœื“ื‘ืจ ืขืœ ืœืžื” ื–ื” ื ื—ื•ืฅ ื•ืื™ืš ื–ื” ืขื•ื‘ื“.

JMAP - ืคืจื•ื˜ื•ืงื•ืœ ืคืชื•ื— ืฉื™ื—ืœื™ืฃ ืืช IMAP ื‘ืขืช ื”ื—ืœืคืช ืžื™ื™ืœื™ื
/ PxHere /PD

ืžื” ืœื ืื”ื‘ืชื™ ื‘-IMAP

ืคืจื•ื˜ื•ืงื•ืœ IMAP ื”ื•ืฆื’ ื‘ืฉื ืช 1986. ื“ื‘ืจื™ื ืจื‘ื™ื ื”ืžืชื•ืืจื™ื ื‘ืชืงืŸ ื›ื‘ืจ ืื™ื ื ืจืœื•ื•ื ื˜ื™ื™ื ื›ื™ื•ื. ืœื“ื•ื’ืžื”, ื”ืคืจื•ื˜ื•ืงื•ืœ ื™ื›ื•ืœ ืœื”ื—ื–ื™ืจ ืืช ืžืกืคืจ ื”ืฉื•ืจื•ืช ืฉืœ ืžื›ืชื‘ ื•ืกื™ื›ื•ืžื™ ื‘ื“ื™ืงื” MD5 - ืคื•ื ืงืฆื™ื•ื ืœื™ื•ืช ื–ื• ื›ืžืขื˜ ื•ืื™ื ื” ื‘ืฉื™ืžื•ืฉ ื‘ืœืงื•ื—ื•ืช ื“ื•ื"ืœ ืžื•ื“ืจื ื™ื™ื.

ื‘ืขื™ื” ื ื•ืกืคืช ืงืฉื•ืจื” ืœืฆืจื™ื›ืช ืชื ื•ืขื”. ืขื IMAP, ืžื™ื™ืœื™ื ืžืื•ื—ืกื ื™ื ื‘ืฉืจืช ื•ืžืกื•ื ื›ืจื ื™ื ืžืขืช ืœืขืช ืขื ืœืงื•ื—ื•ืช ืžืงื•ืžื™ื™ื. ืื ืžืกื™ื‘ื” ื›ืœืฉื”ื™ ื”ืขื•ืชืง ื‘ืžื›ืฉื™ืจ ืฉืœ ื”ืžืฉืชืžืฉ ืคื’ื•ื, ื™ืฉ ืœืกื ื›ืจืŸ ืฉื•ื‘ ืืช ื›ืœ ื”ื“ื•ืืจ. ื‘ืขื•ืœื ื”ืžื•ื“ืจื ื™, ื›ืืฉืจ ื ื™ืชืŸ ืœื—ื‘ืจ ืืœืคื™ ืžื›ืฉื™ืจื™ื ื ื™ื™ื“ื™ื ืœืฉืจืช, ื’ื™ืฉื” ื–ื• ืžื•ื‘ื™ืœื” ืœืฆืจื™ื›ื” ืžื•ื’ื‘ืจืช ืฉืœ ืžืฉืื‘ื™ ืชืขื‘ื•ืจื” ื•ืžื—ืฉื•ื‘.

ืงืฉื™ื™ื ืžืชืขื•ืจืจื™ื ืœื ืจืง ืขื ื”ืคืจื•ื˜ื•ืงื•ืœ ืขืฆืžื•, ืืœื ื’ื ืขื ืœืงื•ื—ื•ืช ื”ื“ื•ื"ืœ ืฉืขื•ื‘ื“ื™ื ืื™ืชื•. ืžืื– ื”ืงืžืชื•, IMAP ื”ื™ื” ื ืชื•ืŸ ืœืชื™ืงื•ื ื™ื ืฉื•ื ื™ื ืคืขืžื™ื ืจื‘ื•ืช - ื”ื’ืจืกื” ื”ื ื•ื›ื—ื™ืช ื›ื™ื•ื ื”ื™ื IMAP4. ื™ื—ื“ ืขื ื–ืืช, ื™ืฉ ื”ืจื‘ื” ื”ืจื—ื‘ื•ืช ืื•ืคืฆื™ื•ื ืœื™ื•ืช ืขื‘ื•ืจื• - ื‘ืจืฉืช ื™ืฆื ืœืื•ืจ ืชืฉืขื™ื RFCs ืขื ืชื•ืกืคื•ืช. ืื—ื“ ื”ืื—ืจื•ื ื™ื ื”ื•ื RFC8514, ื”ื•ืฆื’ ื‘-2019.

ื™ื—ื“ ืขื ื–ืืช, ื—ื‘ืจื•ืช ืจื‘ื•ืช ืžืฆื™ืขื•ืช ืคืชืจื•ื ื•ืช ืงื ื™ื™ื ื™ื™ื ืžืฉืœื”ืŸ ืฉืืžื•ืจื™ื ืœืคืฉื˜ ืืช ื”ืขื‘ื•ื“ื” ืขื IMAP ืื• ืืคื™ืœื• ืœื”ื—ืœื™ืฃ ืื•ืชื•: gmail, Outlook, ื ื™ืœืืก. ื”ืชื•ืฆืื” ื”ื™ื ืฉืœืงื•ื—ื•ืช ื“ื•ื"ืœ ืงื™ื™ืžื™ื ืชื•ืžื›ื™ื ืจืง ื‘ื—ืœืง ืžื”ืชื›ื•ื ื•ืช ื”ื–ืžื™ื ื•ืช. ื’ื™ื•ื•ืŸ ื›ื–ื” ืžื•ื‘ื™ืœ ืœืคื™ืœื•ื— ืฉื•ืง.

"ื™ืชืจื” ืžื›ืš, ืœืงื•ื— ื“ื•ื"ืœ ืžื•ื“ืจื ื™ ืœื ืฆืจื™ืš ืจืง ืœื”ืขื‘ื™ืจ ื”ื•ื“ืขื•ืช, ืืœื ืœื”ื™ื•ืช ืžืกื•ื’ืœ ืœืขื‘ื•ื“ ืขื ืื ืฉื™ ืงืฉืจ ื•ืœืกื ื›ืจืŸ ืขื ื”ื™ื•ืžืŸ", ืื•ืžืจ ืกืจื’ื™ื™ ื‘ืœืงื™ืŸ, ืจืืฉ ื”ืคื™ืชื•ื— ื‘ืกืคืง IaaS 1cloud.ru. - ื›ื™ื•ื, ืคืจื•ื˜ื•ืงื•ืœื™ื ืฉืœ ืฆื“ ืฉืœื™ืฉื™ ื›ืžื• LDAP, CardDAV ะธ CalDAV. ื’ื™ืฉื” ื–ื• ืžืกื‘ื›ืช ืืช ืชืฆื•ืจืช ื—ื•ืžื•ืช ื”ืืฉ ื‘ืจืฉืชื•ืช ืืจื’ื•ื ื™ื•ืช ื•ืคื•ืชื—ืช ื•ืงื˜ื•ืจื™ื ื—ื“ืฉื™ื ืœื”ืชืงืคื•ืช ืกื™ื™ื‘ืจ".

JMAP ื ื•ืขื“ ืœืคืชื•ืจ ื‘ืขื™ื•ืช ืืœื”. ื–ื” ืžืคื•ืชื— ืขืœ ื™ื“ื™ ืžื•ืžื—ื™ FastMail ื‘ื”ื ื—ื™ื™ืช ื›ื•ื— ื”ืžืฉื™ืžื” ืœื”ื ื“ืกืช ื”ืื™ื ื˜ืจื ื˜ (IETF). ื”ืคืจื•ื˜ื•ืงื•ืœ ืคื•ืขืœ ืขืœ ื’ื‘ื™ HTTPS, ืžืฉืชืžืฉ ื‘-JSON (ืžืกื™ื‘ื” ื–ื• ื”ื•ื ืžืชืื™ื ืœื ืจืง ืœื”ื—ืœืคืช ื”ื•ื“ืขื•ืช ืืœืงื˜ืจื•ื ื™ื•ืช, ืืœื ื’ื ืœืคืชืจื•ืŸ ืžืกืคืจ ืžืฉื™ืžื•ืช ื‘ืขื ืŸ) ื•ืžืงืœ ืขืœ ืืจื’ื•ืŸ ื”ืขื‘ื•ื“ื” ืขื ื“ื•ืืจ ื‘ืžืขืจื›ื•ืช ืžื•ื‘ื™ื™ืœ. ื‘ื ื•ืกืฃ ืœืขื™ื‘ื•ื“ ืžื›ืชื‘ื™ื, JMAP ืžืกืคืง ื’ื ืืช ื”ื™ื›ื•ืœืช ืœื—ื‘ืจ ืฉืœื•ื—ื•ืช ืœืขื‘ื•ื“ื” ืขื ืื ืฉื™ ืงืฉืจ ื•ืžืชื–ืžืŸ ืœื•ื— ืฉื ื”.

ืชื›ื•ื ื•ืช ืฉืœ ื”ืคืจื•ื˜ื•ืงื•ืœ ื”ื—ื“ืฉ

JMAP ื”ื•ื ืคืจื•ื˜ื•ืงื•ืœ ื—ืกืจ ืื–ืจื—ื•ืช (ื—ืกืจ ืžื“ื™ื ื”) ื•ืื™ื ื• ืžืฆืจื™ืš ื—ื™ื‘ื•ืจ ืงื‘ื•ืข ืœืฉืจืช ื”ื“ื•ืืจ. ืชื›ื•ื ื” ื–ื• ืžืคืฉื˜ืช ืืช ื”ืขื‘ื•ื“ื” ื‘ืจืฉืชื•ืช ืกืœื•ืœืจื™ื•ืช ืœื ื™ืฆื™ื‘ื•ืช ื•ื—ื•ืกื›ืช ื‘ืกื•ืœืœื” ื‘ืžื›ืฉื™ืจื™ื.

ืื™ืžื™ื™ืœ ื‘-JMAP ืžื™ื•ืฆื’ ื‘ืคื•ืจืžื˜ ืฉืœ ืžื‘ื ื” JSON. ื”ื•ื ืžื›ื™ืœ ืืช ื›ืœ ื”ืžื™ื“ืข ืžื”ื”ื•ื“ืขื” RFC5322 (ืคื•ืจืžื˜ ื”ื•ื“ืขื” ื‘ืื™ื ื˜ืจื ื˜), ืืฉืจ ืขืฉื•ื™ ืœื”ื™ื“ืจืฉ ืœื™ื™ืฉื•ืžื™ ื“ื•ืืจ ืืœืงื˜ืจื•ื ื™. ืœื“ื‘ืจื™ ื”ืžืคืชื—ื™ื, ื’ื™ืฉื” ื–ื• ืืžื•ืจื” ืœืคืฉื˜ ืืช ื™ืฆื™ืจืช ื”ืœืงื•ื—ื•ืช, ืฉื›ืŸ ืคืชืจื•ืŸ ืงืฉื™ื™ื ืคื•ื˜ื ืฆื™ืืœื™ื™ื (ื”ืงืฉื•ืจื™ื ืœ Mime, ืงืจื™ืืช ื›ื•ืชืจื•ืช ื•ืงื™ื“ื•ื“) ื”ืฉืจืช ื™ื’ื™ื‘.

ื”ืœืงื•ื— ืžืฉืชืžืฉ ื‘-API ื›ื“ื™ ืœื™ืฆื•ืจ ืงืฉืจ ืขื ื”ืฉืจืช. ืœืฉื ื›ืš, ื”ื•ื ื™ื•ืฆืจ ื‘ืงืฉืช POST ืžืื•ืžืชืช, ืฉืžืืคื™ื™ื ื™ื” ืžืชื•ืืจื™ื ื‘ืื•ื‘ื™ื™ืงื˜ ื”ื”ืคืขืœื” ืฉืœ JMAP. ื”ื‘ืงืฉื” ื”ื™ื ื‘ืคื•ืจืžื˜ ื™ื™ืฉื•ื/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 - ื”ื ืžื›ื•ื•ื ื™ื ืœืขื‘ื•ื“ ืขื ืœื•ื—ื•ืช ืฉื ื” ื•ืจืฉื™ืžื•ืช ืื ืฉื™ ืงืฉืจ. ืขืœ ื™ื“ื™ ืขืœ ืคื™ ืžื—ื‘ืจื™ื, ืื ืฉื™ ืงืฉืจ ื•ืœื•ื—ื•ืช ืฉื ื” ื”ื•ืคืจื“ื• ืœืžืกืžื›ื™ื ื ืคืจื“ื™ื ื›ืš ืฉื ื™ืชืŸ ื™ื”ื™ื” ืœืคืชื— ืื•ืชื ื•ืœืชืงืŸ ืื•ืชื ืœืœื ืชืœื•ืช ื‘"ื”ืœื™ื‘ื”". ืงื•ื“ื™ ืžืงื•ืจ ืขื‘ื•ืจ JMAP - in ืžืื’ืจื™ื ื‘- GitHub.

JMAP - ืคืจื•ื˜ื•ืงื•ืœ ืคืชื•ื— ืฉื™ื—ืœื™ืฃ ืืช IMAP ื‘ืขืช ื”ื—ืœืคืช ืžื™ื™ืœื™ื
/ PxHere /PD

ืกื™ื›ื•ื™ื™ื

ืœืžืจื•ืช ื”ืขื•ื‘ื“ื” ืฉื”ืขื‘ื•ื“ื” ืขืœ ื”ืชืงืŸ ื˜ืจื ื”ืกืชื™ื™ืžื” ื‘ืื•ืคืŸ ืจืฉืžื™, ื”ื•ื ื›ื‘ืจ ืžื™ื•ืฉื ื‘ืกื‘ื™ื‘ื•ืช ื™ื™ืฆื•ืจ. ืœืžืฉืœ, ื”ื™ื•ืฆืจื™ื ืฉืœ ืฉืจืช ื”ื“ื•ืืจ ื”ืคืชื•ื— ืกื™ื™ืจื•ืก IMAP ื”ื˜ืžื™ืข ืืช ื’ืจืกืช ื”-JMAP ืฉืœื•. ืžืคืชื—ื™ื ืž-FastMail ืžึฐืฉืื•ึผื—ืจึธืจ ืžืกื’ืจืช ืฉืจืช ืขื‘ื•ืจ ื”ืคืจื•ื˜ื•ืงื•ืœ ื”ื—ื“ืฉ ื‘- Perl, ื•ืžื—ื‘ืจื™ JMAP ื”ืฆื™ื’ื• ืฉืจืช ืคืจื•ืงืกื™.

ืื ื• ื™ื›ื•ืœื™ื ืœืฆืคื•ืช ืฉื™ื”ื™ื• ื™ื•ืชืจ ื•ื™ื•ืชืจ ืคืจื•ื™ืงื˜ื™ื ืžื‘ื•ืกืกื™ JMAP ื‘ืขืชื™ื“. ืœืžืฉืœ, ื™ืฉื ื” ืกื‘ื™ืจื•ืช ืžืกื•ื™ืžืช ืฉืžืคืชื—ื™ื ืž-Open-Xchange, ื”ื™ื•ืฆืจื™ื ืฉืจืช IMAP ืœืžืขืจื›ื•ืช ืœื™ื ื•ืงืก, ื™ืขื‘ืจื• ืœืคืจื•ื˜ื•ืงื•ืœ ื”ื—ื“ืฉ. ืกืจื‘ื• ืžืื•ื“ ืœ-IMAP ืฉื•ืืœื™ื ื—ื‘ืจื™ ื”ืงื”ื™ืœื”, ืฉื ื•ืฆืจื• ืกื‘ื™ื‘ ื”ื›ืœื™ื ืฉืœ ื”ื—ื‘ืจื”.

ืžืคืชื—ื™ื ืžื”-IETF ื•-FastMail ืื•ืžืจื™ื ืฉื™ื•ืชืจ ื•ื™ื•ืชืจ ืžืฉืชืžืฉื™ื ืจื•ืื™ื ืืช ื”ืฆื•ืจืš ื‘ืชืงืŸ ืคืชื•ื— ื—ื“ืฉ ืœื”ืขื‘ืจืช ื”ื•ื“ืขื•ืช. ืžื—ื‘ืจื™ JMAP ืžืงื•ื•ื™ื ืฉื‘ืขืชื™ื“ ื—ื‘ืจื•ืช ื ื•ืกืคื•ืช ื™ืชื—ื™ืœื• ืœื™ื™ืฉื ืคืจื•ื˜ื•ืงื•ืœ ื–ื”.

ื”ืžืฉืื‘ื™ื ื•ื”ืžืงื•ืจื•ืช ื”ื ื•ืกืคื™ื ืฉืœื ื•:

JMAP - ืคืจื•ื˜ื•ืงื•ืœ ืคืชื•ื— ืฉื™ื—ืœื™ืฃ ืืช IMAP ื‘ืขืช ื”ื—ืœืคืช ืžื™ื™ืœื™ื ื›ื™ืฆื“ ืœื‘ื“ื•ืง ืงื•ื‘ืฆื™ Cookie ืขื‘ื•ืจ ืชืื™ืžื•ืช ืœ-GDPR - ื›ืœื™ ืคืชื•ื— ื—ื“ืฉ ื™ืขื–ื•ืจ

JMAP - ืคืจื•ื˜ื•ืงื•ืœ ืคืชื•ื— ืฉื™ื—ืœื™ืฃ ืืช IMAP ื‘ืขืช ื”ื—ืœืคืช ืžื™ื™ืœื™ื ื›ื™ืฆื“ ืœืฉืžื•ืจ ืขื ืžืžืฉืง ืชื›ื ื•ืช ื™ื™ืฉื•ืžื™ื
JMAP - ืคืจื•ื˜ื•ืงื•ืœ ืคืชื•ื— ืฉื™ื—ืœื™ืฃ ืืช IMAP ื‘ืขืช ื”ื—ืœืคืช ืžื™ื™ืœื™ื DevOps ื‘ืฉื™ืจื•ืช ืขื ืŸ ื‘ืืžืฆืขื•ืช ื”ื“ื•ื’ืžื” ืฉืœ 1cloud.ru
JMAP - ืคืจื•ื˜ื•ืงื•ืœ ืคืชื•ื— ืฉื™ื—ืœื™ืฃ ืืช IMAP ื‘ืขืช ื”ื—ืœืคืช ืžื™ื™ืœื™ื ื”ืื‘ื•ืœื•ืฆื™ื” ืฉืœ ืืจื›ื™ื˜ืงื˜ื•ืจืช ื”ืขื ืŸ 1cloud

JMAP - ืคืจื•ื˜ื•ืงื•ืœ ืคืชื•ื— ืฉื™ื—ืœื™ืฃ ืืช IMAP ื‘ืขืช ื”ื—ืœืคืช ืžื™ื™ืœื™ื ื”ืชืงืคื•ืช ืคื•ื˜ื ืฆื™ืืœื™ื•ืช ืขืœ HTTPS ื•ื›ื™ืฆื“ ืœื”ืชื’ื•ื ืŸ ืžืคื ื™ื”ืŸ
JMAP - ืคืจื•ื˜ื•ืงื•ืœ ืคืชื•ื— ืฉื™ื—ืœื™ืฃ ืืช IMAP ื‘ืขืช ื”ื—ืœืคืช ืžื™ื™ืœื™ื ื›ื™ืฆื“ ืœื”ื’ืŸ ืขืœ ืฉืจืช ื‘ืื™ื ื˜ืจื ื˜: ื—ื•ื•ื™ื™ืช 1cloud.ru
JMAP - ืคืจื•ื˜ื•ืงื•ืœ ืคืชื•ื— ืฉื™ื—ืœื™ืฃ ืืช IMAP ื‘ืขืช ื”ื—ืœืคืช ืžื™ื™ืœื™ื ืชื›ื ื™ืช ื—ื™ื ื•ื›ื™ืช ืงืฆืจื”: ืžื”ื™ ืื™ื ื˜ื’ืจืฆื™ื” ืžืชืžืฉื›ืช

ืžืงื•ืจ: www.habr.com

ื”ื•ืกืคืช ืชื’ื•ื‘ื”