mailcap — Обработка файлов Mailcap


Файлы Mailcap - используемый, чтобы настроить, как MIME-осведомленные приложения, такие как почтовые читатели и веб-браузеры реагируют на файлы с различными типами MIME. (Название «mailcap» происходит от фразы «почтовая возможность».) Например, файл mailcap может содержать строку типа video/mpeg; xmpeg %s. Затем если пользователь сталкивается с электронным письмом, или веб-документ с типом video/mpeg, %s MIME будет заменен именем файла (обычно одна принадлежность временному файлу), и программа xmpeg может быть автоматически запущена, чтобы рассмотреть файл.

Формат mailcap задокументирован в документе RFC 1524, «Механизм настройки пользовательского агента для информации о формате мультимедийной почты», но не является стандартом интернета. Однако файлы mailcap поддерживаются в большинстве Unix-систем.

mailcap.findmatch(caps, MIMEtype, key='view', filename='/dev/null', plist=[])

Возвращает 2-кортеж; первый элемент является строка, содержащим командную строку, которая должна быть выполнена (которая может быть передана в os.system()), а второй элемент является записью почтового ящика для данного типа MIME. Если не удается найти соответствующий тип MIME, то возвращается (None, None).

key - имя требуемого поля, которое представляет тип выполняемой деятельности; значение по умолчанию - «view», с тех пор в наиболее распространенном случае вы просто, хочет рассмотреть массив MIME-напечатанных данных. Другими возможными значения могут быть «compose» и «edit», если требуется создать новое тело данного типа 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'})