18.9. mimify-邮件的 MIME 处理

从版本 2.3 开始不推荐使用:email软件包应优先于mimify模块使用。仅提供此模块是为了保持向后兼容性。

mimify模块定义了两个函数,用于将邮件消息与 MIME 格式相互转换。邮件消息可以是简单消息,也可以是所谓的 Multipart 消息。每个部分都单独处理。缩小消息(的一部分)需要将消息编码为带引号的可打印消息(如果消息包含无法使用 7 位 ASCII 表示的任何字符)。取消消息(消息的一部分)需要取消带引号的可打印编码。当必须在发送消息之前对其进行编辑时,“最小化”和“不最小化”特别有用。典型的用法是:

unmimify message
edit message
mimify message
send message

这些模块定义了以下用户可调用的函数和用户可设置的变量:

  • mimify. mimify(* infile outfile *)

    • 将* infile 中的消息复制到 outfile *中,将部分转换为带引号的可打印部分,并在必要时添加 MIME 邮件头。 * infile outfile 可以是文件对象(实际上,任何具有readline()方法(对于 infile )或write()方法(对于 outfile )的对象)或命名文件的字符串。如果 infile outfile *都是字符串,则它们可能具有相同的值。
  • mimify. unmimify(* infile outfile * [,* decode_base64 *])

    • 将消息以* infile 复制到 outfile *,对所有引用的可打印部分进行解码。 * infile outfile 可以是文件对象(实际上,任何具有readline()方法(对于 infile )或write()方法(对于 outfile )的对象)或命名文件的字符串。如果 infile outfile 都是字符串,则它们可能具有相同的值。如果提供了 decode_base64 *参数并测试为 true,则也将对以 base64encodings 编码的任何部分进行解码。
  • mimify. mime_decode_header(* line *)

    • 返回* line *中编码标题行的解码版本。这仅支持 ISO 8859-1 字符集(Latin-1)。
  • mimify. mime_encode_header(* line *)

    • 返回* line *中标题行的 MIME 编码版本。
  • mimify. MAXLEN

    • 默认情况下,部件包含任何非 ASCII 字符(设置了第 8 位的字符)或行长于MAXLEN字符(默认值为 200)时,将被编码为带引号的可打印部分。
  • mimify. CHARSET

    • 如果在邮件标题中未指定,则必须填写字符集。所使用的字符串存储在CHARSET中,默认值为 ISO-8859-1(也称为 Latin1(拉丁字母 1))。

也可以从命令行使用此模块。用法如下:

mimify.py -e [-l length] [infile [outfile]]
mimify.py -d [-b] [infile [outfile]]

分别进行编码(压缩)和解码(取消压缩)。 * infile 默认为标准 Importing, outfile *默认为标准输出。可以为 Importing 和输出指定相同的文件。

如果在编码时给出 -l 选项,则如果有任何行比指定的* length *长,则包含部分将被编码。

如果在解码时给出 -b 选项,则所有 base64 部分也将被解码。

See also

  • Module quopri

  • 编码和解码 MIME 引用可打印文件。