All'inizio del mese su Hacker News del protocollo JMAP, . Abbiamo deciso di discutere del motivo per cui è necessario e di come è strutturato.
/ / PD
Cosa non va con IMAP
Protocollo è stato presentato nel 1986. Molte delle cose descritte nello standard non sono più attuali al giorno d'oggi. Ad esempio, il protocollo è in grado di restituire il numero di righe di una email e gli hash di controllo — questa funzionalità nei moderni client email è praticamente inutilizzata.
Un altro problema è legato al consumo di traffico. Nel caso di IMAP, le email vengono memorizzate sul server e sincronizzate periodicamente con i client locali. Se per qualche motivo la copia sul dispositivo dell'utente "si corrompe", è necessario risincronizzare tutte le email. Nel mondo moderno, dove migliaia di dispositivi mobili possono connettersi al server, questo approccio porta a un aumento del consumo di traffico e delle risorse di calcolo.
Le difficoltà sorgono non solo con il protocollo stesso, ma anche con i client email che vi lavorano. Sin dalla sua creazione, IMAP è stato soggetto a numerose revisioni — la versione attuale è IMAP4. Esistono inoltre molti estensioni opzionali — in rete novanta RFC con aggiunte. Una delle più recenti è , presentata nel 2019.
Molte aziende offrono soluzioni proprietarie che dovrebbero semplificare l'uso di IMAP o addirittura sostituirlo: , , . Ne risulta che i client email esistenti supportano solo alcune delle funzioni disponibili. Questa varietà porta a una segmentazione del mercato.
"Inoltre, un moderno client email non deve solo inoltrare messaggi, ma deve anche essere in grado di lavorare con i contatti e sincronizzarsi con il calendario", dice Sergey Belkin, capo del dipartimento sviluppo di un fornitore IaaS . "Oggi per questi scopi si utilizzano protocolli di terze parti come , e . Questo approccio complica la configurazione dei firewall nelle reti aziendali e apre nuovi vettori per attacchi informatici."
JMAP è progettato per affrontare i problemi evidenziati. È sviluppato da specialisti di FastMail sotto la supervisione del Consiglio ingegneristico di Internet (IETF). Il protocollo funziona sopra HTTPS, utilizza JSON (per questo motivo è adatto non solo per lo scambio di email, ma anche per risolvere una serie di compiti nel cloud) e semplifica l'organizzazione del lavoro con la posta nei sistemi mobili. Oltre a trattare le email, JMAP prevede anche la possibilità di estensioni per la gestione di contatti e calendari.
Caratteristiche del nuovo protocollo
JMAP è (stateless) e non richiede una connessione permanente al server di posta. Questa caratteristica semplifica il lavoro in reti mobili instabili e permette di risparmiare la carica della batteria dei dispositivi.
Un'email in JMAP è rappresentata in formato JSON. Essa contiene tutte le informazioni del messaggio (Internet Message Format), necessarie alle applicazioni di posta. Secondo gli sviluppatori, questo approccio dovrebbe semplificare la creazione di client, poiché la risoluzione di potenziali complessità (relative a , lettura delle intestazioni e codifica) sarà gestita dal server.
Per comunicare con il server, il client utilizza l'API. A tal fine, forma una richiesta POST autenticata, le cui proprietà sono descritte nell'oggetto di sessione di JMAP. La richiesta ha un formato application/json e consiste in un singolo oggetto di richiesta JSON. Il server genera anche un singolo oggetto di risposta.
In (punto 3) gli autori offrono il seguente esempio con la richiesta:
{
"using": [ "urn:ietf:params:jmap:core", "urn:ietf:params:jmap:mail" ],
"methodCalls": [
[ "method1", {
"arg1": "arg1data",
"arg2": "arg2data"
}, "c1" ],
[ "method2", {
"arg1": "arg1data"
}, "c2" ],
[ "method3", {}, "c3" ]
]
}
Di seguito è un esempio di risposta che genererà il server:
{
"methodResponses": [
[ "method1", {
"arg1": 3,
"arg2": "foo"
}, "c1" ],
[ "method2", {
"isBlah": true
}, "c2" ],
[ "anotherResponseFromMethod2", {
"data": 10,
"yetmoredata": "Hello"
}, "c2"],
[ "error", {
"type":"unknownMethod"
}, "c3" ]
],
"sessionState": "75128aab4b1b"
}
La specifica completa di JMAP con esempi di implementazione è disponibile su progetto. Lì gli autori hanno anche pubblicato la descrizione delle specifiche per e – sono indirizzati alla gestione di calendari e liste di contatti. Secondo gli autori, Contacts e Calendars sono stati separati in documenti distinti, per poterli aggiornare e standardizzare indipendentemente dal 'nucleo'. I codici sorgente per JMAP sono disponibili in .

/ / PD
Prospettive
Nonostante il fatto che il lavoro sullo standard non sia ancora ufficialmente completato, è già in fase di implementazione negli ambienti di produzione. Ad esempio, i creatori del server di posta aperto hanno realizzato la loro versione JMAP. Gli sviluppatori di FastMail hanno creato un framework server per il nuovo protocollo in Perl, mentre gli autori di JMAP hanno presentato .
Ci si aspetta che in futuro ci saranno sempre più progetti basati su JMAP. Ad esempio, c'è una certa probabilità che gli sviluppatori di Open-Xchange, che creano un server IMAP per sistemi Linux, adottino il nuovo protocollo. La comunità gli chiede di abbandonare IMAP, , che si è formata attorno agli strumenti dell'azienda.
Gli sviluppatori di IETF e FastMail affermano che sempre più utenti vedono la necessità di un nuovo standard aperto per lo scambio di messaggi. Gli autori di JMAP sperano che in futuro più aziende inizieranno a implementare questo protocollo.
JMAP — un protocollo aperto sostituirà IMAP nello scambio di email
![]()
![]()
![]()
![]()
![]()
![]()
![]()
Fonte: habr.com
