mailcap (Internet Data) – Python 中文開發手冊 - Break易站
mailcap (Internet Data) - Python 中文開發手冊
原始碼: Lib / mailcap.py
Mailcap檔案用於配置感知MIME的應用程式(如郵件閱讀器和Web瀏覽器)如何對具有不同MIME型別的檔案作出反應。(名稱“mailcap”源自短語“郵件功能”)。例如,一個mailcap檔案可能包含一行video/mpeg; xmpeg %s。然後,如果使用者遇到具有MIME型別video / mpeg的電子郵件訊息或Web文件,%s將被替換為檔名(通常屬於臨時檔案),並且xmpeg程式可以自動啟動以檢視該檔案。
Mailcap格式在RFC 1524 “多媒體郵件格式資訊的使用者代理配置機制”中有記載,但不是Internet標準。但是,大多數Unix系統都支援mailcap檔案。
mailcap.findmatch(caps, MIMEtype[, key[, filename[, plist]]])
返回一個2元組; 第一個元素是包含要執行的命令列的字串(可以傳遞給它os.system()),第二個元素是給定MIME型別的mailcap條目。如果找不到匹配的MIME型別,(None, None)則返回。
鍵是所需欄位的名稱,它表示要執行的活動的型別; 預設值是'view',因為在最常見的情況下,您只需檢視MIME型別資料的主體。如果您想要建立給定MIME型別的新體或者更改現有正文資料,其他可能的值可能是“撰寫”和“編輯”。有關這些欄位的完整列表,請參閱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'})Python 中文開發手冊 ]