mailcap — Обработка файлов Mailcap¶
Исходный код: Lib/mailcap.py
Файлы 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'})
