Aan het begin van de maand werd er actief gediscussieerd op Hacker News ontwikkeld onder leiding van de IETF. Wat is er mis met IMAP?
/ / PD
IMAP
Protocol ā deze functionaliteit wordt in moderne e-mailclients nauwelijks gebruikt. Een ander probleem heeft te maken met het dataverbruik. Bij IMAP worden e-mails op de server opgeslagen en periodiek gesynchroniseerd met lokale clients. Als om de een of andere reden de kopie op het apparaat van de gebruiker 'beschadigd' raakt, moet de hele mail opnieuw worden gesynchroniseerd. In de moderne wereld, waar duizenden mobiele apparaten met de server kunnen worden verbonden, leidt deze aanpak tot een verhoogd dataverbruik en verbruik van rekenkracht.
Er ontstaan niet alleen problemen met het protocol zelf, maar ook met de e-mailclients die ermee werken. Sinds de introductie is IMAP meerdere keren herzien - de huidige versie is IMAP4. Daarbij zijn er vele optionele uitbreidingen voor beschikbaar - in totaal
negen decimaal RFC's met aanvullingen. Een van de nieuwste is RFC8514 Veel bedrijven bieden echter hun eigen propriƫtaire oplossingen aan die het werken met IMAP zouden moeten vereenvoudigen of het zelfs helemaal zouden moeten vervangen:
Gmail , , āBovendien moet een moderne e-mailclient niet alleen berichten kunnen doorsturen, maar ook in staat zijn om met contacten te werken en te synchroniseren met de agenda,ā zegt Sergey Belkin, hoofd van de ontwikkelingsafdeling van de IaaS-provider.
āVandaag de dag worden hiervoor externe protocollen gebruikt, zoals LDAP , en . Deze aanpak bemoeilijkt de configuratie van firewalls in bedrijfsnetwerken en opent nieuwe vectoren voor cyberaanvallen.
De aangegeven problemen worden opgelost door JMAP. Het wordt ontwikkeld door specialisten van FastMail onder leiding van de Internet Engineering Task Force (IETF). Het protocol werkt bovenop HTTPS, gebruikt JSON (om deze reden is het niet alleen geschikt voor het uitwisselen van e-mail, maar ook voor een aantal taken in de cloud) en vereenvoudigt de organisatie van e-mailgebruik in mobiele systemen. Naast het verwerken van e-mails biedt JMAP ook de mogelijkheid om uitbreidingen voor contacten en agenda's te koppelen.
Kenmerken van het nieuwe protocol
JMAP is en vereist geen constante verbinding met de e-mailserver. Deze eigenschap vereenvoudigt het werken in onbetrouwbare mobiele netwerken en bespaart batterijduur van apparaten.
Een e-mail in JMAP wordt gepresenteerd in het JSON-structuurformaat. Het bevat alle informatie uit het bericht (Internet Message Format), die nodig kan zijn voor e-mailtoepassingen. Volgens de ontwikkelaars moet deze aanpak het eenvoudiger maken om clients te ontwikkelen, aangezien de server verantwoordelijk zal zijn voor het oplossen van potentiƫle complicaties (met betrekking tot , het lezen van headers en codering).
Om de server aan te roepen, gebruikt de client een API. Hiervoor vormt hij een geauthenticeerde POST-aanroep, waarvan de eigenschappen zijn beschreven in het JMAP-sessieobject. De aanvraag heeft het formaat application/json en bestaat uit ƩƩn JSON-aanvraagobject. De server genereert ook ƩƩn antwoordobject.
In (punt 3) de auteurs geven het volgende voorbeeld van een aanvraag:
{
"using": [ "urn:ietf:params:jmap:core", "urn:ietf:params:jmap:mail" ],
"methodCalls": [
[ "method1", {
"arg1": "arg1data",
"arg2": "arg2data"
}, "c1" ],
[ "method2", {
"arg1": "arg1data"
}, "c2" ],
[ "method3", {}, "c3" ]
]
}
Hieronder is een voorbeeld van een antwoord dat de server zal genereren:
{
"methodResponses": [
[ "method1", {
"arg1": 3,
"arg2": "foo"
}, "c1" ],
[ "method2", {
"isBlah": true
}, "c2" ],
[ "anotherResponseFromMethod2", {
"data": 10,
"yetmoredata": "Hallo"
}, "c2"],
[ "error", {
"type":"unknownMethod"
}, "c3" ]
],
"sessionState": "75128aab4b1b"
}
De volledige specificatie van JMAP met implementatievoorbeelden is te vinden op project. Daar hebben de auteurs ook de specificaties voor geplaatst en ā deze zijn gericht op het werken met agenda's en contactlijsten. Volgens de auteurs zijn Contacts en Calendars in aparte documenten geplaatst, zodat ze onafhankelijk van de "kern" verder ontwikkeld en gestandaardiseerd kunnen worden. De broncodes voor JMAP zijn te vinden op .

/ / PD
Vooruitzichten
Ondanks dat het officiële werk aan de standaard nog niet is afgerond, wordt deze al geïmplementeerd in productiesystemen. Zo hebben de makers van de open mailserver hun JMAP-versie gerealiseerd. Ontwikkelaars van FastMail hebben een serverframework voor het nieuwe protocol in Perl ontwikkeld, en de auteurs van JMAP hebben gepresenteerd .
Je kunt verwachten dat er in de toekomst steeds meer projecten op basis van JMAP zullen komen. Zo is er een zekere kans dat de ontwikkelaars van Open-Xchange, die een IMAP-server voor Linux-systemen maken, overgaan op het nieuwe protocol. De gemeenschap , die zich rond de tools van het bedrijf heeft gevormd.
Ontwikkelaars van IETF en FastMail zeggen dat steeds meer gebruikers de noodzaak zien van een nieuwe open standaard voor berichtenuitwisseling. De auteurs van JMAP hopen dat in de toekomst meer bedrijven dit protocol zullen implementeren.
Onze aanvullende bronnen en referenties:
![]()
![]()
![]()
![]()
![]()
![]()
![]()
Bron: habr.com
