Spec-Zone.ru › Python 2.7

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[, filename[, plist]]])

Возвращает 2-кортеж; первый элемент — строка, содержащая командную строку для выполнения (которую можно передать в 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/2.7/library/mailcap.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API