mailcap — Обработка файлов mailcap
Исходный код: Lib/mailcap.py
Файлы mailcap используются для настройки того, как приложения, осознающие MIME, такие как почтовые клиенты и веб-браузеры, реагируют на файлы с различными типами MIME. (Название «mailcap» происходит от фразы «mail capability».) Например, файл mailcap может содержать строку вроде video/mpeg; xmpeg %s. Затем, если пользователь столкнётся с электронным письмом или веб-документом с типом MIME video/mpeg, %s будет заменено именем файла (обычно принадлежащим временному файлу), и программа xmpeg может быть автоматически запущена для просмотра файла.
Формат mailcap документирован в RFC 1524, «A User Agent Configuration Mechanism For Multimedia Mail Format Information», но не является интернет-стандартом. Тем не менее, файлы mailcap поддерживаются на большинстве Unix-систем.
-
mailcap.findmatch(caps, MIMEtype, key='view', filename='/dev/null', plist=[]) -
Возвращает пару кортежей; первый элемент — строка, содержащая командную строку для выполнения (которая может быть передана в
os.system()), а второй элемент — запись mailcap для заданного типа MIME. Если соответствующий тип MIME не найден, возвращается(None, None).key — имя желаемого поля, которое представляет собой тип действия, которое нужно выполнить; значение по умолчанию — «view», так как в большинстве случаев вам просто нужно просмотреть тело данных типа MIME. Другими возможными значениями могут быть «compose» и «edit», если вы хотите создать новое тело заданного типа MIME или изменить существующие данные тела. Полный список этих полей см. в RFC 1524.
filename — имя файла, которое должно быть подставлено вместо
%sв командной строке; значение по умолчанию —'/dev/null', что почти наверняка не то, что вам нужно, поэтому обычно вы его переопределите, указав имя файла.plist может быть списком, содержащим именованные параметры; значение по умолчанию — просто пустой список. Каждый элемент в списке должен быть строкой, содержащей имя параметра, знак равенства (
'=') и значение параметра. Записи mailcap могут содержать именованные параметры, такие как%{foo}, которые будут заменены значением параметра с именем «foo». Например, если в файле mailcap была командная строкаshowpartial %{id} %{number} %{total}, а 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'})
© 2001–2020 Python Software Foundation
Licensed under the PSF License.
https://docs.python.org/3.7/library/mailcap.html