Internet多 功 能 邮 件 扩 展

邮 电 部 数 据 通 信 技 术 研 究 所   周 力 源   陈 淑 仪
一 、 MIME的 由 来

1.多 媒 体 邮 件 发 展 的 需 要

    电 子 邮 件 正 从 单 一 的 文 本 邮 件 向 多 媒 体 电 子 邮 件 过 渡 。 用 户 不 再 满 足 于 简 单 的 文 本 邮 件 ,他 们 要 求 邮 件 应 能 支 持 PostScript文 件 、 带 声 音 的 视 频 图 像 、 大 量 生 动 的 图 片 和 各 种 标 准 格 式 的 单 证 等 ,并 且 希 望 可 以 直 接 利 用 本 国 语 言 发 送 邮 件 。 用 户 需 要 有 一 个 通 用 的 、 建 立 在 统 一 标 准 之 上 的 电 子 邮 件 协 议 ,克 服 软 件 平 台 和 硬 件 平 台 的 多 样 化 给 信 息 交 流 带 来 的 巨 大 不 便 ,以 便 在 不 同 的 环 境 中 交 换 信 息 。

    多 功 能 Internet邮 件 扩 展 (MIME)就 是 为 满 足 这 一 需 求 而 制 定 的 标 准 。 1992年 6月 ,Internet工 程 任 务 组 (IETF)提 出 了 MIME标 准 草 案 RFC 1341和 1342文 件 ,对 它 们 进 行 修 改 之 后 ,1993年 9月 通 过 了 RFC 1521和 1522 文 件 ,作 为 MIME的 正 式 标 准 ,它 是 Internet 上 现 有 邮 件 消 息 格 式 RFC 822 的 扩 展 。

2.RFC 822消 息 格 式

    RFC 822消 息 格 式 于 1982年 通 过 ,定 义 了 Internet文 本 邮 件 的 标 准 消 息 格 式 。 随 着 电 子 邮 件 的 发 展 ,这 种 消 息 格 式 不 再 能 满 足 用 户 的 需 要 , 它 的 缺 点 越 来 越 明 显 ,主 要 有 以 下 几 个 方 面 :

   只 规 定 了 文 本 消 息 格 式 ,对 于 非 文 本 消 息 如 多 媒 体 消 息 的 格 式 没 有 规 定 。 即 使 是 文 本 消 息 ,也 只 能 处 理 US-ASCII字 符 集 ,对 于 非 该 字 符 集 的 字 符 不 能 处 理 。

    RFC 822限 制 邮 件 消 息 内 容 为 7位 ASCII码 短 行 ,这 就 迫 使 用 户 把 非 文 本 数 据 转 换 成 7位 可 打 印 的 ASCII字 符 。

    RFC 822的 不 足 还 表 现 在 它 与 X400系 统 互 通 的 情 况 下 。 X400消 息 可 以 包 含 非 文 本 信 体 ,而 RFC 822消 息 如 上 所 述 不 包 含 非 文 本 信 体 ;X400消 息 内 容 为 八 比 特 流 ,RFC 822消 息 内 容 是 7位 ASCII码 。 因 此 ,X400 系 统 与 RFC 822互 通 时 ,或 者 把 非 文 本 消 息 转 换 为 ASCII格 式 ,或 者 丢 弃 该 消 息 并 通 知 用 户 ,这 是 用 户 不 希 望 发 生 的 情 况 。 因 为 即 使 UA(用 户 代 理 )不 能 处 理 这 些 非 文 本 消 息 ,用 户 还 可 有 一 些 外 部 机 制 ,从 UA中 提 取 有 用 的 信 息 。

    由 于 RFC 822存 在 这 些 缺 点 ,因 此 在 发 展 多 媒 体 电 子 邮 件 时 ,In ternet用 户 希 望 能 有 一 种 更 好 的 消 息 格 式 标 准 替 代 它 ,MIME就 是 这 样 一 种 标 准 。

3.MIME的 特 点

    MIME是 一 种 新 型 邮 件 消 息 格 式 ,它 具 有 下 列 特 点 :

· 可 以 在 一 份 消 息 中 包 含 多 个 信 体 ;

· 可 以 表 示 ASCII文 本 和 非 ASCII文 本 ;

· 可 以 表 示 图 像 、 话 音 以 及 二 进 制 数 据 等 非 文 本 消 息 ;

· 可 以 使 用 多 语 种 和 多 字 体 表 示 消 息 ;

· 可 以 扩 展 处 理 新 出 现 的 消 息 类 型 。

二 、 MIME标 题 字 段

    MIME是 RFC 822的 扩 展 。 它 描 述 了 四 种 标 题 字 段 ,用 来 表 示 各 种 信 体 类 型 ,如 文 本 、 话 音 和 图 像 等 ,并 不 会 与 现 有 的 RFC 822邮 件 发 生 冲 突 :

1.MIME版 本 号

   用 于 声 明 消 息 是 MIME消 息 ,使 UA能 正 确 处 理 消 息 。

2.内 容 类 型

    用 于 描 述 消 息 信 体 中 数 据 的 类 型 和 子 类 型 ,使 接 收 方 UA能 选 择 适 当 的 方 法 处 理 这 些 数 据 。 MIME定 义 了 七 种 内 容 类 型 和 相 应 的 子 类 型 :

    ① "文 本 "内 容 类 型 ,是 默 认 的 内 容 类 型 ,可 用 多 种 字 符 集 表 示 文 本 消 息 ,可 用 标 准 方 式 表 示 格 式 化 的 文 本 。 plain子 类 型 ,表 明 消 息 是 未 格 式 化 的 文 本 。 此 外 还 可 用 其 它 格 式 表 示 扩 展 文 本 。 显 示 "文 本 "消 息 时 不 需 要 特 殊 的 软 件 ,但 是 要 支 持 指 定 的 字 符 集 。

    ② "多 部 分 "内 容 类 型 ,用 于 在 消 息 中 包 含 多 个 不 同 数 据 类 型 的 信 体 部 分 。 两 个 相 邻 信 体 部 分 之 间 用 定 界 符 分 隔 。 每 一 部 分 的 数 据 可 以 单 独 编 码 。

  • 当 信 体 部 分 相 互 独 立 并 且 具 有 某 种 次 序 时 ,使 用 "混 合 "子 类 型 。 UA把 不 认 识 的 "多 部 分 "子 类 型 作 为 "混 合 "类 型 处 理 。
  • "可 选 "子 类 型 用 多 种 格 式 表 示 同 一 数 据 ,使 接 收 方 能 根 据 自 身 环 境 选 择 最 佳 的 消 息 表 示 格 式 。
  • "文 摘 "子 类 型 中 的 每 一 个 信 体 部 分 的 默 认 类 型 是 "消 息 /f rc822", 而 不 是 "文 本 /plain",这 样 做 提 供 了 更 多 可 读 的 文 摘 。
  • "并 行 "子 类 型 指 示 消 息 中 的 所 有 信 体 部 分 需 要 同 时 显 现 。
  •     ③ "应 用 "内 容 类 型 ,用 于 传 输 应 用 数 据 或 二 进 制 数 据 ,如 基 于 邮 件 的 文 件 传 送 、 扩 展 表 、 基 于 邮 件 的 日 程 安 排 系 统 的 数 据 和 "活 动 "邮 件 。 这 些 数 据 在 用 户 浏 览 之 前 必 须 由 应 用 程 序 进 行 处 理 。 "应 用 "内 容 类 型 定 义 了 下 列 两 种 子 类 型 :

  • "八 比 特 流 ",指 示 信 体 中 包 含 的 是 二 进 制 数 据 。 当 邮 件 阅 读 器 遇 到 不 能 识 别 的 内 容 类 型 值 时 ,阅 读 器 把 该 邮 件 作 为 "应 用 /八 比 特 流 "类 型 处 理 。
  • "PostScript",用 于 传 送 包 含 PostScript文 档 的 信 体 。
  •     ④ "消 息 "内 容 类 型 ,用 于 封 装 其 它 种 类 的 邮 件 消 息 。 其 子 类 型 主 要 用 于 被 转 发 消 息 或 被 拒 绝 消 息 。

  • 子 类 型 "rfc822"指 示 信 体 中 包 含 的 消 息 是 被 封 装 的 RFC822消 息 。 这 里 的 RFC 822消 息 实 际 上 是 指 MIME消 息 。
  • "部 分 "子 类 型 允 许 大 消 息 作 为 几 个 独 立 的 邮 件 块 发 送 和 投 递 ,接 收 方 UA可 以 自 动 恢 复 原 来 的 消 息 。 当 中 间 传 送 代 理 限 制 单 个 消 息 的 大 小 时 可 以 使 用 这 种 消 息 类 型 。 在 "部 分 "类 型 中 ,只 允 许 使 用 "7位 "内 容 传 送 编 码 。
  • "外 部 信 体 "子 类 型 指 示 消 息 中 没 有 包 含 实 际 的 信 体 数 据 ,真 正 的 数 据 是 作 为 外 部 引 用 给 出 的 ,消 息 中 只 包 含 了 访 问 这 些 数 据 所 需 要 的 信 息 ,接 收 者 可 以 根 据 这 些 信 息 使 用 FTP、 TFTP等 文 件 传 送 系 统 获 取 数 据 。
  •     ⑤ "图 像 "内 容 类 型 ,指 示 信 体 中 包 含 静 态 图 像 。 "JPEG"和 "GIF" 子 类 型 表 示 两 种 专 用 的 图 象 格 式 。

        ⑥ "音 频 "内 容 类 型 ,指 示 信 体 中 包 含 音 频 或 话 音 数 据 。 "基 本 "子 类 型 指 示 信 体 是 使 用 8位 PCM编 码 的 音 频 数 据 。

        ⑦ "视 频 "内 容 类 型 ,指 示 信 体 中 包 含 视 频 或 活 动 图 像 ,还 可 能 有 颜 色 和 "音 频 "数 据 。 子 类 型 "MPEG"表 示 信 体 是 用 MPEG标 准 编 码 的 视 频 数 据 。

    3.内 容 传 送 编 码

        内 容 传 送 编 码 提 供 了 数 据 类 型 的 本 地 表 示 与 能 够 用 7位 邮 件 传 送 协 议 进 行 数 据 交 换 的 表 示 法 之 间 的 映 射 。 MIME定 义 了 五 种 编 码 机 制:

  • "7位 "、 "8位 "、 "二 进 制 "、 "基 本 64"和 "quoted-printable"。
  • "8位 ","7位 "和 "二 进 制 "用 来 指 示 信 体 中 包 含 的 数 据 的 类 型 ,它 们 并 没 有 进 行 编 码 。
  • "quoted-printable"用 来 表 示 大 部 分 由 八 位 比 特 组 成 的 数 据 ,这 些 八 位 比 特 与 ACSII字 符 中 的 可 打 印 字 符 对 应 。 经 过 "quoted-printable"编 码 生 成 的 八 比 特 序 列 ,在 邮 件 传 送 过 程 中 不 可 能 被 修 改 。
  • "基 本 64"内 容 传 送 编 码 用 来 表 示 任 意 八 位 比 特 序 列 。 它 用 US-ASCII的 65个 字 符 子 集 (64个 可 打 印 字 符 和 一 个 专 用 字 符 "=")对 数 据 编 码 ,每 6位 原 始 数 据 可 以 用 一 个 可 打 印 字 符 表 示 。 因 此 当 输 入 24个 比 特 时 ,输 入 4个 已 编 码 字 符 。
  • 4.附 加 的 标 题 字 段

        用 于 进 一 步 描 述 消 息 信 体 中 的 数 据 。 它 具 有 下 列 两 种 字 段 :

    内 容 描 述 ,用 于 简 单 描 述 信 体 中 的 内 容 ,它 使 用 ASCII文 本 。

        为 了 满 足 用 户 的 特 殊 需 要 和 适 应 今 后 的 发 展 ,MIME还 规 定 了 扩 展 机 制 ,允 许 对 各 种 子 类 型 值 、 字 符 集 名 、 内 容 传 送 编 码 值 以 及 字 段 值 进 行 扩 展 。

    三 、 MIME用 户 代 理 (UA)

        MIME邮 件 系 统 的 基 础 是 具 有 MIME功 能 的 UA。 这 种 用 户 代 理 不 仅 应 该 能 识 别 和 显 示 MIME消 息 ,而 且 应 该 能 建 立 MIME消 息 。 为 了 实 现 这 一 点 ,MIME UA应 包 含 各 种 媒 体 的 编 辑 器 、 处 理 器 以 及 MIME消 息 合 成 器 和 分 析 器 、 分 配 器 。 发 送 方 UA调 用 各 种 媒 体 编 辑 器 ,建 立 各 自 的 信 体 部 分 ,通 过 合 成 器 添 加 适 当 的 标 题 字 段 ,将 各 个 部 分 合 成 在 一 起 , 生 成 MIME消 息 。 MIME消 息 经 由 邮 件 传 送 系 统 传 送 到 对 方 UA。 对 方 UA接 收 到 消 息 后 ,先 使 消 息 经 过 消 息 分 析 器 ,根 据 消 息 的 标 题 信 息 识 别 不 同 的 信 体 ,然 后 将 各 个 信 体 经 分 配 器 送 至 相 应 的 处 理 器 中 进 行 处 理 。

        MIME只 是 一 种 消 息 格 式 ,它 对 于 消 息 传 送 系 统 未 作 任 何 修 改 ,它 的 消 息 传 送 系 统 与 现 有 的 Internet消 息 传 送 系 统 一 样 ,只 是 信 息 格 式 不 同 , 因 此 MIME UA可 以 在 现 有 UA基 础 上 经 过 扩 展 而 得 到 ,也 可 以 重 新 设 计 单 独 的 MIME UA。 由 于 MIME是 一 种 可 扩 展 的 、 模 块 化 的 标 准 ,MIME UA的 功 能 很 容 易 扩 展 。 为 了 增 加 对 某 一 种 新 消 息 类 型 的 支 持 ,用 户 只 需 增 加 这 种 消 息 的 处 理 程 序 ,然 后 通 知 UA何 时 以 及 如 何 调 用 该 程 序 即 可 。

        尽 管 MIME UA能 够 通 过 扩 展 处 理 新 的 消 息 类 型 ,但 是 它 毕 竟 不 能 处 理 全 部 的 消 息 类 型 。 而 多 媒 体 邮 件 包 含 的 消 息 类 型 各 种 各 样 ,其 中 很 可 能 包 含 一 些 UA 不 能 处 理 的 消 息 ,如 使 用 不 同 的 语 音 编 码 方 式 生 成 的 话 音 消 息 ,一 旦 遇 到 这 种 情 况 ,大 多 数 UA只 能 丢 弃 或 拒 绝 消 息 。 通 过 建 立 配 置 文 件 可 以 解 决 这 个 问 题 。 在 网 络 中 建 立 一 个 公 共 配 置 文 件 , 网 络 中 所 有 的 UA都 可 以 访 问 它 。 当 某 个 UA创 建 了 一 种 新 的 消 息 类 型 ,就 向 该 文 件 中 写 入 处 理 这 种 消 息 所 需 的 程 序 名 和 程 序 的 地 址 。 当 其 它 UA遇 到 这 种 消 息 时 ,就 可 以 查 询 配 置 文 件 ,了 解 如 何 处 理 这 种 消 息 。 通 过 配 置 文 件 可 以 在 不 增 加 UA复 杂 程 度 的 情 况 下 ,扩 展 UA的 功 能 。 例 如 ,在 UA中 只 给 出 一 种 语 音 编 码 和 解 码 方 法 ,其 它 的 方 法 可 以 查 询 配 置 文 件 ,这 样 UA可 以 处 理 几 乎 所 有 的 语 音 编 码 文 件 。 Internet的 编 程 语 言 Java的 出 现 使 得 这 种 方 法 更 具 有 广 阔 的 前 景 。

    四 、 MIME的 应 用

        MIME消 息 格 式 可 以 表 示 各 种 消 息 ,可 以 包 含 多 个 不 同 类 型 的 信 体 部 分 ,可 以 进 行 各 种 消 息 格 式 的 转 换 ,并 且 转 换 时 不 丢 失 信 息 。 MIME的 这 些 特 点 使 得 它 有 许 多 应 用 。

       消 息 被 拒 绝 在 邮 件 传 送 服 务 中 经 常 发 生 ,通 常 用 户 想 知 道 被 拒 绝 的 原 因 。 对 于 文 本 消 息 来 说 ,这 不 难 解 决 。 对 于 非 文 本 消 息 ,由 于 缺 乏 标 准 格 式 ,用 户 往 往 看 不 到 拒 绝 原 因 。 使 用 MIME很 容 易 解 决 这 个 问 题 。 接 收 方 UA在 拒 绝 消 息 时 建 立 一 个 "多 部 分 /混 合 "类 型 的 MIME消 息 , 它 包 含 两 部 分 ,一 部 分 是 文 本 ,解 释 拒 绝 的 原 因 。 另 一 部 分 是 封 装 的 消 息 ,包 含 被 拒 绝 的 消 息 。 这 样 就 可 以 使 用 户 看 到 拒 绝 原 因 ,同 时 原 来 的 消 息 也 没 有 丢 失 。 对 于 转 发 消 息 也 可 以 同 样 处 理 。

        另 一 个 经 常 发 生 的 问 题 是 由 于 消 息 太 大 而 不 能 通 过 某 种 对 邮 件 大 小 有 限 制 的 邮 件 系 统 。 在 MIME中 ,至 少 可 以 通 过 下 列 两 种 方 法 解 决 这 个 问 题 :

  • 使 用 "消 息 /部 分 "类 型 ,UA可 以 自 动 对 大 邮 件 进 行 分 段 ,使 它 成 为 若 干 小 的 邮 件 ,以 便 通 过 系 统 。 到 达 接 收 端 后 ,UA自 动 重 组 消 息 ,使 用 户 能 正 确 显 现 原 始 消 息 。
  • 使 用 "消 息 /外 部 信 体 ",所 有 的 信 体 数 据 并 没 有 真 正 包 含 在 消 息 中 ,发 送 者 只 是 在 内 容 类 型 标 题 字 段 中 告 诉 用 户 数 据 在 哪 里 ,如 何 才 能 获 得 数 据 ,例 如 通 过 FTP文 件 传 送 系 统 ,或 者 其 它 的 文 件 系 统 。
  •     Internet网 连 接 的 用 户 不 仅 仅 是 单 个 用 户 ,还 有 许 多 是 LAN用 户 ,每 个 LAN自 己 的 用 户 通 过 一 个 公 共 节 点 访 问 Internet。 LAN用 户 一 般 具 有 自 己 内 部 的 专 用 邮 件 系 统 。 当 他 们 需 要 向 其 它 用 户 发 送 电 子 邮 件 时 , 无 法 保 证 该 用 户 也 使 用 相 同 的 邮 件 格 式 ,这 样 就 有 可 能 造 成 邮 件 的 不 可 投 递 或 无 法 辨 认 ,这 时 可 以 利 用 MIME来 解 决 。 在 LAN访 问 节 点 上 建 立 一 个 MIME网 关 ,把 LAN内 部 的 邮 件 格 式 转 换 成 MIME格 式 ,然 后 发 送 出 去 。 到 达 接 收 方 时 , 接 收 方 UA再 通 过 网 关 把 MIME消 息 转 换 成 自 己 的 邮 件 格 式 ,然 后 进 行 处 理 。 由 于 利 用 MIME进 行 格 式 转 换 一 般 不 会 丢 失 信 息 ,并 且 MIME能 处 理 各 种 电 子 信 息 ,增 加 了 邮 件 的 可 投 递 性 。

    五 、 结 束 语

        MIME的 出 现 为 多 媒 体 电 子 邮 件 注 入 了 新 的 活 力 。 MIME是 可 扩 展 的 、 模 块 化 的 消 息 格 式 标 准 ,它 可 以 处 理 各 种 类 型 的 消 息 ,而 且 不 会 丢 失 结 构 或 信 息 。 M IME的 出 现 使 "活 动 "邮 件 和 交 互 式 邮 件 成 为 可 能 ,使 用 户 能 利 用 电 子 邮 件 进 行 EDI和 传 真 存 储 转 发 等 业 务 。 MIME消 息 格 式 还 为 其 它 电 子 邮 件 的 应 用 提 供 了 良 好 的 环 境 。 随 着 MIME标 准 的 进 一 步 发 展 ,它 已 不 仅 仅 用 于 Internet网 ,在 局 域 网 中 它 的 应 用 也 越 来 越 广 泛 。 可 以 看 到 ,MIME在 不 久 的 将 来 一 定 会 得 到 更 广 泛 的 应 用 。 <./p>