通过电子邮件发送你的微笑

作者:Frank Pilhofer

你上次发送或接收电子邮件是什么时候? 对吧。 万维网冲浪很有趣,但互联网上真正的杀手级应用是电子邮件。 另一个同样流行的服务是 Usenet,您可以在其中直接定位目标受众。 毫无疑问,这两项服务是最具个人化的。

假设你想对你的朋友微笑? 或者你怒火中烧? 我们都知道这里要使用的“表情符号”。 然而,你在网上看不到表情符号; 相反,你会看到图标笑脸,甚至可能是一张微笑的照片。 这些相同的符号在电子邮件中比表情符号更有效,一声威胁性的雷声真的会吓到你的读者。“现在,那是不可能的,”你会说——你几乎是对的。 但为什么呢?

一点历史

电子邮件服务构思于互联网的初期,而 Usenet 实际上是从一个离线网络开始的,消息通过慢速调制解调器线路分发。 那时,传输像图形或音频消息这样的大量数据是不可想象的,这两个系统都被设计为仅处理纯文本消息。

当可用带宽增加时,人们意识到应该可以交换二进制数据而不是仅仅是 ASCII 消息。 现在,设计上的限制变得显而易见。 但是,他们并没有回到系统的绘图板,而是引入了一种算法来将二进制数据编码为纯文本消息,从而绕过了这个问题——uuencoding诞生了。 使用此算法,三个任意字节被编码为四个可打印字符,然后可以使用旧软件安全地传输。 在另一端,接收者可以将数据解码回其原始形式。

不幸的是,最初的 uuencoding 算法并不完美,并且推出了几种其他编码。 首先是 xxencoding,然后是略微修改的 uuencoding,BinHex 编码,它还处理了 Macintosh 文件的特殊特性以及压缩性稍好的 shipbtoa 编码。 混乱彻底了——你需要不同的工具来处理每一种编码。

MIME 被引入

最终,MIME(多用途互联网邮件扩展)应运而生。 该标准通过引入 Base64,另一种编码算法,实现了二进制数据的轻松传输。 它还解决了其他问题,例如内容呈现和国际消息所需的本地化字符集。 通过 MIME 封装,文本、音频和视频的组合可以与指令一起在单个消息中发送(例如,音频是与视频一起播放还是之后播放)。 使用这些功能,您可以向文本添加图形图标,并用震耳欲聋的雷声强调消息。 您还可以将消息作为带有指向您主页的链接的 HTML 发送,或者作为完全格式化的 PostScript 文档发送。 MIME 可以显着更新电子邮件和 Usenet 的外观,使互联网成为一个更快乐的地方。

但生活并非如此简单。 尽管 MIME 标准于 1992 年首次发布,但尽管它有很多优点,但尚未被广泛接受。 一些小的改进已经进入了现实生活(例如 Content-Type 标头),但其全部功能尚未得到利用。 尽管如此,Usenet 上发布的大多数二进制数据都使用 uuencoding 编码,而一些基于 Windows 的电子邮件软件默认使用 BinHex 编码。 如果您仍然使用多年来一直为您服务的邮件和 Usenet 软件,您可能仍然需要解码 MIME 消息中使用的 Base64 数据。

在所有用户都切换到符合 MIME 标准的软件之前,您必须将邮件或 Usenet 阅读器中的消息保存到文件中,并使用各种工具剖析该文件,以便提取图像和音频剪辑。 即使那样,也令人惊讶的是会出多少错。

UUDeview 登场

在对许多类似的工具感到失望之后,我开发了自己的“智能解码器”来解决我在接收编码文件时遇到的各种问题。

由此产生的解码器是一个名为 UUDeview 的工具。 尽管它处于早期开发阶段——其版本号为 0.5——但它运行良好。 它可以读取纯编码数据和整个消息文件夹,这些文件夹会自动排序、分组和线程化,以防任何数据分散在多个消息中(可怕的多部分消息)。 用户可以指示程序是否解码每个文件。 UUDeview 还处理 uuencoding、MIME 的 Base64 和 BinHex。

UUDeview 软件包完整地附带了 UUEnview。 UUEnview 比标准的 uuencode 有一个很大的优势,它可以直接从命令行邮寄或发布文件,无论是 uuencoded 还是作为正确的 MIME 消息。

这两个工具都可以安装来替换标准程序 uuencode 和 uudecode,模仿它们的命令行语法,同时为编码和特别是解码过程增加全部功能。

对于喜欢鼠标胜过键盘的用户,还包括一个基于 Tcl/Tk 的界面。 唉,我通常可以比 GUI 启动更快地从命令行完成解码。

Send Your Smile by E-mail

图 1. UUDeview 界面截图

由于开发是在 Linux 机器和其他 Unix 系统上完成的,因此该代码具有高度可移植性。 在最新版本中,这些程序围绕一个编码和解码库构建。 使用此库,程序员不仅可以轻松编写不同的用户界面(一个简单的解码器示例是 37 行 C 源代码),而且还可以通过少量的工作在其他应用程序中使用该库的解码能力。 从网页(见下文)上,您目前可以下载 elm 邮件软件和 nn 新闻阅读器的补丁。 集成补丁后,您可以像往常一样标记邮件和文章,然后只需单击按钮即可解码任何二进制文件。

一旦全世界都切换到 MIME,UUDeview 终于可以“安息”了,但在那之前,当您尝试阅读二进制邮件和新闻文章时,它可以为您节省一些挫败感。 UUDeview 根据 GNU 通用公共许可证的条款免费分发,可以从 http://www.uni-frankfurt.de/~fp/uudeview/ 下载。

Send Your Smile by E-mail
Frank Pilhofer 是德国法兰克福大学计算机科学专业的学生,可以通过 fp@informatik.uni-frankfurt.de 与他联系。 他终于找到了一个让他远离屏幕的爱好——滑翔。
加载 Disqus 评论