Anfang des Monats wurde auf Hacker News das JMAP-Protokoll, Wir haben uns entschieden, darĂŒber zu sprechen, warum es benötigt wird und wie es funktioniert.
/ / PD
Was ist an IMAP nicht mehr zeitgemÀ�
Protokoll wurde 1986 eingefĂŒhrt. Viele Elemente, die im Standard beschrieben sind, sind heute nicht mehr aktuell. Zum Beispiel kann das Protokoll die Anzahl der Zeilen in einer E-Mail und PrĂŒfziffern zurĂŒckgeben, aber diese FunktionalitĂ€t wird in modernen E-Mail-Clients fast nicht mehr genutzt.
Ein weiteres Problem betrifft den Datenverbrauch. Bei IMAP werden E-Mails auf dem Server gespeichert und regelmĂ€Ăig mit den lokalen Clients synchronisiert. Wenn aus irgendeinem Grund eine Kopie auf dem EndgerĂ€t des Nutzers "beschĂ€digt" wird, muss die gesamte E-Mail erneut synchronisiert werden. In der heutigen Zeit, in der Tausende von mobilen GerĂ€ten mit dem Server verbunden sein können, fĂŒhrt dieser Ansatz zu höherem Datenverbrauch und erhöhtem Rechenaufwand.
Schwierigkeiten treten nicht nur mit dem Protokoll selbst auf, sondern auch mit den E-Mail-Clients, die damit arbeiten. Seit seiner EinfĂŒhrung wurde IMAP mehrfach ĂŒberarbeitet â die derzeit gĂŒltige Version ist IMAP4. Es gibt zahlreiche optionale Erweiterungen, die im Netz verfĂŒgbar sind. Es existieren nahezu neunzig RFCs mit ErgĂ€nzungen. Eine der neuesten ist , die 2019 vorgestellt wurde.
Zudem bieten viele Unternehmen eigene proprietĂ€re Lösungen an, die die Nutzung von IMAP erleichtern oder ihn sogar vollstĂ€ndig ersetzen sollen: , , . Infolgedessen unterstĂŒtzen die bestehenden E-Mail-Clients nur teilweise die verfĂŒgbaren Funktionen. Diese Vielfalt fĂŒhrt zu einer Marktsegmentation.
âDarĂŒber hinaus sollte ein moderner E-Mail-Client nicht nur Nachrichten weiterleiten, sondern auch mit Kontakten arbeiten und sich mit dem Kalender synchronisieren könnenâ, sagt Sergej Belkin, Leiter der Entwicklungsabteilung des IaaS-Anbieters . âHeute werden hierfĂŒr externe Protokolle wie , und . Dieser Ansatz erschwert die Konfiguration von Firewalls in Unternehmensnetzwerken und eröffnet neue Vektoren fĂŒr Cyberangriffe.
Die genannten Probleme sollen durch JMAP gelöst werden. Es wird von Spezialisten von FastMail unter der Leitung des Ingenieurbeirats des Internets (IETF) entwickelt. Das Protokoll arbeitet ĂŒber HTTPS, verwendet JSON (aus diesem Grund eignet es sich nicht nur fĂŒr den Austausch von E-Mails, sondern auch fĂŒr eine Reihe von Aufgaben in der Cloud) und vereinfacht die Nutzung von E-Mails in mobilen Systemen. Neben der Verarbeitung von Nachrichten ermöglicht JMAP auch die Integration von Erweiterungen fĂŒr Kontakte und einen Kalender-Planer.
Eigenschaften des neuen Protokolls
JMAP ist und erfordert keine stÀndige Verbindung zum Mail-Server. Diese Eigenschaft erleichtert die Nutzung in instabilen mobilen Netzwerken und schont den Akku der GerÀte.
Eine E-Mail in JMAP wird im JSON-Strukturformat dargestellt. Es enthĂ€lt alle Informationen aus der Nachricht (Internet Message Format), die fĂŒr E-Mail-Anwendungen nĂŒtzlich sein kann. Laut den Entwicklern soll dieser Ansatz die Erstellung von Clients vereinfachen, da der Server fĂŒr die Lösung potenzieller Probleme (die mit , dem Lesen von Headern und der Kodierung) verantwortlich ist.
Um den Server anzusprechen, verwendet der Client eine API. Dazu formt er eine authentifizierte POST-Anfrage, deren Eigenschaften im Sitzungobjekt JMAP beschrieben sind. Die Anfrage hat das Format application/json und besteht aus einem einzigen JSON-Anforderungsobjekt. Der Server generiert auch ein Antwortobjekt.
In (Abschnitt 3) Die Autoren geben folgendes Beispiel fĂŒr eine Anfrage an:
{
"using": [ "urn:ietf:params:jmap:core", "urn:ietf:params:jmap:mail" ],
"methodCalls": [
[ "method1", {
"arg1": "arg1data",
"arg2": "arg2data"
}, "c1" ],
[ "method2", {
"arg1": "arg1data"
}, "c2" ],
[ "method3", {}, "c3" ]
]
}
Im Folgenden ein Beispiel fĂŒr die Antwort, die der Server generiert:
{
"methodResponses": [
[ "method1", {
"arg1": 3,
"arg2": "foo"
}, "c1" ],
[ "method2", {
"isBlah": true
}, "c2" ],
[ "anotherResponseFromMethod2", {
"data": 10,
"yetmoredata": "Hello"
}, "c2"],
[ "error", {
"type":"unknownMethod"
}, "c3" ]
],
"sessionState": "75128aab4b1b"
}
Die vollstĂ€ndige JMAP-Spezifikation mit Implementierungsbeispielen finden Sie auf Projekt. Dort haben die Autoren auch die Beschreibungen der Spezifikationen veröffentlicht fĂŒr und â sie sind darauf ausgelegt, mit Kalendern und Kontaktlisten zu arbeiten. Laut den Autoren wurden Kontakte und Kalender in separate Dokumente ausgelagert, damit sie unabhĂ€ngig vom "Kern" weiterentwickelt und standardisiert werden können. Der Quellcode fĂŒr JMAP ist .

/ / PD
Perspektiven
Obwohl die offizielle Arbeit an dem Standard noch nicht abgeschlossen ist, wird er bereits in Produktionsumgebungen eingesetzt. Beispielsweise haben die Entwickler des Open-Source-Mailservers eine JMAP-Version implementiert. Die Entwickler von FastMail haben ein Server-Framework fĂŒr das neue Protokoll in Perl entwickelt, und die Autoren von JMAP haben prĂ€sentiert .
Es ist zu erwarten, dass in Zukunft immer mehr Projekte auf JMAP basieren werden. Beispielsweise besteht eine gewisse Wahrscheinlichkeit, dass die Entwickler von Open-Xchange, die einen IMAP-Server fĂŒr Linux-Systeme erstellen, auf das neue Protokoll umsteigen. Die Community-Mitglieder , die sich um die Werkzeuge des Unternehmens gebildet hat.
Die Entwickler von IETF und FastMail berichten, dass immer mehr Nutzer die Notwendigkeit eines neuen offenen Standards fĂŒr die NachrichtenĂŒbermittlung sehen. Die Autoren von JMAP hoffen, dass in Zukunft mehr Unternehmen dieses Protokoll ĂŒbernehmen werden.
Unsere zusÀtzlichen Ressourcen und Quellen:
![]()
![]()
![]()
![]()
![]()
![]()
![]()
Quelle: habr.com
