mailcapMailcap文件处理

源代码: Lib / mailcap.py


Mailcap文件用于配置MIME识别应用程序(如邮件阅读器和Web浏览器)对文件的响应方式具有不同的MIME类型。(名称“mailcap”源自短语“mail capability”。)例如,mailcapfile可能包含类似video/mpeg; xmpeg %s的行。然后,如果userencounters一个电子邮件消息或MIME类型为video/mpeg, %s的Web文档将替换为文件名(通常属于一个临时文件)和 xmpeg 程序可以自动启动查看文件.

mailcap格式记录在 RFC 1524 ,“用户代理配置机制多媒体邮件格式信息”,但是不是互联网标准。但是,大多数Unix系统都支持mailcap文件.

mailcap.findmatch (caps, MIMEtype, key=”view”, filename=”/dev/null”, plist=[])

返回2元组;第一个元素是一个包含要执行的命令行的字符串(可以传递给os.system()),第二个元素是给定MIME类型的mailcap条目。如果找不到匹配的MIME类型,则(None, None)返回.

key是所需字段的名称,表示要执行的活动类型;默认值为’view’,因为在最常见的情况下,您只想查看MIME类型数据的主体。如果您想创建givenMIME类型的新主体或更改现有主体数据,其他可能的值可能是’compose’和’edit’。见RFC 1524 有关这些领域的完整列表.

filename是要替换%s在命令行中;默认值是​​"/dev/null"这几乎肯定不是你想要的,你可以通过指定文件名来覆盖它.

plist可以是包含命名参数的列表;默认值只是空列表。列表中的每个条目必须是包含参数名称的字符串,等号("="),以及参数的值。Mailcap条目可以包含命名参数,如%{foo},它将被名为’foo’的参数的值替换。例如,如果命令行showpartial%{id} %{number} %{total}在mailcap文件中,plist设置为["id=1", "number=2", "total=3"],结果命令行为"showpartial 1 2 3".

在mailcap文件中,可以选择指定“test”字段来测试某些外部条件(例如机器体系结构或使用中的窗口系统)以确定mailcap线是否适用。findmatch()如果检查失败,将自动检查这些条件并跳过条目.

mailcap.getcaps ( )

返回将MIME类型映射到mailcap文件条目列表的字典。这个字典必须传递到findmatch()功能。一个条目被存储为一个字典列表,但是没有必要知道这个表示的细节.

该信息来自系统中找到的所有mailcap文件。用户的mailcap文件中的设置$HOME/.mailcap将在系统mailcap文件中重写设置/etc/mailcap,/usr/etc/mailcap/usr/local/etc/mailcap.

示例用法:

>>> import mailcap>>> d = mailcap.getcaps()>>> mailcap.findmatch(d, "video/mpeg", filename="tmp1223")("xmpeg tmp1223", {"view": "xmpeg %s"})

评论被关闭。