mimify.md
1> **Источник:** https://python-all.ru/2.7/library/mimify.html2>3> «Документация Python на русском» – неофициальный перевод официальной документации Python: версии от 2.6 до 3.16, полнотекстовый поиск, английский оригинал рядом с переводом. Эта Markdown-версия страницы предназначена для работы с LLM: вставьте её в ChatGPT, Claude или Cursor.45---67# 18.9. [`mimify`](https://python-all.ru/2.7/library/mimify.html#module-mimify) – обработка MIME почтовых сообщений89Устарело с версии 2.3: Следует использовать пакет [`email`](https://python-all.ru/2.7/library/email.html#module-email) вместо модуля [`mimify`](https://python-all.ru/2.7/library/mimify.html#module-mimify). Этот модуль присутствует только для сохранения обратной совместимости.1011Модуль [`mimify`](https://python-all.ru/2.7/library/mimify.html#module-mimify) определяет две функции для преобразования почтовых сообщений в формат MIME и обратно. Почтовое сообщение может быть как простым, так и так называемым многокомпонентным (multipart). Каждая часть обрабатывается отдельно. Мимификация (части) сообщения подразумевает кодирование сообщения в quoted-printable, если оно содержит символы, которые нельзя представить с помощью 7-битной ASCII. Де-мимификация (части) сообщения подразумевает отмену кодирования quoted-printable. Мимификация и де-мимификация особенно полезны, когда сообщение необходимо отредактировать перед отправкой. Типичный вариант использования:1213```python14unmimify message15edit message16mimify message17send message18```1920Модуль определяет следующие вызываемые пользователем функции и настраиваемые переменные:2122#### `mimify.mimify(infile, outfile)`2324Копирует сообщение из *infile* в *outfile*, преобразуя части в quoted-printable и при необходимости добавляя заголовки MIME. *infile* и *outfile* могут быть файловыми объектами (точнее, любыми объектами, имеющими метод [`readline()`](https://python-all.ru/2.7/library/readline.html#module-readline) (для *infile*) или метод `write()` (для *outfile*)) или строками с именами файлов. Если и *infile*, и *outfile* являются строками, они могут совпадать.2526#### `mimify.unmimify(infile, outfile[, decode_base64])`2728Копирует сообщение из *infile* в *outfile*, декодируя все части в quoted-printable. *infile* и *outfile* могут быть файловыми объектами (точнее, любыми объектами, имеющими метод [`readline()`](https://python-all.ru/2.7/library/readline.html#module-readline) (для *infile*) или метод `write()` (для *outfile*)) или строками с именами файлов. Если и *infile*, и *outfile* являются строками, они могут совпадать. Если аргумент *decode\_base64* указан и равен true, то все части, закодированные в base64, также декодируются.2930#### `mimify.mime_decode_header(line)`3132Возвращает декодированную версию закодированной строки заголовка *line*. Поддерживается только кодировка ISO 8859-1 (Latin-1).3334#### `mimify.mime_encode_header(line)`3536Возвращает MIME-закодированную версию строки заголовка *line*.3738#### `mimify.MAXLEN`3940По умолчанию часть будет закодирована как quoted-printable, если она содержит любые не-ASCII символы (символы с установленным 8-м битом) или если есть строки длиннее [`MAXLEN`](https://python-all.ru/2.7/library/mimify.html#mimify.MAXLEN) символов (значение по умолчанию – 200).4142#### `mimify.CHARSET`4344Если набор символов не указан в заголовках письма, он должен быть задан. Используемая строка хранится в [`CHARSET`](https://python-all.ru/2.7/library/mimify.html#mimify.CHARSET), значение по умолчанию – ISO-8859-1 (также известный как Latin1 (latin-one)).4546Этот модуль также можно использовать из командной строки. Использование:4748```python49mimify.py -e [-l length] [infile [outfile]]50mimify.py -d [-b] [infile [outfile]]51```5253для кодирования (mimify) и декодирования (unmimify) соответственно. По умолчанию *infile* – стандартный ввод, а *outfile* – стандартный вывод. Для ввода и вывода можно указать один и тот же файл.5455Если при кодировании указан параметр **-l**, то при наличии строк длиннее указанного *length* содержащая их часть будет закодирована.5657Если при декодировании указан параметр **-b**, то все части base64 также будут декодированы.5859> **См. также**60>61> **Модуль [`quopri`](https://python-all.ru/2.7/library/quopri.html#module-quopri)**62>63> Кодирование и декодирование MIME-файлов в формате quoted-printable.64