Spec-Zone.ru › Python 3.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='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

Spec-Zone.ru

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