Gmail 的 IMAP 服务的小发现

通过 IMAP 协议创建的目录,名称可以是中文,不过服务器上保存在文件系统上的不能是用户输入的文字,需要经过 Modified UTF7 编码,所以中文目录名称看起来都是 & 开头 – 结尾的一串字符。

Gmail 开放 IMAP 之后,可以看到一个名为 [Gmail] 的目录,其中还有六个子目录,分别对应 web 上的那些信箱名称。原本我是用中文的 web 界面,所以看到的这些子目录也都是中文的。今天偶然改用英文之后,发现 MUA 报错,无法连接到那些 & 开头 – 结尾的资源。我立即意识到,Gmail 作了同步更新,于是重开 MUA,确实 [Gmail] 下的子目录都已改为英文名。好细致周到的设计。

于是我在想它的实现方法。开始我觉得可能改了 IMAP 服务器软件。想起来 Gmail 存储的邮件应该不是简单的在文件系统中的 Maildir 格式下的文件,只需要按照协议返回相应的数据就好了。因为 Google 的强大令人觉得它无所不能。后来我在想,或许并不是这样,搞几个目录,然后给文件做上 hard link ,语言改变的时,rename 一下也费不了多少资源。

可后来的验证说明,Gmail 的 IMAP 服务器还是修订过的:当我重命名 [Gmail] 下的目录时,返回错误:

Folder name [Gmail]/Sent Mail - chunzi is not allowed. (Failure)".

但修改标签目录是可以的,刷新 webmail 后,标签的名称也跟着变化了。另外验证 IMAP 协议打上 Flagged 的标记后,也确实会跟着在 web 上标为 Starred。