JMAP-交换电子邮件时,开放协议取代IMAP

本月初IETF的指导下开发的JMAP协议在Hacker News上得到了 积极讨论 。 我们决定谈论为什么需要它以及它如何工作。


/ 照片 / PD

什么没请IMAP


IMAP于1986年推出。 该标准中描述的许多内容如今已不再适用。 例如,协议可以返回消息行数和MD5校验和 -实际上,现代邮件客户端不使用此功能。

另一个问题是交通消耗。 对于IMAP,电子邮件存储在服务器上,并定期与本地客户端同步。 如果出于某种原因,用户设备上的副本“伪装”,则必须重新同步所有邮件。 在现代世界中,当成千上万的移动设备可以连接到服务器时,这种方法导致流量和计算资源的消耗增加。

协议本身不仅困难,而且使用该协议的电子邮件客户端也会遇到困难。 自成立以来,IMAP经历了许多次修订-当前版本为IMAP4。 此外,他还有许多可选的扩展名-网络上发布了90个RFC及其增补。 最新的之一是RFC8514 ,于2019年推出。

此外,许多公司提供了自己的专有解决方案,这些解决方案应该简化IMAP的工作甚至取代IMAP: GmailOutlookNylas 。 结果是现有的电子邮件客户端仅支持所有可用功能中的几个。 这种多样性导致市场细分。

IaaS提供商1cloud.ru的开发主管Sergey Belkin说:“此外,现代的电子邮件客户端不仅应该转发邮件,还应能够与联系人一起工作并与日历同步。” -今天,诸如LDAPCardDAVCalDAV之类的第三方协议已用于这些目的。 这种方法使公司网络中防火墙的配置复杂化,并为网络攻击开辟了新的载体。”

调用JMAP解决指定的问题。 它是由FastMail的专家在Internet工程理事会(IETF)的领导下开发的。 该协议运行在HTTPS之上,使用JSON(因此,它不仅适用于交换电子消息,而且适用于解决云中的许多任务),并且简化了移动系统中邮件的工作组织。 除了处理字母外,JMAP还提供了连接扩展功能以与联系人和日历计划者一起使用的功能。

新协议的功能


JMAP是无状态协议 ,不需要与邮件服务器的永久连接。 此功能可简化不稳定的移动网络中的工作并节省电池电量的设备。

JMAP中的电子邮件以JSON结构的格式显示。 它包含邮件应用程序可能需要的RFC5322消息(Internet消息格式)中的所有信息。 根据开发人员的说法,此方法应简化客户端的创建,因为服务器将负责解决潜在的困难(与MIME ,读取标头和编码有关)。

客户端使用API​​来访问服务器。 为此,它会生成一个经过身份验证的POST请求,其请求的属性在JMAP会话对象中进行了描述。 该请求采用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日历规范的描述-它们旨在处理日历和联系人列表。 作者认为,“联系人”和“日历”被分为单独的文档,因此无论“核心”是什么,它们都可以得到进一步的开发和标准化。 JMAP的源代码位于GitHub上存储库中


/ 照片 / PD

前景展望


尽管官方尚未正式完成有关标准的工作,但已在生产环境中实施了该标准。 例如, Cyrus IMAP开放邮件服务器的创建者实现了其JMAP版本。 FastMail开发人员发布了用于新Perl协议服务器框架,而JMAP作者则引入了代理服务器

可以预见,将来会有越来越多的基于JMAP的项目。 例如,Open-Xchange的开发人员很可能会为Linux系统创建新协议并创建IMAP服务器。 拒绝IMAP 的问题是由围绕公司工具形成的社区成员提出的

IETF和FastMail开发人员说,越来越多的用户看到了对新的开放式消息传递标准的需求。 JMAP的作者希望将来有更多公司开始实施此协议。

我们的其他资源和来源:

如何检查Cookie是否符合GDPR要求-新的开放工具将为

如何使用应用程序编程接口省钱
以1cloud.ru为例的云服务中的DevOps
1cloud云架构演进

对HTTPS的潜在攻击及其防范方法
如何保护Internet上的服务器:1cloud.ru经验
短期教育计划:什么是持续集成

Source: https://habr.com/ru/post/zh-CN452958/


All Articles