领域备注IMAP 拯救世界

R'ykandar Korra'ti

有时,一项解决方案是为处理新出现的小问题,但也可以解决原来遗留的大问题。以下就是一个例子。

去年冬天,我们的 Web 管理员购买了一台 MacBook。她以前一直只运行 Windows®,但现在她除了装有 OS X,还在虚拟机中安装了 Windows XP,用于同步其 Windows Mobile® 设备和其他一些小任务。

她需要从这两个操作系统访问她的所有邮件存档。但她不想在 Mac 端上运行 Entourage——要是那样的话问题就简单多了。她想运行 Mail.app(OS X 随附的电子邮件客户端)。顺便说一下,她的所有资料都存储在便携式计算机上,没有做镜像。我的工作:解决这个问题。

能够在任意位置读取存档文件代表的就是之前提到的小问题,因为我们一开始就提到,IMAP4 无处不在,Exchange Server、Microsoft® Office Outlook® 和 Mail 等都会用到它。IMAP4 是用于在瘦客户端处理服务器上消息存储的消息协议。在满足用户体验方面,IMAP4 可能略逊色于 Exchange,但它确实奏效(请参阅《TechNet 杂志》2006 年 3-4 月刊中的“IMAP4 的工作原理”**,网址为 technet.microsoft.com/magazine/cc161016)。

因此,更改了一些设置以使 IMAP4 over SSL 可以联机访问、将其所有本地文件夹复制到服务器上,然后执行 ping 命令!这样,她便可以在所有客户端上访问邮件并使自己的 Windows Mobile 设备保持更新。问题得到了解决。

但针对潜在难题提出一个简单的解决方案就好比是得到了一把新台锯。您突然有种跃跃欲试的冲动,想对原来已成型的东西来翻改造。

我们的小型 ISP 运行 Windows、OS X、Mac OS、Linux,甚至还包含一个古老的 AmigaOS 系统。很久之前,我们在该 Amiga 上托管了 Usenet 新闻和 UUCP 邮件。创建的存档以 RFC-733/AmigaUUCP 格式存储。我们还有 Microsoft Mail 存档(.mmf 格式)和一些年代久远的 UNIX 邮件存档(.mbox 格式)。它们都是让人避之不及的难题,现在都等着我们来解决。

这一场景引出了我们的第二条准则,一句危险黑客的座右铭:切勿删除你不能替换的项目。

我们先来解决 Microsoft Mail 存档。Outlook 有时无法导入 .mmf 文件。但是,由于我们过去一直在升级客户端,所以至少为每种老产品保留了一份许可证,只是您从不知道而已。因此,我们保留的许可证见证着 Microsoft Corporation 的历史足迹。您需要 MS-DOS®?OS/2 1.31?Microsoft Mail?还是 Office 95?当然可以!要英语的,还是法语的?

Outlook 2000 能导入 .mmf,但它的 IMAP 支持是陌生的,并且偶尔会丢弃标头数据。还有,它不能同时与 IMAP4 和 Exchange 服务器对话。它还不是一个良好的解决方案。使用 Outlook 2000 导入 .mmf 文件,升级到我们保存的 Outlook 2003 许可证,然后花些时间拖放:15 年之久的存档就能联机并可在任意位置查看。对 .mbox 采用类似方法,在 Linux 机器上放置一个与 mbox 兼容的 IMAP 服务器,将 .mbox 格式的存档放入其工作目录中。然后使用 Outlook IMAP 支持连接文件夹并将其复制到选择的生产服务器上。

Amiga 存档则需要编写一小段 C 代码将 RFC-733 标头转换为 RFC-822 格式,摆脱 SysV 样式的旧消息分隔项并从其专用环境中检索出特殊的 From: 行数据。这就是因问题存在时间过长而付出的开销。但是问题得以解决后,AmigaUUCP 格式就成为 .mbox 格式。放入相同的工作目录后,Outlook IMAP4 便可完整地取得邮件,就象新的一样。其中的附件也都完好无损。

现在,我们让 1990 年的存档以标准格式重新上线,并且还能搜寻更多的存档,就是因为我们能做到这一点。够强吧?

R'ykandar Korra'ti 是一家小型合作 ISP 的邮局主管,同她的合作伙伴 Anna 一起住在西雅图附近。她之前在 Microsoft 担任产品邮寄工作,从她不再痴迷于曼陀林歌词的那时起便转向了撰写技术性文章。期刊预订代理商可以通过 darako@murkworks.net 与她联系。

© 2008 Microsoft Corporation 和 CMP Media, LLC。保留所有权利;未经允许不得复制本文的部分或全部内容。