mailcap
---邮件头文件处理¶
源代码: Lib/mailcap.py
mailcap文件用于配置支持mime的应用程序(如邮件阅读器和Web浏览器)对具有不同mime类型的文件的响应方式。(名称“mailcap”源自短语“mail capability”。)例如,mailcap文件可能包含类似于 video/mpeg; xmpeg %s
. 然后,如果用户遇到具有mime类型的电子邮件或Web文档 video/mpeg , %s
将替换为文件名(通常是属于临时文件的文件名)和 xmpeg 程序可以自动启动以查看文件。
mailcap格式记录在 RFC 1524 “多媒体邮件格式信息的用户代理配置机制”,但不是Internet标准。但是,大多数Unix系统都支持mailcap文件。
- mailcap.findmatch(caps, MIMEtype, key='view', filename='/dev/null', plist=[])¶
返回一个2元组;第一个元素是包含要执行的命令行的字符串(可以传递给
os.system()
,第二个元素是给定mime类型的mailcap条目。如果找不到匹配的mime类型,(None, None)
返回。key 是所需字段的名称,它表示要执行的活动类型;默认值为“view”,因为在最常见的情况下,您只想查看mime类型数据的主体。如果要创建给定mime类型的新主体或更改现有主体数据,其他可能的值可能是“compose”和“edit”。见 RFC 1524 获取这些字段的完整列表。
filename 要替换的文件名
%s
在命令行中;默认值为'/dev/null'
这几乎肯定不是您想要的,所以通常您将通过指定一个文件名来覆盖它。普利斯特 可以是包含命名参数的列表;默认值只是一个空列表。列表中的每个条目都必须是包含参数名和等号的字符串 (
'='
)和参数的值。mailcap条目可以包含诸如%{{foo}}
,将由名为“foo”的参数的值替换。例如,如果命令行showpartial %{{id}} %{{number}} %{{total}}
在邮件头文件中,并且 普利斯特 被设定为['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'})